Skip to content

Conversation

@hagenek
Copy link
Contributor

@hagenek hagenek commented Aug 19, 2025

Nye live code editorer opprettet for 12 pakker:

  1. ffe-accordion-react: Enkelt, multiple og interaktive eksempler
  2. ffe-account-selector-react: Komprehensiv editor for alle selector-komponenter
  3. ffe-buttons-react: Alle button-typer med interaktive eksempler
  4. ffe-cards-react: Card-varianter og layouts
  5. ffe-chips-react: Enkelt template med grunnleggende chip-eksempler
  6. ffe-form-react: Komprehensiv form-komponenter med validering
  7. ffe-grid-react: Layout og responsive eksempler
  8. ffe-icons-react: Icon-bruk eksempler
  9. ffe-lists-react: Liste-komponenter
  10. ffe-messages-react: SystemMessage og ContextMessage templates
  11. ffe-tabs-react: Enkelt template med tab-navigasjon
  12. ffe-tags-react: Enkelt template med tag-visning

Infrastruktur og verktøy:

  • Opprettet LiveCodeEditor.tsx utility for konsistent implementasjon
  • Lagt til dokumentasjon i
  • LIVE_CODE_GUIDE.md
  • Audit-script (audit-live-code.js) for å spore implementering
  • Genererings-script (generate-livecode.js) for automatisering
  • Konsistent filnavn: LiveCodeEditor.stories.tsx for alle pakker

Designprinsipper:

  1. Fokus på 'enkelt' template som standard for enkel bruk
  2. Monaco editor integrering for syntax highlighting
  3. Real-time preview funksjonalitet
  4. Konsistent norsk navngiving og struktur
  5. Progressive kompleksitet fra enkle til avanserte eksempler

Resultat:

Introduserer en standardisert live code editor løsning som dekker 12 pakker og forbedrer utvikleropplevelsen betydelig på tvers av hele FFE design systemet.

@hagenek hagenek requested a review from a team as a code owner August 19, 2025 08:39
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@hagenek hagenek force-pushed the develop_add-live-coding branch 2 times, most recently from a3a894c to 42f0192 Compare August 19, 2025 08:50
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR standardizes and simplifies live code editors across the FFE design system by introducing a shared utility and implementing live code editors for 12 packages. The solution replaces manual code transformation approaches with a Monaco Editor-based system that provides real-time preview, syntax highlighting, and template management.

  • Creates a unified LiveCodeEditor utility with consistent implementation patterns
  • Implements live code editors for 12 core packages including buttons, forms, grids, and more
  • Introduces automation scripts for generating and auditing live code implementations

Reviewed Changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
scripts/generate-livecode.js Automation script for generating standardized live code stories
.storybook/shared/LiveCodeEditor.tsx Core shared utility component with Monaco editor integration
packages/*/src/LiveCodeEditor.stories.tsx Live code editor implementations for 12 packages
.storybook/shared/LIVE_CODE_GUIDE.md Documentation for implementing live code editors
package.json Added dependencies for Monaco editor and React Live
Comments suppressed due to low confidence (1)

packages/ffe-lists-react/src/LiveCodeEditor.stories.tsx:231

  • BulletList component is referenced in the template code but may not be available in the live code scope, potentially causing runtime errors.
                <h3 style={{ margin: '0 0 8px 0' }}>📖 Produktspesifikasjoner</h3>

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@SpareBank1 SpareBank1 deleted a comment from Copilot AI Aug 19, 2025
@hagenek hagenek force-pushed the develop_add-live-coding branch from 5456364 to 25a0d94 Compare August 19, 2025 10:15
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@tuva-odegard
Copy link
Contributor

tuva-odegard commented Aug 20, 2025

Såå nice at du har fått det opp!
Klikket meg litt rundt, det dukket opp noen ting:

  1. Jeg prøvde meg på accordion, det interaktive eksempelet fungerer ikke
image
  1. Ikonet er ikke der på knappene
image
  1. Når jeg gjør en endring står det at jeg har ulagrede endringer, men at koden lagres automatisk 🤔
image

Skjønner ikke hva jeg skal gjøre som bruker da..

  1. Trenger vi "last ned" knappen? De fleste kopierer vel bare? 🤔
  2. Det her burde vel være en ffe-dropdown med tydelig label?
image
  1. Button-eksempelet bruker ikoner vi ikke støtter 🤔
image

Burde vel kanskje bruke kun ting fra designsystemet ❤️
Har ikke sett igjennom resten men det er kanskje en start? 🙌

@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

- Fjern icon-egenskaper fra alle LiveCodeEditor-maler
- Fjern emoji-ikoner fra template-kode i grid-react og andre pakker
- Erstatt native confirm() med tilpasset bekreftelsesdialog for tilbakestill-knappen
- Legg til Enter/Escape tastaturstøtte for bekreftelsesdialogene
- Gjør Template.icon valgfri i shared LiveCodeEditor interface
@hagenek hagenek force-pushed the develop_add-live-coding branch from 35ce576 to f89ce37 Compare August 26, 2025 12:51
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@tuva-odegard
Copy link
Contributor

Flott med endringer! Det er en veldig stor endring, det er kult! Noen ting til 😄 (nummererer bare så det er lettere å skille de fra hverandre)

  1. Ser at det ikke fungerer så bra med accent mode, kanskje man ikke trenger live code i alle modes og kontekster, altså at det ikke trenger å være en story?
image
  1. Ser ikke ut som at Lagre fungerer helt som tiltenkt 🤔
image Står "Lagret" men fikk opp denne beskjeden ❤️ Auto-save ser ikke ut som at den gjør noe 🤔
  1. Ser også ut som at Accordion har byttet på "grunnleggende" og "avansert" eksempelet. Det er vel egentlig ikke vits med en gunnleggende, de var veldig like 🤔
image
  1. Hadde det vært mulig å bruke våre egne farger på cardene? 😄
image
  1. Kan vi ha "preview" på norsk?
image 😄
  1. Flere av accountselectoreksempelet er brukket :(
image Og ett av de ser ikke så bra ut.. image
  1. F.eks Cards: Trenger kanskje ikke dropdownen når det bare er ett eksempel? 🤔
image

Ser ut som det fortsatt er mange av eksemplene som bruker ikoner vi ikke støtter ❤️ Men vet ikke om du var ferdig da!

- Fjern alle emojier fra LiveCodeEditor.stories.tsx filer
- Skjul template-dropdown når kun én template eksisterer
- Flytt Tilbakestill-knapp til øvre høyre hjørne av kodeeditoren
- Forbedre dialog-tekster og oversettelser til norsk
- Standardiser import-rekkefølge og code formatting
- Rette template-referanse feil i Accordion stories
- Forenkle AccountSelector templates ved å fjerne komplekse eksempler

Endringene gjør grensesnittet renere og mer profesjonelt ved å fjerne
dekorative emojier, samtidig som UX forbedres med betinget visning av
kontroller og bedre posisjonering av handlingsknapper.
@hagenek
Copy link
Contributor Author

hagenek commented Aug 29, 2025

Flott med endringer! Det er en veldig stor endring, det er kult! Noen ting til 😄 (nummererer bare så det er lettere å skille de fra hverandre)

  1. Ser at det ikke fungerer så bra med accent mode, kanskje man ikke trenger live code i alle modes og kontekster, altså at det ikke trenger å være en story?
image 2. Ser ikke ut som at Lagre fungerer helt som tiltenkt 🤔

image Står "Lagret" men fikk opp denne beskjeden ❤️ Auto-save ser ikke ut som at den gjør noe 🤔
3. Ser også ut som at Accordion har byttet på "grunnleggende" og "avansert" eksempelet. Det er vel egentlig ikke vits med en gunnleggende, de var veldig like 🤔

image 4. Hadde det vært mulig å bruke våre egne farger på cardene? 😄 image 5. Kan vi ha "preview" på norsk?

image 😄
6. Flere av accountselectoreksempelet er brukket :(

image Og ett av de ser ikke så bra ut.. image
7. F.eks Cards: Trenger kanskje ikke dropdownen når det bare er ett eksempel? 🤔

image Ser ut som det fortsatt er mange av eksemplene som bruker ikoner vi ikke støtter ❤️ Men vet ikke om du var ferdig da!
  1. Litt usikker på hvordan jeg kan gjøre at den ikke kommer opp der, vet ikke om det er så stort problem?
  2. Lagringen handler om at det du skriver inn blir lagret, selv ved refresh av siden. Teksten om ulagrede endringer ved tilbakestill er litt uklar, jeg skal forbedre den! =)
  3. Enig, jeg har gjort så det bare er ett eksempel nå!
  4. Kan gjøres i ny PR.
  5. Endret til norsk
  6. Forenklet og fjerner emojier!
  7. Veldig godt forslag, fjernet dropdownen nå ved bare et eksempel
  8. Fjernet alle Emojier nå! (Håper jeg...)

@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@tuva-odegard
Copy link
Contributor

Flott med endringer! 😄

Har klikket meg gjennom enda mer og funnet enda litt til, sorry!

  1. Chips-eksempelet har feil
image 2. Accountselector også :/ image
  1. Ang. nr 2 på forrige kommentar, auto-lagringen ved refresh av siden ser ut til å fungere fint!
    Men hvis jeg gjør en endring og så prøver å bytte eksempel (med dropdown-lista) så får jeg opp denne meldingen
image Hvis jeg refresher siden og så bytter, går det fint. Så auto-lagringa fungerer fortsatt ikke helt som forventet 🤔 3.1 I den samme ruta, er det noen grunn til at knappene er små? 😆 Synes godt de kan være vanlig størrelse, er jo plass til det..
  1. Dette blir litt synsing fra min side (sammen med UX-prinispper), men kunne du flyttet auto-save ned til ved siden av Preview? 💯 Så er den litt nærmere det den hører til. Og helst den også på norsk 😄
image
  1. Jeg synes fortsatt også at dropdown skal få en label! ❤️
image

return (
<div style={{ fontFamily: 'system-ui, -apple-system, sans-serif' }}>
<h3 className="ffe-h3">
{title} - {theme === 'light' ? 'Light' : 'Dark'} mode
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sånn som her 😊

{/* Custom confirmation dialog */}
{showConfirmDialog && (
<div
style={{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ikke viktig, men hvorfor ikke bruke ffe-modal her? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kan ta det i en ny PR =)

`
**🔥 Live ${storageKey} Code Editor**
Skriv JSX-kode og se resultatet umiddelbart! Editoren støtter:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hvor dukker det her opp? Er det bare når man skal bruke den?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dette er hvis man ikke gir noen description når man lager en live code editor spesifikt for en komponent. Har kortet ned denne alternative beskrivelsen betraktelig nå.

defaultTemplate: 'basic',
title: 'Accordion Live Code Editor',
description:
'Live code editor for Accordion komponenten med alle templates og funksjonalitet.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"med alle templates og funksjonalitet." er litt intentsigende 😅
Kanskje det kan stå noe som at "Her kan du endre på et eksempel med bruk av Accordion" eller noe?

docs: {
description: {
component:
'Comprehensive live code editor for all account selector components in the FFE AccountSelector package. Explore AccountSelector and AccountSelectorMulti with interactive examples for single and multi-account selection scenarios.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dette burde være på norsk. Gjelder alle live kode editorene! Og burde kanskje ikke si at det er flere eksempler når det bare er ett nå 🤔

defaultTemplate: 'simple',
title: 'AccountSelector Live Code Editor',
description:
'Comprehensive live code editor for all account selector components in the FFE AccountSelector package. Explore AccountSelector and AccountSelectorMulti with interactive examples for single and multi-account selection scenarios.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Norsk? 🫶

defaultTemplate = Object.keys(templates)[0],
storageKey,
title = 'Live Code Editor',
description = 'Skriv JSX-kode og se resultatet umiddelbart!',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

haha, det blir så tydelig at det ikke er vi som har skrevet det 🙃
Hva med "Her kan du redigere komponenten og se resultatet før du tar den i bruk." eller noe?

@github-actions
Copy link

github-actions bot commented Sep 8, 2025

Azure Static Web Apps: Your stage site is ready! Visit it here: https://black-beach-0d62d0d03-3031.westeurope.2.azurestaticapps.net

@hagenek hagenek requested a review from tuva-odegard September 8, 2025 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants