@open-mercato/core 0.7.1-develop.7202.1.a52dc6707c → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/build.mjs +11 -0
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js +23 -0
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies/[id]/page.js +2 -1
- package/dist/modules/customers/backend/customers/companies/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +2 -1
- package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/people/[id]/page.js +2 -2
- package/dist/modules/customers/backend/customers/people/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +2 -1
- package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +2 -2
- package/dist/modules/customers/lib/detailHelpers.js +4 -0
- package/dist/modules/customers/lib/detailHelpers.js.map +2 -2
- package/dist/modules/customers/lib/todoCompatibility.js +5 -0
- package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
- package/dist/modules/design_system/backend/design-system/page.meta.js +3 -2
- package/dist/modules/design_system/backend/design-system/page.meta.js.map +2 -2
- package/dist/modules/design_system/gallery/assets/ai-prompt-image.png +0 -0
- package/dist/modules/design_system/gallery/assets/avatar-illustration.png +0 -0
- package/dist/modules/design_system/gallery/assets/avatar-memoji.png +0 -0
- package/dist/modules/design_system/gallery/assets/avatar-photo.png +0 -0
- package/dist/modules/design_system/gallery/assets/blog-photo-0.png +0 -0
- package/dist/modules/design_system/gallery/assets/contact-support-portrait.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-ada.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-avax.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-bnb.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-brand.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-btc.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-clock.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-crown.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-dot.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-eth.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-hbar.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-history.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-link.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-menu.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-metamask.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-more.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-phantom.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-rewards.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-sad-face.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-sol.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-star.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-status-cancelled.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-status-pending.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-status-success.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-status-warning.svg +3 -0
- package/dist/modules/design_system/gallery/assets/crypto-trx.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-usdc.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-usdt.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-walletconnect.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-wei.png +0 -0
- package/dist/modules/design_system/gallery/assets/crypto-xrp.png +0 -0
- package/dist/modules/design_system/gallery/assets/cryptocurrency-artwork.js +67 -0
- package/dist/modules/design_system/gallery/assets/cryptocurrency-artwork.js.map +7 -0
- package/dist/modules/design_system/gallery/assets/github-logo.png +0 -0
- package/dist/modules/design_system/gallery/assets/images.d.js +1 -0
- package/dist/modules/design_system/gallery/assets/images.d.js.map +7 -0
- package/dist/modules/design_system/gallery/assets/input-european-union.svg +18 -0
- package/dist/modules/design_system/gallery/assets/landing-teams-01.png +0 -0
- package/dist/modules/design_system/gallery/assets/marketing-artwork.js +83 -0
- package/dist/modules/design_system/gallery/assets/marketing-artwork.js.map +7 -0
- package/dist/modules/design_system/gallery/assets/menu-apex.svg +18 -0
- package/dist/modules/design_system/gallery/assets/menu-mastercard.svg +7 -0
- package/dist/modules/design_system/gallery/assets/menu-spotify.svg +4 -0
- package/dist/modules/design_system/gallery/assets/menu-united-states.svg +16 -0
- package/dist/modules/design_system/gallery/assets/select-google.png +0 -0
- package/dist/modules/design_system/gallery/assets/select-poland.png +0 -0
- package/dist/modules/design_system/gallery/assets/selection-artwork.js +5 -0
- package/dist/modules/design_system/gallery/assets/selection-artwork.js.map +7 -0
- package/dist/modules/design_system/gallery/assets/social-apple-filled.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-apple-stroke.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-dropbox-filled.svg +5 -0
- package/dist/modules/design_system/gallery/assets/social-dropbox-stroke.svg +5 -0
- package/dist/modules/design_system/gallery/assets/social-facebook-filled.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-facebook-stroke.svg +10 -0
- package/dist/modules/design_system/gallery/assets/social-github-filled.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-github-stroke.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-google-filled.svg +7 -0
- package/dist/modules/design_system/gallery/assets/social-google-stroke.svg +7 -0
- package/dist/modules/design_system/gallery/assets/social-linkedin-filled.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-linkedin-stroke.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-x-filled.svg +4 -0
- package/dist/modules/design_system/gallery/assets/social-x-stroke.svg +4 -0
- package/dist/modules/design_system/gallery/assets/style-studio-product.png +0 -0
- package/dist/modules/design_system/gallery/assets/upload-images.js +8 -0
- package/dist/modules/design_system/gallery/assets/upload-images.js.map +7 -0
- package/dist/modules/design_system/gallery/components/BrandStylePreview.js +74 -0
- package/dist/modules/design_system/gallery/components/BrandStylePreview.js.map +7 -0
- package/dist/modules/design_system/gallery/components/CodeSnippet.js +31 -31
- package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +2 -2
- package/dist/modules/design_system/gallery/components/ColorPlayground.js +408 -0
- package/dist/modules/design_system/gallery/components/ColorPlayground.js.map +7 -0
- package/dist/modules/design_system/gallery/components/ColorStudioCompositions.js +166 -0
- package/dist/modules/design_system/gallery/components/ColorStudioCompositions.js.map +7 -0
- package/dist/modules/design_system/gallery/components/ColorStudioSpecimen.js +182 -0
- package/dist/modules/design_system/gallery/components/ColorStudioSpecimen.js.map +7 -0
- package/dist/modules/design_system/gallery/components/CompactEntrySpecimen.js +80 -0
- package/dist/modules/design_system/gallery/components/CompactEntrySpecimen.js.map +7 -0
- package/dist/modules/design_system/gallery/components/ComponentIndex.js +42 -0
- package/dist/modules/design_system/gallery/components/ComponentIndex.js.map +7 -0
- package/dist/modules/design_system/gallery/components/DesignSystemHome.js +69 -0
- package/dist/modules/design_system/gallery/components/DesignSystemHome.js.map +7 -0
- package/dist/modules/design_system/gallery/components/EntryCard.js +47 -41
- package/dist/modules/design_system/gallery/components/EntryCard.js.map +2 -2
- package/dist/modules/design_system/gallery/components/EntryHeader.js +68 -0
- package/dist/modules/design_system/gallery/components/EntryHeader.js.map +7 -0
- package/dist/modules/design_system/gallery/components/FamilyEntryPreview.js +19 -0
- package/dist/modules/design_system/gallery/components/FamilyEntryPreview.js.map +7 -0
- package/dist/modules/design_system/gallery/components/FoundationGuide.js +46 -0
- package/dist/modules/design_system/gallery/components/FoundationGuide.js.map +7 -0
- package/dist/modules/design_system/gallery/components/GalleryLink.js +21 -0
- package/dist/modules/design_system/gallery/components/GalleryLink.js.map +7 -0
- package/dist/modules/design_system/gallery/components/GalleryNavigation.js +82 -0
- package/dist/modules/design_system/gallery/components/GalleryNavigation.js.map +7 -0
- package/dist/modules/design_system/gallery/components/GalleryShell.js +147 -67
- package/dist/modules/design_system/gallery/components/GalleryShell.js.map +3 -3
- package/dist/modules/design_system/gallery/components/IconsBrowser.js +33 -0
- package/dist/modules/design_system/gallery/components/IconsBrowser.js.map +7 -0
- package/dist/modules/design_system/gallery/components/SourceLibrary.js +93 -0
- package/dist/modules/design_system/gallery/components/SourceLibrary.js.map +7 -0
- package/dist/modules/design_system/gallery/components/StyleAgents.js +139 -0
- package/dist/modules/design_system/gallery/components/StyleAgents.js.map +7 -0
- package/dist/modules/design_system/gallery/components/ThemeTokenReference.js +101 -0
- package/dist/modules/design_system/gallery/components/ThemeTokenReference.js.map +7 -0
- package/dist/modules/design_system/gallery/components/VariantPreview.js +2 -2
- package/dist/modules/design_system/gallery/components/VariantPreview.js.map +2 -2
- package/dist/modules/design_system/gallery/components/colorPreview.js +58 -0
- package/dist/modules/design_system/gallery/components/colorPreview.js.map +7 -0
- package/dist/modules/design_system/gallery/components/colorStudio.js +218 -0
- package/dist/modules/design_system/gallery/components/colorStudio.js.map +7 -0
- package/dist/modules/design_system/gallery/components/styleAgentBranding.js +46 -0
- package/dist/modules/design_system/gallery/components/styleAgentBranding.js.map +7 -0
- package/dist/modules/design_system/gallery/components/themeTokens.js +32 -0
- package/dist/modules/design_system/gallery/components/themeTokens.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/ai-product-code.generated.js +194 -0
- package/dist/modules/design_system/gallery/demos/ai-product-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/ai-product.js +423 -0
- package/dist/modules/design_system/gallery/demos/ai-product.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/buttons.js +289 -0
- package/dist/modules/design_system/gallery/demos/buttons.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/cryptocurrency.js +1708 -0
- package/dist/modules/design_system/gallery/demos/cryptocurrency.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/feeds-code.generated.js +92 -0
- package/dist/modules/design_system/gallery/demos/feeds-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/feeds.js +148 -0
- package/dist/modules/design_system/gallery/demos/feeds.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/file-upload.js +72 -0
- package/dist/modules/design_system/gallery/demos/file-upload.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/foundation-reference-data.js +4875 -0
- package/dist/modules/design_system/gallery/demos/foundation-reference-data.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/foundation-references.js +188 -0
- package/dist/modules/design_system/gallery/demos/foundation-references.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/key-components-code.generated.js +6 -0
- package/dist/modules/design_system/gallery/demos/key-components-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/key-components.js +127 -0
- package/dist/modules/design_system/gallery/demos/key-components.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/marketing-controls-code.generated.js +98 -0
- package/dist/modules/design_system/gallery/demos/marketing-controls-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/marketing-controls.js +134 -0
- package/dist/modules/design_system/gallery/demos/marketing-controls.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/marketing-widgets-code.generated.js +195 -0
- package/dist/modules/design_system/gallery/demos/marketing-widgets-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/marketing-widgets.js +586 -0
- package/dist/modules/design_system/gallery/demos/marketing-widgets.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/menu-fixtures.js +40 -0
- package/dist/modules/design_system/gallery/demos/menu-fixtures.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/menu-sources.js +295 -0
- package/dist/modules/design_system/gallery/demos/menu-sources.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/menus.js +150 -0
- package/dist/modules/design_system/gallery/demos/menus.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/rating-reviews.js +53 -0
- package/dist/modules/design_system/gallery/demos/rating-reviews.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/registered-icons.js +104 -0
- package/dist/modules/design_system/gallery/demos/registered-icons.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/selection-cards.js +99 -0
- package/dist/modules/design_system/gallery/demos/selection-cards.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/shell-code.generated.js +189 -0
- package/dist/modules/design_system/gallery/demos/shell-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/shell.js +330 -0
- package/dist/modules/design_system/gallery/demos/shell.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/source-artwork.js +120 -0
- package/dist/modules/design_system/gallery/demos/source-artwork.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/source-filters-code.generated.js +125 -0
- package/dist/modules/design_system/gallery/demos/source-filters-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/source-filters.js +185 -0
- package/dist/modules/design_system/gallery/demos/source-filters.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/source-icons.js +69 -0
- package/dist/modules/design_system/gallery/demos/source-icons.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/table-cells-code.generated.js +150 -0
- package/dist/modules/design_system/gallery/demos/table-cells-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/table-cells.js +181 -0
- package/dist/modules/design_system/gallery/demos/table-cells.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/text-inputs.js +113 -0
- package/dist/modules/design_system/gallery/demos/text-inputs.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/time-picker-code.generated.js +41 -0
- package/dist/modules/design_system/gallery/demos/time-picker-code.generated.js.map +7 -0
- package/dist/modules/design_system/gallery/demos/time-picker.js +41 -0
- package/dist/modules/design_system/gallery/demos/time-picker.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/banners.js +123 -60
- package/dist/modules/design_system/gallery/entries/banners.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/buttons-snippets.js +433 -0
- package/dist/modules/design_system/gallery/entries/buttons-snippets.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/buttons.js +127 -148
- package/dist/modules/design_system/gallery/entries/buttons.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/charts.js +532 -186
- package/dist/modules/design_system/gallery/entries/charts.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/dates.js +191 -3
- package/dist/modules/design_system/gallery/entries/dates.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/detail.js +118 -77
- package/dist/modules/design_system/gallery/entries/detail.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/display.js +1449 -240
- package/dist/modules/design_system/gallery/entries/display.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/feedback.js +1058 -132
- package/dist/modules/design_system/gallery/entries/feedback.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/filters.js +231 -103
- package/dist/modules/design_system/gallery/entries/filters.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/foundations.js +368 -57
- package/dist/modules/design_system/gallery/entries/foundations.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/icons.js +29 -91
- package/dist/modules/design_system/gallery/entries/icons.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/inputs-snippets.js +154 -0
- package/dist/modules/design_system/gallery/entries/inputs-snippets.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/inputs.js +2043 -306
- package/dist/modules/design_system/gallery/entries/inputs.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/library.js +20 -0
- package/dist/modules/design_system/gallery/entries/library.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/messages.js +121 -103
- package/dist/modules/design_system/gallery/entries/messages.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/navigation.js +676 -103
- package/dist/modules/design_system/gallery/entries/navigation.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/notifications.js +131 -78
- package/dist/modules/design_system/gallery/entries/notifications.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/overlays.js +611 -203
- package/dist/modules/design_system/gallery/entries/overlays.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/scaffolding.js +1175 -120
- package/dist/modules/design_system/gallery/entries/scaffolding.js.map +2 -2
- package/dist/modules/design_system/gallery/entries/schedule.js +79 -54
- package/dist/modules/design_system/gallery/entries/schedule.js.map +2 -2
- package/dist/modules/design_system/gallery/presentation.js +108 -0
- package/dist/modules/design_system/gallery/presentation.js.map +7 -0
- package/dist/modules/design_system/gallery/registry.js +8 -5
- package/dist/modules/design_system/gallery/registry.js.map +2 -2
- package/dist/modules/design_system/gallery/source-library.generated.js +5 -0
- package/dist/modules/design_system/gallery/source-library.generated.js.map +7 -0
- package/dist/modules/design_system/i18n/de.json +7167 -0
- package/dist/modules/design_system/i18n/en.json +7167 -0
- package/dist/modules/design_system/i18n/es.json +7167 -0
- package/dist/modules/design_system/i18n/ko.json +7167 -0
- package/dist/modules/design_system/i18n/pl.json +7167 -0
- package/dist/modules/push_notifications/lib/queue.js +1 -31
- package/dist/modules/push_notifications/lib/queue.js.map +2 -2
- package/jest.config.cjs +1 -0
- package/jest.mocks/image.js +1 -0
- package/package.json +8 -9
- package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +50 -0
- package/src/modules/customers/backend/customers/companies/[id]/page.tsx +2 -1
- package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +2 -1
- package/src/modules/customers/backend/customers/people/[id]/page.tsx +2 -2
- package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +2 -1
- package/src/modules/customers/lib/detailHelpers.ts +4 -0
- package/src/modules/customers/lib/todoCompatibility.ts +10 -0
- package/src/modules/design_system/backend/design-system/page.meta.ts +3 -2
- package/src/modules/design_system/gallery/assets/README.md +30 -0
- package/src/modules/design_system/gallery/assets/ai-prompt-image.png +0 -0
- package/src/modules/design_system/gallery/assets/avatar-illustration.png +0 -0
- package/src/modules/design_system/gallery/assets/avatar-memoji.png +0 -0
- package/src/modules/design_system/gallery/assets/avatar-photo.png +0 -0
- package/src/modules/design_system/gallery/assets/blog-photo-0.png +0 -0
- package/src/modules/design_system/gallery/assets/contact-support-portrait.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-ada.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-avax.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-bnb.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-brand.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-btc.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-clock.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-crown.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-dot.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-eth.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-hbar.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-history.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-link.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-menu.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-metamask.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-more.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-phantom.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-rewards.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-sad-face.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-sol.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-star.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-status-cancelled.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-status-pending.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-status-success.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-status-warning.svg +3 -0
- package/src/modules/design_system/gallery/assets/crypto-trx.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-usdc.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-usdt.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-walletconnect.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-wei.png +0 -0
- package/src/modules/design_system/gallery/assets/crypto-xrp.png +0 -0
- package/src/modules/design_system/gallery/assets/cryptocurrency-artwork.ts +63 -0
- package/src/modules/design_system/gallery/assets/github-logo.png +0 -0
- package/src/modules/design_system/gallery/assets/images.d.ts +9 -0
- package/src/modules/design_system/gallery/assets/input-european-union.svg +18 -0
- package/src/modules/design_system/gallery/assets/landing-teams-01.png +0 -0
- package/src/modules/design_system/gallery/assets/marketing-artwork.ts +79 -0
- package/src/modules/design_system/gallery/assets/menu-apex.svg +18 -0
- package/src/modules/design_system/gallery/assets/menu-mastercard.svg +7 -0
- package/src/modules/design_system/gallery/assets/menu-spotify.svg +4 -0
- package/src/modules/design_system/gallery/assets/menu-united-states.svg +16 -0
- package/src/modules/design_system/gallery/assets/select-google.png +0 -0
- package/src/modules/design_system/gallery/assets/select-poland.png +0 -0
- package/src/modules/design_system/gallery/assets/selection-artwork.ts +1 -0
- package/src/modules/design_system/gallery/assets/social-apple-filled.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-apple-stroke.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-dropbox-filled.svg +5 -0
- package/src/modules/design_system/gallery/assets/social-dropbox-stroke.svg +5 -0
- package/src/modules/design_system/gallery/assets/social-facebook-filled.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-facebook-stroke.svg +10 -0
- package/src/modules/design_system/gallery/assets/social-github-filled.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-github-stroke.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-google-filled.svg +7 -0
- package/src/modules/design_system/gallery/assets/social-google-stroke.svg +7 -0
- package/src/modules/design_system/gallery/assets/social-linkedin-filled.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-linkedin-stroke.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-x-filled.svg +4 -0
- package/src/modules/design_system/gallery/assets/social-x-stroke.svg +4 -0
- package/src/modules/design_system/gallery/assets/style-studio-product.png +0 -0
- package/src/modules/design_system/gallery/assets/upload-images.ts +5 -0
- package/src/modules/design_system/gallery/components/BrandStylePreview.tsx +94 -0
- package/src/modules/design_system/gallery/components/CodeSnippet.tsx +34 -34
- package/src/modules/design_system/gallery/components/ColorPlayground.tsx +324 -0
- package/src/modules/design_system/gallery/components/ColorStudioCompositions.tsx +96 -0
- package/src/modules/design_system/gallery/components/ColorStudioSpecimen.tsx +164 -0
- package/src/modules/design_system/gallery/components/CompactEntrySpecimen.tsx +65 -0
- package/src/modules/design_system/gallery/components/ComponentIndex.tsx +47 -0
- package/src/modules/design_system/gallery/components/DesignSystemHome.tsx +66 -0
- package/src/modules/design_system/gallery/components/EntryCard.tsx +52 -37
- package/src/modules/design_system/gallery/components/EntryHeader.tsx +80 -0
- package/src/modules/design_system/gallery/components/FamilyEntryPreview.tsx +22 -0
- package/src/modules/design_system/gallery/components/FoundationGuide.tsx +43 -0
- package/src/modules/design_system/gallery/components/GalleryLink.tsx +19 -0
- package/src/modules/design_system/gallery/components/GalleryNavigation.tsx +86 -0
- package/src/modules/design_system/gallery/components/GalleryShell.tsx +149 -63
- package/src/modules/design_system/gallery/components/IconsBrowser.tsx +40 -0
- package/src/modules/design_system/gallery/components/SourceLibrary.tsx +90 -0
- package/src/modules/design_system/gallery/components/StyleAgents.tsx +115 -0
- package/src/modules/design_system/gallery/components/ThemeTokenReference.tsx +76 -0
- package/src/modules/design_system/gallery/components/VariantPreview.tsx +2 -2
- package/src/modules/design_system/gallery/components/colorPreview.ts +63 -0
- package/src/modules/design_system/gallery/components/colorStudio.ts +260 -0
- package/src/modules/design_system/gallery/components/styleAgentBranding.ts +42 -0
- package/src/modules/design_system/gallery/components/themeTokens.ts +26 -0
- package/src/modules/design_system/gallery/demos/ai-product-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/ai-product.tsx +188 -0
- package/src/modules/design_system/gallery/demos/buttons.tsx +331 -0
- package/src/modules/design_system/gallery/demos/cryptocurrency.tsx +1943 -0
- package/src/modules/design_system/gallery/demos/feeds-code.generated.ts +4 -0
- package/src/modules/design_system/gallery/demos/feeds.tsx +82 -0
- package/src/modules/design_system/gallery/demos/file-upload.tsx +61 -0
- package/src/modules/design_system/gallery/demos/foundation-reference-data.ts +4872 -0
- package/src/modules/design_system/gallery/demos/foundation-references.tsx +140 -0
- package/src/modules/design_system/gallery/demos/key-components-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/key-components.tsx +106 -0
- package/src/modules/design_system/gallery/demos/marketing-controls-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/marketing-controls.tsx +92 -0
- package/src/modules/design_system/gallery/demos/marketing-widgets-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/marketing-widgets.tsx +189 -0
- package/src/modules/design_system/gallery/demos/menu-fixtures.tsx +48 -0
- package/src/modules/design_system/gallery/demos/menu-sources.ts +5 -0
- package/src/modules/design_system/gallery/demos/menus.tsx +122 -0
- package/src/modules/design_system/gallery/demos/rating-reviews.tsx +44 -0
- package/src/modules/design_system/gallery/demos/registered-icons.tsx +117 -0
- package/src/modules/design_system/gallery/demos/selection-cards.tsx +97 -0
- package/src/modules/design_system/gallery/demos/shell-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/shell.tsx +183 -0
- package/src/modules/design_system/gallery/demos/source-artwork.tsx +88 -0
- package/src/modules/design_system/gallery/demos/source-filters-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/source-filters.tsx +119 -0
- package/src/modules/design_system/gallery/demos/source-icons.tsx +62 -0
- package/src/modules/design_system/gallery/demos/table-cells-code.generated.ts +3 -0
- package/src/modules/design_system/gallery/demos/table-cells.tsx +144 -0
- package/src/modules/design_system/gallery/demos/text-inputs.tsx +90 -0
- package/src/modules/design_system/gallery/demos/time-picker-code.generated.ts +5 -0
- package/src/modules/design_system/gallery/demos/time-picker.tsx +31 -0
- package/src/modules/design_system/gallery/entries/banners.tsx +143 -94
- package/src/modules/design_system/gallery/entries/buttons-snippets.ts +432 -0
- package/src/modules/design_system/gallery/entries/buttons.tsx +125 -196
- package/src/modules/design_system/gallery/entries/charts.tsx +545 -233
- package/src/modules/design_system/gallery/entries/dates.tsx +171 -3
- package/src/modules/design_system/gallery/entries/detail.tsx +142 -115
- package/src/modules/design_system/gallery/entries/display.tsx +1691 -319
- package/src/modules/design_system/gallery/entries/feedback.tsx +1082 -169
- package/src/modules/design_system/gallery/entries/filters.tsx +238 -143
- package/src/modules/design_system/gallery/entries/foundations.tsx +404 -61
- package/src/modules/design_system/gallery/entries/icons.tsx +31 -117
- package/src/modules/design_system/gallery/entries/inputs-snippets.ts +156 -0
- package/src/modules/design_system/gallery/entries/inputs.tsx +2146 -503
- package/src/modules/design_system/gallery/entries/library.tsx +16 -0
- package/src/modules/design_system/gallery/entries/messages.tsx +114 -106
- package/src/modules/design_system/gallery/entries/navigation.tsx +782 -192
- package/src/modules/design_system/gallery/entries/notifications.tsx +145 -120
- package/src/modules/design_system/gallery/entries/overlays.tsx +696 -280
- package/src/modules/design_system/gallery/entries/scaffolding.tsx +1192 -158
- package/src/modules/design_system/gallery/entries/schedule.tsx +72 -58
- package/src/modules/design_system/gallery/presentation.ts +106 -0
- package/src/modules/design_system/gallery/registry.ts +8 -6
- package/src/modules/design_system/gallery/source-library.generated.ts +2 -0
- package/src/modules/design_system/i18n/de.json +7112 -3
- package/src/modules/design_system/i18n/en.json +7112 -3
- package/src/modules/design_system/i18n/es.json +7112 -3
- package/src/modules/design_system/i18n/ko.json +7112 -3
- package/src/modules/design_system/i18n/pl.json +7112 -3
- package/src/modules/push_notifications/AGENTS.md +9 -5
- package/src/modules/push_notifications/lib/queue.ts +15 -44
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/modules/design_system/gallery/entries/inputs.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport { Copy, Globe, Info, Link2, Send, User } from 'lucide-react'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectTriggerLeading,\n SelectValue,\n} from '@open-mercato/ui/primitives/select'\nimport { CompactSelectTrigger } from '@open-mercato/ui/primitives/compact-select'\nimport { InlineSelectTrigger } from '@open-mercato/ui/primitives/inline-select'\nimport { InlineInput } from '@open-mercato/ui/primitives/inline-input'\nimport { Checkbox } from '@open-mercato/ui/primitives/checkbox'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Slider } from '@open-mercato/ui/primitives/slider'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { SearchInput } from '@open-mercato/ui/primitives/search-input'\nimport { EmailInput } from '@open-mercato/ui/primitives/email-input'\nimport { PasswordInput } from '@open-mercato/ui/primitives/password-input'\nimport { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\nimport { AmountInput, type AmountValue } from '@open-mercato/ui/primitives/amount-input'\nimport { CounterInput } from '@open-mercato/ui/primitives/counter-input'\nimport { DigitInput } from '@open-mercato/ui/primitives/digit-input'\nimport { CardInput } from '@open-mercato/ui/primitives/card-input'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport {\n ColorPicker,\n COLOR_PICKER_DEFAULT_SWATCHES,\n} from '@open-mercato/ui/primitives/color-picker'\nimport { TagInput } from '@open-mercato/ui/primitives/tag-input'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\nimport type { GalleryEntry } from '../types'\n\n// Component titles and variant names are proper nouns from the codebase and\n// are deliberately not translated. `code` MUST contain the entry's importPath\n// (enforced by the registry-integrity test) and is always reviewed alongside\n// its sibling `render`.\n\n// ---------------------------------------------------------------------------\n// Demo wrappers \u2014 controlled primitives need local state to be interactive in\n// the gallery. The `code` snippets show the essential consumer usage, not\n// these wrappers.\n// ---------------------------------------------------------------------------\n\nfunction DemoSearchInput({ size }: { size?: 'sm' | 'default' | 'lg' }) {\n const [value, setValue] = React.useState('open orders')\n return (\n <div className=\"w-72\">\n <SearchInput value={value} onChange={setValue} size={size} />\n </div>\n )\n}\n\nfunction DemoAmountInput({ showCurrency }: { showCurrency?: boolean }) {\n const [value, setValue] = React.useState<AmountValue>({ amount: '1250.00', currency: 'EUR' })\n return (\n <div className=\"w-72\">\n <AmountInput value={value} onChange={setValue} showCurrency={showCurrency} />\n </div>\n )\n}\n\nfunction DemoCounterInput({\n initial = 2,\n step,\n precision,\n min,\n max,\n}: {\n initial?: number\n step?: number\n precision?: number\n min?: number\n max?: number\n}) {\n const [value, setValue] = React.useState<number | null>(initial)\n return (\n <div className=\"w-36\">\n <CounterInput\n value={value}\n onChange={setValue}\n step={step}\n precision={precision}\n min={min}\n max={max}\n />\n </div>\n )\n}\n\nfunction DemoCardInput({ initial = '' }: { initial?: string }) {\n const [value, setValue] = React.useState(initial)\n return (\n <div className=\"w-80\">\n <CardInput value={value} onChange={setValue} />\n </div>\n )\n}\n\nfunction DemoColorPicker({\n allowCustom,\n swatches,\n}: {\n allowCustom?: boolean\n swatches?: readonly string[]\n}) {\n const [color, setColor] = React.useState('#6366F1')\n return (\n <ColorPicker\n value={color}\n onChange={setColor}\n allowCustom={allowCustom}\n swatches={swatches}\n aria-label=\"Pick color\"\n />\n )\n}\n\nfunction DemoTagInput({\n initial = [],\n maxTags,\n placeholder,\n}: {\n initial?: string[]\n maxTags?: number\n placeholder?: string\n}) {\n const [tags, setTags] = React.useState<string[]>(initial)\n return (\n <div className=\"w-72\">\n <TagInput value={tags} onChange={setTags} maxTags={maxTags} placeholder={placeholder} />\n </div>\n )\n}\n\nfunction DemoRichEditor({ variant }: { variant: 'minimal' | 'standard' }) {\n const [html, setHtml] = React.useState(\n '<p>Ship the <strong>Q3 release notes</strong> before Friday.</p>',\n )\n return (\n <div className=\"w-full max-w-xl\">\n <RichEditor value={html} onChange={setHtml} variant={variant} />\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Entries\n// ---------------------------------------------------------------------------\n\nconst inputEntry: GalleryEntry = {\n id: 'input',\n title: 'Input',\n importPath: '@open-mercato/ui/primitives/input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <div className=\"w-72\">\n <Input placeholder=\"Product name\" />\n </div>\n ),\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input placeholder=\"Product name\" />`,\n },\n {\n id: 'icon-slots',\n title: 'Icon slots',\n render: () => (\n <>\n <div className=\"w-56\">\n <Input leftIcon={<User />} placeholder=\"Assignee\" />\n </div>\n <div className=\"w-56\">\n <Input rightIcon={<Info />} placeholder=\"SKU\" />\n </div>\n </>\n ),\n code: `import { Info, User } from 'lucide-react'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<Input leftIcon={<User />} placeholder=\"Assignee\" />\n<Input rightIcon={<Info />} placeholder=\"SKU\" />`,\n },\n {\n id: 'sizes',\n title: 'Sizes',\n render: () => (\n <>\n <div className=\"w-44\">\n <Input size=\"lg\" placeholder=\"Large\" />\n </div>\n <div className=\"w-44\">\n <Input size=\"default\" placeholder=\"Default\" />\n </div>\n <div className=\"w-44\">\n <Input size=\"sm\" placeholder=\"Small\" />\n </div>\n </>\n ),\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input size=\"lg\" placeholder=\"Large\" />\n<Input size=\"default\" placeholder=\"Default\" />\n<Input size=\"sm\" placeholder=\"Small\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => (\n <>\n <div className=\"w-56\">\n <Input aria-invalid defaultValue=\"not-a-number\" />\n </div>\n <div className=\"w-56\">\n <Input disabled placeholder=\"Disabled\" />\n </div>\n </>\n ),\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input aria-invalid defaultValue=\"not-a-number\" />\n<Input disabled placeholder=\"Disabled\" />`,\n },\n ],\n}\n\nconst textareaEntry: GalleryEntry = {\n id: 'textarea',\n title: 'Textarea',\n importPath: '@open-mercato/ui/primitives/textarea',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <div className=\"w-80\">\n <Textarea placeholder=\"Internal note for the fulfillment team\" />\n </div>\n ),\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea placeholder=\"Internal note for the fulfillment team\" />`,\n },\n {\n id: 'character-count',\n title: 'Character counter',\n render: () => (\n <div className=\"w-80\">\n <Textarea\n showCount\n maxLength={200}\n defaultValue=\"Customer prefers delivery after 4 PM.\"\n />\n </div>\n ),\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea showCount maxLength={200} defaultValue=\"Customer prefers delivery after 4 PM.\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => (\n <>\n <div className=\"w-72\">\n <Textarea aria-invalid defaultValue=\"Too short\" />\n </div>\n <div className=\"w-72\">\n <Textarea disabled placeholder=\"Disabled\" />\n </div>\n </>\n ),\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea aria-invalid defaultValue=\"Too short\" />\n<Textarea disabled placeholder=\"Disabled\" />`,\n },\n ],\n}\n\nconst selectEntry: GalleryEntry = {\n id: 'select',\n title: 'Select',\n importPath: '@open-mercato/ui/primitives/select',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <div className=\"w-56\">\n <Select defaultValue=\"pln\">\n <SelectTrigger>\n <SelectValue placeholder=\"Choose currency\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"eur\">Euro (EUR)</SelectItem>\n <SelectItem value=\"pln\">Polish Z\u0142oty (PLN)</SelectItem>\n <SelectItem value=\"usd\">US Dollar (USD)</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@open-mercato/ui/primitives/select'\n\n<Select defaultValue=\"pln\">\n <SelectTrigger>\n <SelectValue placeholder=\"Choose currency\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"eur\">Euro (EUR)</SelectItem>\n <SelectItem value=\"pln\">Polish Z\u0142oty (PLN)</SelectItem>\n <SelectItem value=\"usd\">US Dollar (USD)</SelectItem>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'groups-leading',\n title: 'Groups + leading slot',\n render: () => (\n <div className=\"w-56\">\n <Select>\n <SelectTrigger>\n <SelectTriggerLeading>\n <Globe />\n </SelectTriggerLeading>\n <SelectValue placeholder=\"Sales channel\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Online</SelectLabel>\n <SelectItem value=\"webstore\">Webstore</SelectItem>\n <SelectItem value=\"marketplace\">Marketplace</SelectItem>\n </SelectGroup>\n <SelectSeparator />\n <SelectGroup>\n <SelectLabel>Offline</SelectLabel>\n <SelectItem value=\"retail\">Retail store</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import { Globe } from 'lucide-react'\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectTriggerLeading,\n SelectValue,\n} from '@open-mercato/ui/primitives/select'\n\n<Select>\n <SelectTrigger>\n <SelectTriggerLeading><Globe /></SelectTriggerLeading>\n <SelectValue placeholder=\"Sales channel\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Online</SelectLabel>\n <SelectItem value=\"webstore\">Webstore</SelectItem>\n <SelectItem value=\"marketplace\">Marketplace</SelectItem>\n </SelectGroup>\n <SelectSeparator />\n <SelectGroup>\n <SelectLabel>Offline</SelectLabel>\n <SelectItem value=\"retail\">Retail store</SelectItem>\n </SelectGroup>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'sizes',\n title: 'Sizes',\n render: () => (\n <>\n {(['lg', 'default', 'sm', 'xs'] as const).map((size) => (\n <div key={size} className=\"w-40\">\n <Select defaultValue=\"active\">\n <SelectTrigger size={size}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"active\">Active</SelectItem>\n <SelectItem value=\"archived\">Archived</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ))}\n </>\n ),\n code: `import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@open-mercato/ui/primitives/select'\n\n<SelectTrigger size=\"lg\" />\n<SelectTrigger size=\"default\" />\n<SelectTrigger size=\"sm\" />\n<SelectTrigger size=\"xs\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => (\n <>\n <div className=\"w-48\">\n <Select>\n <SelectTrigger aria-invalid=\"true\">\n <SelectValue placeholder=\"Required\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"a\">Option A</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"w-48\">\n <Select>\n <SelectTrigger disabled>\n <SelectValue placeholder=\"Disabled\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"a\">Option A</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </>\n ),\n code: `import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@open-mercato/ui/primitives/select'\n\n<SelectTrigger aria-invalid=\"true\"><SelectValue placeholder=\"Required\" /></SelectTrigger>\n<SelectTrigger disabled><SelectValue placeholder=\"Disabled\" /></SelectTrigger>`,\n },\n ],\n}\n\nconst compactSelectEntry: GalleryEntry = {\n id: 'compact-select',\n title: 'CompactSelectTrigger',\n importPath: '@open-mercato/ui/primitives/compact-select',\n variants: [\n {\n id: 'trigger-label',\n title: 'With trigger label',\n render: () => (\n <div className=\"w-44\">\n <Select defaultValue=\"newest\">\n <CompactSelectTrigger triggerLabel=\"Sort:\">\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"newest\">Newest</SelectItem>\n <SelectItem value=\"oldest\">Oldest</SelectItem>\n <SelectItem value=\"value\">Highest value</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import {\n CompactSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/compact-select'\n\n<Select defaultValue=\"newest\">\n <CompactSelectTrigger triggerLabel=\"Sort:\">\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"newest\">Newest</SelectItem>\n <SelectItem value=\"oldest\">Oldest</SelectItem>\n <SelectItem value=\"value\">Highest value</SelectItem>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'plain',\n title: 'Without label',\n render: () => (\n <div className=\"w-36\">\n <Select defaultValue=\"table\">\n <CompactSelectTrigger>\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"table\">Table</SelectItem>\n <SelectItem value=\"board\">Board</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import {\n CompactSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/compact-select'\n\n<Select defaultValue=\"table\">\n <CompactSelectTrigger>\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"table\">Table</SelectItem>\n <SelectItem value=\"board\">Board</SelectItem>\n </SelectContent>\n</Select>`,\n },\n ],\n}\n\nconst inlineSelectEntry: GalleryEntry = {\n id: 'inline-select',\n title: 'InlineSelectTrigger',\n importPath: '@open-mercato/ui/primitives/inline-select',\n variants: [\n {\n id: 'default',\n title: 'default (border on hover)',\n render: () => (\n <div className=\"w-40\">\n <Select defaultValue=\"high\">\n <InlineSelectTrigger>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"low\">Low</SelectItem>\n <SelectItem value=\"medium\">Medium</SelectItem>\n <SelectItem value=\"high\">High</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import {\n InlineSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/inline-select'\n\n<Select defaultValue=\"high\">\n <InlineSelectTrigger>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"low\">Low</SelectItem>\n <SelectItem value=\"medium\">Medium</SelectItem>\n <SelectItem value=\"high\">High</SelectItem>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'invisible',\n title: 'Invisible until focus',\n render: () => (\n <div className=\"w-40\">\n <Select defaultValue=\"draft\">\n <InlineSelectTrigger showBorderOnHover={false}>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"draft\">Draft</SelectItem>\n <SelectItem value=\"published\">Published</SelectItem>\n </SelectContent>\n </Select>\n </div>\n ),\n code: `import {\n InlineSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/inline-select'\n\n<InlineSelectTrigger showBorderOnHover={false}>\n <SelectValue />\n</InlineSelectTrigger>`,\n },\n ],\n}\n\nconst inlineInputEntry: GalleryEntry = {\n id: 'inline-input',\n title: 'InlineInput',\n importPath: '@open-mercato/ui/primitives/inline-input',\n variants: [\n {\n id: 'default',\n title: 'default (border on hover)',\n render: () => (\n <div className=\"w-56\">\n <InlineInput defaultValue=\"Aurora desk lamp\" aria-label=\"Product name\" />\n </div>\n ),\n code: `import { InlineInput } from '@open-mercato/ui/primitives/inline-input'\n\n<InlineInput defaultValue=\"Aurora desk lamp\" aria-label=\"Product name\" onBlur={save} />`,\n },\n {\n id: 'invisible',\n title: 'Invisible until focus',\n render: () => (\n <div className=\"w-56\">\n <InlineInput\n showBorderOnHover={false}\n defaultValue=\"SKU-2041\"\n aria-label=\"SKU\"\n />\n </div>\n ),\n code: `import { InlineInput } from '@open-mercato/ui/primitives/inline-input'\n\n<InlineInput showBorderOnHover={false} defaultValue=\"SKU-2041\" aria-label=\"SKU\" />`,\n },\n ],\n}\n\nconst checkboxEntry: GalleryEntry = {\n id: 'checkbox',\n title: 'Checkbox',\n importPath: '@open-mercato/ui/primitives/checkbox',\n variants: [\n {\n id: 'states',\n title: 'States',\n render: () => (\n <>\n <Checkbox aria-label=\"Unchecked\" />\n <Checkbox defaultChecked aria-label=\"Checked\" />\n <Checkbox checked=\"indeterminate\" aria-label=\"Indeterminate\" />\n </>\n ),\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox />\n<Checkbox defaultChecked />\n<Checkbox checked=\"indeterminate\" />`,\n },\n {\n id: 'sizes',\n title: 'Sizes',\n render: () => (\n <>\n <Checkbox size=\"sm\" defaultChecked aria-label=\"Small\" />\n <Checkbox size=\"md\" defaultChecked aria-label=\"Medium\" />\n </>\n ),\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox size=\"sm\" defaultChecked />\n<Checkbox size=\"md\" defaultChecked />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <>\n <Checkbox disabled aria-label=\"Disabled\" />\n <Checkbox disabled defaultChecked aria-label=\"Disabled checked\" />\n </>\n ),\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox disabled />\n<Checkbox disabled defaultChecked />`,\n },\n ],\n}\n\nconst checkboxFieldEntry: GalleryEntry = {\n id: 'checkbox-field',\n title: 'CheckboxField',\n importPath: '@open-mercato/ui/primitives/checkbox-field',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <CheckboxField label=\"Email notifications\" defaultChecked />\n ),\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField label=\"Email notifications\" defaultChecked />`,\n },\n {\n id: 'with-description',\n title: 'With sublabel + description',\n render: () => (\n <div className=\"w-80\">\n <CheckboxField\n label=\"Auto-archive\"\n sublabel=\"(recommended)\"\n description=\"Closed conversations move to the archive after 30 days.\"\n />\n </div>\n ),\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField\n label=\"Auto-archive\"\n sublabel=\"(recommended)\"\n description=\"Closed conversations move to the archive after 30 days.\"\n/>`,\n },\n {\n id: 'flip',\n title: 'Flipped (checkbox right)',\n render: () => (\n <div className=\"w-72\">\n <CheckboxField flip label=\"Include shipping costs\" defaultChecked />\n </div>\n ),\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField flip label=\"Include shipping costs\" defaultChecked />`,\n },\n ],\n}\n\nconst radioEntry: GalleryEntry = {\n id: 'radio',\n title: 'Radio',\n importPath: '@open-mercato/ui/primitives/radio',\n keywords: ['radiobutton', 'radio button', 'option group'],\n variants: [\n {\n id: 'group',\n title: 'RadioGroup',\n render: () => (\n <RadioGroup defaultValue=\"card\" className=\"flex-row gap-3\" aria-label=\"Payment method\">\n <Radio value=\"card\" aria-label=\"Card\" />\n <Radio value=\"transfer\" aria-label=\"Bank transfer\" />\n <Radio value=\"cash\" aria-label=\"Cash\" />\n </RadioGroup>\n ),\n code: `import { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\n\n<RadioGroup defaultValue=\"card\" aria-label=\"Payment method\">\n <Radio value=\"card\" aria-label=\"Card\" />\n <Radio value=\"transfer\" aria-label=\"Bank transfer\" />\n <Radio value=\"cash\" aria-label=\"Cash\" />\n</RadioGroup>`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <RadioGroup defaultValue=\"a\" disabled className=\"flex-row gap-3\" aria-label=\"Disabled group\">\n <Radio value=\"a\" aria-label=\"Selected disabled\" />\n <Radio value=\"b\" aria-label=\"Unselected disabled\" />\n </RadioGroup>\n ),\n code: `import { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\n\n<RadioGroup defaultValue=\"a\" disabled>\n <Radio value=\"a\" />\n <Radio value=\"b\" />\n</RadioGroup>`,\n },\n ],\n}\n\nconst radioFieldEntry: GalleryEntry = {\n keywords: ['radiobutton', 'radio button'],\n id: 'radio-field',\n title: 'RadioField',\n importPath: '@open-mercato/ui/primitives/radio-field',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <RadioGroup defaultValue=\"standard\" aria-label=\"Shipping speed\">\n <RadioField value=\"standard\" label=\"Standard\" />\n <RadioField value=\"express\" label=\"Express\" />\n </RadioGroup>\n ),\n code: `import { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\n\n<RadioGroup defaultValue=\"standard\" aria-label=\"Shipping speed\">\n <RadioField value=\"standard\" label=\"Standard\" />\n <RadioField value=\"express\" label=\"Express\" />\n</RadioGroup>`,\n },\n {\n id: 'with-description',\n title: 'With description',\n render: () => (\n <div className=\"w-80\">\n <RadioGroup defaultValue=\"invoice\" aria-label=\"Billing\">\n <RadioField\n value=\"invoice\"\n label=\"Invoice\"\n description=\"Pay within 14 days of delivery.\"\n />\n <RadioField\n value=\"prepaid\"\n label=\"Prepaid\"\n description=\"Order ships after payment clears.\"\n />\n </RadioGroup>\n </div>\n ),\n code: `import { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\n\n<RadioGroup defaultValue=\"invoice\" aria-label=\"Billing\">\n <RadioField value=\"invoice\" label=\"Invoice\" description=\"Pay within 14 days of delivery.\" />\n <RadioField value=\"prepaid\" label=\"Prepaid\" description=\"Order ships after payment clears.\" />\n</RadioGroup>`,\n },\n ],\n}\n\nconst switchEntry: GalleryEntry = {\n id: 'switch',\n title: 'Switch',\n importPath: '@open-mercato/ui/primitives/switch',\n variants: [\n {\n id: 'states',\n title: 'States',\n render: () => (\n <>\n <Switch aria-label=\"Off\" />\n <Switch defaultChecked aria-label=\"On\" />\n </>\n ),\n code: `import { Switch } from '@open-mercato/ui/primitives/switch'\n\n<Switch />\n<Switch defaultChecked />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <>\n <Switch disabled aria-label=\"Disabled off\" />\n <Switch disabled defaultChecked aria-label=\"Disabled on\" />\n </>\n ),\n code: `import { Switch } from '@open-mercato/ui/primitives/switch'\n\n<Switch disabled />\n<Switch disabled defaultChecked />`,\n },\n ],\n}\n\nconst switchFieldEntry: GalleryEntry = {\n id: 'switch-field',\n title: 'SwitchField',\n importPath: '@open-mercato/ui/primitives/switch-field',\n variants: [\n {\n id: 'default',\n title: 'default (switch right)',\n render: () => (\n <div className=\"w-72\">\n <SwitchField label=\"Two-factor authentication\" defaultChecked />\n </div>\n ),\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField label=\"Two-factor authentication\" defaultChecked />`,\n },\n {\n id: 'with-description',\n title: 'With description',\n render: () => (\n <div className=\"w-80\">\n <SwitchField\n label=\"Low-stock alerts\"\n description=\"Notify purchasing when stock drops below the reorder point.\"\n />\n </div>\n ),\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField\n label=\"Low-stock alerts\"\n description=\"Notify purchasing when stock drops below the reorder point.\"\n/>`,\n },\n {\n id: 'flip',\n title: 'Flipped (switch left)',\n render: () => (\n <div className=\"w-72\">\n <SwitchField flip label=\"Sync inventory nightly\" defaultChecked />\n </div>\n ),\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField flip label=\"Sync inventory nightly\" defaultChecked />`,\n },\n ],\n}\n\nconst sliderEntry: GalleryEntry = {\n id: 'slider',\n title: 'Slider',\n importPath: '@open-mercato/ui/primitives/slider',\n variants: [\n {\n id: 'single',\n title: 'Single value',\n render: () => (\n <div className=\"w-72\">\n <Slider defaultValue={[40]} min={0} max={100} step={5} aria-label=\"Discount\" />\n </div>\n ),\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[40]} min={0} max={100} step={5} aria-label=\"Discount\" />`,\n },\n {\n id: 'range',\n title: 'Range (two thumbs)',\n render: () => (\n <div className=\"w-72\">\n <Slider defaultValue={[20, 60]} min={0} max={100} aria-label=\"Price range\" />\n </div>\n ),\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[20, 60]} min={0} max={100} aria-label=\"Price range\" />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <div className=\"w-72\">\n <Slider defaultValue={[45]} disabled aria-label=\"Disabled slider\" />\n </div>\n ),\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[45]} disabled />`,\n },\n ],\n}\n\nconst formFieldEntry: GalleryEntry = {\n id: 'form-field',\n title: 'FormField',\n importPath: '@open-mercato/ui/primitives/form-field',\n variants: [\n {\n id: 'default',\n title: 'Label + description',\n render: () => (\n <div className=\"w-72\">\n <FormField label=\"Warehouse code\" description=\"Short identifier used on labels.\">\n <Input placeholder=\"WAW-01\" />\n </FormField>\n </div>\n ),\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"Warehouse code\" description=\"Short identifier used on labels.\">\n <Input placeholder=\"WAW-01\" />\n</FormField>`,\n },\n {\n id: 'required',\n title: 'Required',\n render: () => (\n <div className=\"w-72\">\n <FormField label=\"Company name\" required>\n <Input placeholder=\"Acme sp. z o.o.\" />\n </FormField>\n </div>\n ),\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"Company name\" required>\n <Input placeholder=\"Acme sp. z o.o.\" />\n</FormField>`,\n },\n {\n id: 'error',\n title: 'Error',\n render: () => (\n <div className=\"w-72\">\n <FormField label=\"VAT ID\" error=\"VAT ID must have 10 digits.\">\n <Input defaultValue=\"52601\" />\n </FormField>\n </div>\n ),\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"VAT ID\" error=\"VAT ID must have 10 digits.\">\n <Input defaultValue=\"52601\" />\n</FormField>`,\n },\n {\n id: 'horizontal',\n title: 'Horizontal',\n render: () => (\n <div className=\"w-72\">\n <FormField label=\"Enable webhooks\" orientation=\"horizontal\">\n <Switch defaultChecked />\n </FormField>\n </div>\n ),\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\n\n<FormField label=\"Enable webhooks\" orientation=\"horizontal\">\n <Switch defaultChecked />\n</FormField>`,\n },\n ],\n}\n\nconst searchInputEntry: GalleryEntry = {\n id: 'search-input',\n title: 'SearchInput',\n importPath: '@open-mercato/ui/primitives/search-input',\n variants: [\n {\n id: 'default',\n title: 'default (clearable)',\n render: () => <DemoSearchInput />,\n code: `import { SearchInput } from '@open-mercato/ui/primitives/search-input'\n\nconst [query, setQuery] = React.useState('')\n\n<SearchInput value={query} onChange={setQuery} />`,\n },\n {\n id: 'small',\n title: 'Small',\n render: () => <DemoSearchInput size=\"sm\" />,\n code: `import { SearchInput } from '@open-mercato/ui/primitives/search-input'\n\n<SearchInput size=\"sm\" value={query} onChange={setQuery} />`,\n },\n ],\n}\n\nconst emailInputEntry: GalleryEntry = {\n id: 'email-input',\n title: 'EmailInput',\n importPath: '@open-mercato/ui/primitives/email-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <div className=\"w-72\">\n <EmailInput />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput />`,\n },\n {\n id: 'no-icon',\n title: 'Without icon',\n render: () => (\n <div className=\"w-72\">\n <EmailInput showIcon={false} />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput showIcon={false} />`,\n },\n {\n id: 'invalid',\n title: 'Invalid',\n render: () => (\n <div className=\"w-72\">\n <EmailInput aria-invalid defaultValue=\"not-an-email\" />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput aria-invalid defaultValue=\"not-an-email\" />`,\n },\n ],\n}\n\nconst passwordInputEntry: GalleryEntry = {\n id: 'password-input',\n title: 'PasswordInput',\n importPath: '@open-mercato/ui/primitives/password-input',\n variants: [\n {\n id: 'default',\n title: 'default (reveal toggle)',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput defaultValue=\"correct-horse-battery\" autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput autoComplete=\"current-password\" />`,\n },\n {\n id: 'no-lock',\n title: 'Without lock icon',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput showLockIcon={false} autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput showLockIcon={false} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput disabled autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput disabled />`,\n },\n ],\n}\n\nconst websiteInputEntry: GalleryEntry = {\n id: 'website-input',\n title: 'WebsiteInput',\n importPath: '@open-mercato/ui/primitives/website-input',\n variants: [\n {\n id: 'default',\n title: 'default (https:// prefix)',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput />`,\n },\n {\n id: 'custom-prefix',\n title: 'Custom prefix',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput prefix=\"http://\" />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput prefix=\"http://\" />`,\n },\n {\n id: 'no-prefix',\n title: 'Without prefix',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput showPrefix={false} />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput showPrefix={false} />`,\n },\n ],\n}\n\nconst amountInputEntry: GalleryEntry = {\n id: 'amount-input',\n title: 'AmountInput',\n importPath: '@open-mercato/ui/primitives/amount-input',\n variants: [\n {\n id: 'default',\n title: 'default (currency picker)',\n render: () => <DemoAmountInput />,\n code: `import { AmountInput, type AmountValue } from '@open-mercato/ui/primitives/amount-input'\n\nconst [value, setValue] = React.useState<AmountValue>({ amount: '', currency: 'EUR' })\n\n<AmountInput value={value} onChange={setValue} />`,\n },\n {\n id: 'no-currency',\n title: 'Without currency picker',\n render: () => <DemoAmountInput showCurrency={false} />,\n code: `import { AmountInput } from '@open-mercato/ui/primitives/amount-input'\n\n<AmountInput value={value} onChange={setValue} showCurrency={false} />`,\n },\n ],\n}\n\nconst counterInputEntry: GalleryEntry = {\n id: 'counter-input',\n title: 'CounterInput',\n importPath: '@open-mercato/ui/primitives/counter-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <DemoCounterInput min={0} max={10} />,\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\nconst [qty, setQty] = React.useState<number | null>(2)\n\n<CounterInput value={qty} onChange={setQty} min={0} max={10} />`,\n },\n {\n id: 'step-precision',\n title: 'Step + precision',\n render: () => <DemoCounterInput initial={2.5} step={0.5} precision={1} min={0} />,\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\n<CounterInput value={weight} onChange={setWeight} step={0.5} precision={1} min={0} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <div className=\"w-36\">\n <CounterInput value={5} disabled />\n </div>\n ),\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\n<CounterInput value={5} disabled />`,\n },\n ],\n}\n\nconst digitInputEntry: GalleryEntry = {\n id: 'digit-input',\n title: 'DigitInput',\n importPath: '@open-mercato/ui/primitives/digit-input',\n variants: [\n {\n id: 'default',\n title: 'default (6 cells)',\n render: () => <DigitInput aria-label=\"Verification code\" />,\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput onComplete={(code) => verify(code)} />`,\n },\n {\n id: 'masked',\n title: 'Masked (4 cells)',\n render: () => <DigitInput length={4} mask value=\"1234\" aria-label=\"PIN\" />,\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput length={4} mask aria-label=\"PIN\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => (\n <div className=\"flex flex-col gap-3\">\n <DigitInput length={4} value=\"4921\" aria-invalid aria-label=\"Invalid code\" />\n <DigitInput length={4} disabled aria-label=\"Disabled code\" />\n </div>\n ),\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput length={4} aria-invalid />\n<DigitInput length={4} disabled />`,\n },\n ],\n}\n\nconst cardInputEntry: GalleryEntry = {\n id: 'card-input',\n title: 'CardInput',\n importPath: '@open-mercato/ui/primitives/card-input',\n variants: [\n {\n id: 'default',\n title: 'default (empty)',\n render: () => <DemoCardInput />,\n code: `import { CardInput } from '@open-mercato/ui/primitives/card-input'\n\nconst [digits, setDigits] = React.useState('')\n\n<CardInput value={digits} onChange={setDigits} />`,\n },\n {\n id: 'brand-detected',\n title: 'Brand detected',\n render: () => <DemoCardInput initial=\"4242424242424242\" />,\n code: `import { CardInput } from '@open-mercato/ui/primitives/card-input'\n\n<CardInput value={digits} onChange={setDigits} onBrandChange={setBrand} />`,\n },\n ],\n}\n\nconst buttonInputEntry: GalleryEntry = {\n id: 'button-input',\n title: 'ButtonInput',\n importPath: '@open-mercato/ui/primitives/button-input',\n variants: [\n {\n id: 'copy-link',\n title: 'Copy link',\n render: () => (\n <div className=\"w-80\">\n <ButtonInput\n readOnly\n defaultValue=\"https://app.example.com/i/8f2c\"\n leftIcon={<Link2 />}\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Copy link\">\n <Copy />\n </IconButton>\n }\n />\n </div>\n ),\n code: `import { Copy, Link2 } from 'lucide-react'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\n\n<ButtonInput\n readOnly\n defaultValue=\"https://app.example.com/i/8f2c\"\n leftIcon={<Link2 />}\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Copy link\"><Copy /></IconButton>\n }\n/>`,\n },\n {\n id: 'send',\n title: 'Send action',\n render: () => (\n <div className=\"w-80\">\n <ButtonInput\n placeholder=\"Invite by email\"\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Send invite\">\n <Send />\n </IconButton>\n }\n />\n </div>\n ),\n code: `import { Send } from 'lucide-react'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\n\n<ButtonInput\n placeholder=\"Invite by email\"\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Send invite\"><Send /></IconButton>\n }\n/>`,\n },\n ],\n}\n\nconst colorPickerEntry: GalleryEntry = {\n id: 'color-picker',\n title: 'ColorPicker',\n importPath: '@open-mercato/ui/primitives/color-picker',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <DemoColorPicker />,\n code: `import { ColorPicker } from '@open-mercato/ui/primitives/color-picker'\n\nconst [color, setColor] = React.useState('#6366F1')\n\n<ColorPicker value={color} onChange={setColor} />`,\n },\n {\n id: 'locked-palette',\n title: 'Locked palette',\n render: () => (\n <DemoColorPicker\n allowCustom={false}\n swatches={COLOR_PICKER_DEFAULT_SWATCHES.slice(0, 5)}\n />\n ),\n code: `import { ColorPicker, COLOR_PICKER_DEFAULT_SWATCHES } from '@open-mercato/ui/primitives/color-picker'\n\n<ColorPicker\n value={color}\n onChange={setColor}\n swatches={COLOR_PICKER_DEFAULT_SWATCHES.slice(0, 5)}\n allowCustom={false}\n/>`,\n },\n ],\n}\n\nconst tagInputEntry: GalleryEntry = {\n id: 'tag-input',\n title: 'TagInput',\n importPath: '@open-mercato/ui/primitives/tag-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <DemoTagInput initial={['wholesale', 'priority', 'eu']} placeholder=\"Add tag\" />\n ),\n code: `import { TagInput } from '@open-mercato/ui/primitives/tag-input'\n\nconst [tags, setTags] = React.useState<string[]>(['wholesale', 'priority', 'eu'])\n\n<TagInput value={tags} onChange={setTags} placeholder=\"Add tag\" />`,\n },\n {\n id: 'max-tags',\n title: 'Max tags reached',\n render: () => (\n <DemoTagInput initial={['red', 'green', 'blue']} maxTags={3} placeholder=\"Add tag\" />\n ),\n code: `import { TagInput } from '@open-mercato/ui/primitives/tag-input'\n\n<TagInput value={tags} onChange={setTags} maxTags={3} />`,\n },\n ],\n}\n\nconst richEditorEntry: GalleryEntry = {\n id: 'rich-editor',\n title: 'RichEditor',\n importPath: '@open-mercato/ui/primitives/rich-editor',\n variants: [\n {\n id: 'minimal',\n title: 'minimal',\n render: () => <DemoRichEditor variant=\"minimal\" />,\n code: `import { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('')\n\n<RichEditor value={html} onChange={setHtml} variant=\"minimal\" />`,\n },\n {\n id: 'standard',\n title: 'standard',\n render: () => <DemoRichEditor variant=\"standard\" />,\n code: `import { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\n<RichEditor value={html} onChange={setHtml} variant=\"standard\" />`,\n },\n ],\n}\n\nexport const entries: GalleryEntry[] = [\n inputEntry,\n textareaEntry,\n selectEntry,\n compactSelectEntry,\n inlineSelectEntry,\n inlineInputEntry,\n checkboxEntry,\n checkboxFieldEntry,\n radioEntry,\n radioFieldEntry,\n switchEntry,\n switchFieldEntry,\n sliderEntry,\n formFieldEntry,\n searchInputEntry,\n emailInputEntry,\n passwordInputEntry,\n websiteInputEntry,\n amountInputEntry,\n counterInputEntry,\n digitInputEntry,\n cardInputEntry,\n buttonInputEntry,\n colorPickerEntry,\n tagInputEntry,\n richEditorEntry,\n]\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { MarketingControlDemo } from '../demos/marketing-controls'\nimport { marketingControlExampleCode } from '../demos/marketing-controls-code.generated'\nimport { FieldLabelExample, FormFieldLabelExample, HintTextExample } from '../demos/key-components'\nimport * as React from 'react'\nimport { Copy, Globe, Info, Link2, Send, User } from 'lucide-react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectTriggerLeading,\n SelectValue,\n} from '@open-mercato/ui/primitives/select'\nimport { CompactSelectTrigger } from '@open-mercato/ui/primitives/compact-select'\nimport { InlineSelectTrigger } from '@open-mercato/ui/primitives/inline-select'\nimport { InlineInput } from '@open-mercato/ui/primitives/inline-input'\nimport { Checkbox } from '@open-mercato/ui/primitives/checkbox'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Slider } from '@open-mercato/ui/primitives/slider'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { SearchInput } from '@open-mercato/ui/primitives/search-input'\nimport { EmailInput } from '@open-mercato/ui/primitives/email-input'\nimport { PasswordInput } from '@open-mercato/ui/primitives/password-input'\nimport { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\nimport { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\nimport { AmountInput, type AmountValue } from '@open-mercato/ui/primitives/amount-input'\nimport { CounterInput } from '@open-mercato/ui/primitives/counter-input'\nimport { DigitInput } from '@open-mercato/ui/primitives/digit-input'\nimport { CardInput } from '@open-mercato/ui/primitives/card-input'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport {\n ColorPicker,\n COLOR_PICKER_DEFAULT_SWATCHES,\n} from '@open-mercato/ui/primitives/color-picker'\nimport { TagInput } from '@open-mercato/ui/primitives/tag-input'\nimport { RichEditor, RichEditorColorPalette, RICH_EDITOR_COLOR_PALETTE, type RichEditorToolbarDesign, type RichEditorVariant, type RichEditorColorKey } from '@open-mercato/ui/primitives/rich-editor'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\nimport { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\nimport { FileUploadAreaDemo, FileUploadCardDemo, ImageUploadDemo } from '../demos/file-upload'\nimport { SelectionSourceCardsDemo, IntegrationSwitchDemo } from '../demos/selection-cards'\nimport { SelectSourceExample, SelectSourceMatrix, DropdownSourceExample } from '../demos/menus'\nimport { SourceTextInputMatrix, SourcePhoneExamples, SourceTextareaExamples } from '../demos/text-inputs'\nimport type { GalleryEntry } from '../types'\nimport { inputFieldCode, textareaFieldCode, phoneNumberFieldCode, selectFieldCode, dropdownCode, fieldLabelCode, fieldLabelInformationCode, fieldLabelActionCode, formFieldLabelCode, hintTextCode } from './inputs-snippets'\n\n// Component titles and variant names are proper nouns from the codebase and\n// are deliberately not translated. `code` MUST contain the entry's importPath\n// (enforced by the registry-integrity test) and is always reviewed alongside\n// its sibling `render`.\n\n// ---------------------------------------------------------------------------\n// Demo wrappers \u2014 controlled primitives need local state to be interactive in\n// the gallery. The `code` snippets show the essential consumer usage, not\n// these wrappers.\n// ---------------------------------------------------------------------------\n\nfunction DemoSearchInput({ size }: { size?: 'sm' | 'default' | 'lg' }) {\n const t = useT()\n const [value, setValue] = React.useState(() => t('design_system.gallery.sampleCopy.openOrders'))\n return (\n <div className=\"w-72\">\n <SearchInput value={value} onChange={setValue} size={size} />\n </div>\n )\n}\n\nfunction DemoAmountInput({ showCurrency }: { showCurrency?: boolean }) {\n const [value, setValue] = React.useState<AmountValue>({ amount: '1250.00', currency: 'EUR' })\n return (\n <div className=\"w-72\">\n <AmountInput value={value} onChange={setValue} showCurrency={showCurrency} />\n </div>\n )\n}\n\nconst selectionCardClasses = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\nfunction SelectionCardsPreview({ control, disabled = false }: { control: 'checkbox' | 'radio' | 'switch'; disabled?: boolean }) {\n const t = useT()\n const choices = [\n { value: 'immediate', label: t('design_system.gallery.samples.selection.immediate'), description: t('design_system.gallery.samples.selection.immediateDescription') },\n { value: 'weekly', label: t('design_system.gallery.samples.selection.weekly'), description: t('design_system.gallery.samples.selection.weeklyDescription') },\n ]\n const cards = choices.map((choice, index) => {\n const fieldProps = {\n label: choice.label,\n description: choice.description,\n sublabel: t('design_system.gallery.samples.selection.optional'),\n badge: <Badge variant={disabled ? 'outline' : 'info'} size=\"sm\" className={disabled ? 'text-text-disabled' : undefined}>{t('design_system.gallery.samples.selection.new')}</Badge>,\n disabled,\n className: 'mt-0',\n containerClassName: selectionCardClasses,\n }\n if (control === 'radio') return <RadioField key={choice.value} value={choice.value} flip {...fieldProps} />\n if (control === 'switch') return <SwitchField key={choice.value} defaultChecked={index === 0} {...fieldProps} />\n return <CheckboxField key={choice.value} defaultChecked={index === 0} flip {...fieldProps} />\n })\n if (control === 'radio') {\n return <RadioGroup defaultValue=\"immediate\" aria-label={t('design_system.gallery.samples.selection.preferences')} className=\"grid w-full gap-4 sm:grid-cols-2\">{cards}</RadioGroup>\n }\n return <div className=\"grid w-full gap-4 sm:grid-cols-2\">{cards}</div>\n}\n\nfunction FlippedRadioPreview() {\n const t = useT()\n return (\n <RadioGroup defaultValue=\"immediate\" aria-label={t('design_system.gallery.samples.selection.preferences')} className=\"w-72\">\n <RadioField value=\"immediate\" flip label={t('design_system.gallery.samples.selection.immediate')} />\n <RadioField value=\"weekly\" flip label={t('design_system.gallery.samples.selection.weekly')} />\n </RadioGroup>\n )\n}\n\nfunction ReadOnlyInputPreview() {\n const t = useT()\n return (\n <FormField\n className=\"w-full max-w-sm\"\n label={t('design_system.gallery.samples.states.recordId')}\n description={t('design_system.gallery.samples.states.readOnlyHint')}\n >\n <Input readOnly value=\"OM-2026-0042\" />\n </FormField>\n )\n}\n\nfunction ReadOnlyTextareaPreview() {\n const t = useT()\n return (\n <FormField\n className=\"w-full max-w-sm\"\n label={t('design_system.gallery.samples.states.savedNote')}\n description={t('design_system.gallery.samples.states.readOnlyHint')}\n >\n <Textarea readOnly value={t('design_system.gallery.samples.states.noteValue')} />\n </FormField>\n )\n}\n\nfunction DisabledSearchInputPreview() {\n const t = useT()\n const [query, setQuery] = React.useState('OM-2026-0042')\n return (\n <FormField className=\"w-full max-w-sm\" label={t('design_system.gallery.samples.states.search')} disabled>\n <SearchInput value={query} onChange={setQuery} />\n </FormField>\n )\n}\n\nfunction InvalidPasswordInputPreview() {\n const t = useT()\n return (\n <FormField\n className=\"w-full max-w-sm\"\n label={t('design_system.gallery.samples.states.password')}\n error={t('design_system.gallery.samples.states.passwordError')}\n >\n <PasswordInput defaultValue=\"short\" autoComplete=\"off\" />\n </FormField>\n )\n}\n\nfunction DisabledAmountInputPreview() {\n const t = useT()\n const [value, setValue] = React.useState<AmountValue>({ amount: '1250.00', currency: 'EUR' })\n return (\n <FormField className=\"w-full max-w-sm\" label={t('design_system.gallery.samples.states.amount')} disabled>\n <AmountInput value={value} onChange={setValue} />\n </FormField>\n )\n}\n\nfunction DemoCounterInput({\n initial = 2,\n step,\n precision,\n min,\n max,\n}: {\n initial?: number\n step?: number\n precision?: number\n min?: number\n max?: number\n}) {\n const [value, setValue] = React.useState<number | null>(initial)\n return (\n <div className=\"w-36\">\n <CounterInput\n value={value}\n onChange={setValue}\n step={step}\n precision={precision}\n min={min}\n max={max}\n />\n </div>\n )\n}\n\nfunction DemoCardInput({ initial = '' }: { initial?: string }) {\n const [value, setValue] = React.useState(initial)\n return (\n <div className=\"w-80\">\n <CardInput value={value} onChange={setValue} />\n </div>\n )\n}\n\nfunction DemoColorPicker({\n allowCustom,\n swatches,\n showOpacity = false,\n}: {\n allowCustom?: boolean\n swatches?: readonly string[]\n showOpacity?: boolean\n}) {\n const t = useT()\n const [color, setColor] = React.useState('#6366F1')\n const [opacity, setOpacity] = React.useState(75)\n return (\n <ColorPicker\n value={color}\n onChange={setColor}\n allowCustom={allowCustom}\n swatches={swatches}\n showOpacity={showOpacity}\n opacity={showOpacity ? opacity : 100}\n onOpacityChange={showOpacity ? setOpacity : undefined}\n aria-label={t('design_system.gallery.sampleCopy.pickColor')}\n />\n )\n}\n\nfunction DemoTagInput({\n initial = [],\n maxTags,\n placeholder,\n}: {\n initial?: string[]\n maxTags?: number\n placeholder?: string\n}) {\n const [tags, setTags] = React.useState<string[]>(initial)\n return (\n <div className=\"w-72\">\n <TagInput value={tags} onChange={setTags} maxTags={maxTags} placeholder={placeholder} />\n </div>\n )\n}\n\nfunction DemoRichEditor({ variant = 'standard', toolbarDesign, disabled = false, counter = false }: { variant?: RichEditorVariant; toolbarDesign?: RichEditorToolbarDesign; disabled?: boolean; counter?: boolean }) {\n const t = useT()\n const [html, setHtml] = React.useState(() => '<p>' + t('design_system.gallery.samples.richEditor.initial') + '</p>')\n const [feedback, setFeedback] = React.useState('')\n const labels = {\n bold: t('design_system.gallery.samples.richEditor.labels.bold'),\n italic: t('design_system.gallery.samples.richEditor.labels.italic'),\n underline: t('design_system.gallery.samples.richEditor.labels.underline'),\n strikethrough: t('design_system.gallery.samples.richEditor.labels.strikethrough'),\n unorderedList: t('design_system.gallery.samples.richEditor.labels.unorderedList'),\n orderedList: t('design_system.gallery.samples.richEditor.labels.orderedList'),\n checklist: t('design_system.gallery.samples.richEditor.labels.checklist'),\n blockquote: t('design_system.gallery.samples.richEditor.labels.blockquote'),\n code: t('design_system.gallery.samples.richEditor.labels.code'),\n inlineCode: t('design_system.gallery.samples.richEditor.labels.inlineCode'),\n codeBlock: t('design_system.gallery.samples.richEditor.labels.codeBlock'),\n horizontalRule: t('design_system.gallery.samples.richEditor.labels.horizontalRule'),\n image: t('design_system.gallery.samples.richEditor.labels.image'),\n imageUrlPrompt: t('design_system.gallery.samples.richEditor.labels.imageUrlPrompt'),\n table: t('design_system.gallery.samples.richEditor.labels.table'),\n heading: t('design_system.gallery.samples.richEditor.labels.heading'),\n heading1: t('design_system.gallery.samples.richEditor.labels.heading1'),\n heading2: t('design_system.gallery.samples.richEditor.labels.heading2'),\n heading3: t('design_system.gallery.samples.richEditor.labels.heading3'),\n paragraph: t('design_system.gallery.samples.richEditor.labels.paragraph'),\n link: t('design_system.gallery.samples.richEditor.labels.link'),\n linkUrlPrompt: t('design_system.gallery.samples.richEditor.labels.linkUrlPrompt'),\n color: t('design_system.gallery.samples.richEditor.labels.color'),\n textColor: t('design_system.gallery.samples.richEditor.labels.textColor'),\n fontSize: t('design_system.gallery.samples.richEditor.labels.fontSize'),\n align: t('design_system.gallery.samples.richEditor.labels.align'),\n alignLeft: t('design_system.gallery.samples.richEditor.labels.alignLeft'),\n alignCenter: t('design_system.gallery.samples.richEditor.labels.alignCenter'),\n alignRight: t('design_system.gallery.samples.richEditor.labels.alignRight'),\n alignJustify: t('design_system.gallery.samples.richEditor.labels.alignJustify'),\n comment: t('design_system.gallery.samples.richEditor.labels.comment'),\n mention: t('design_system.gallery.samples.richEditor.labels.mention'),\n more: t('design_system.gallery.samples.richEditor.labels.more'),\n help: t('design_system.gallery.samples.richEditor.labels.help'),\n fullscreen: t('design_system.gallery.samples.richEditor.labels.fullscreen'),\n placeholder: t('design_system.gallery.samples.richEditor.labels.placeholder'),\n colors: Object.fromEntries(Object.keys(RICH_EDITOR_COLOR_PALETTE).map(key => [key, t(`design_system.gallery.samples.richEditor.colors.${key}`)])) as Record<RichEditorColorKey, string>,\n }\n return (\n <div className=\"flex min-w-0 w-full max-w-3xl flex-col gap-3\">\n <RichEditor value={html} onChange={setHtml} variant={variant} toolbarDesign={toolbarDesign} disabled={disabled} maxLength={counter ? 100 : undefined} labels={labels}\n onComment={() => setFeedback(t('design_system.gallery.samples.richEditor.comment'))}\n onMention={() => setFeedback(t('design_system.gallery.samples.richEditor.mention'))} />\n {feedback && <output aria-live=\"polite\" className=\"text-sm text-muted-foreground\">{feedback}</output>}\n </div>\n )\n}\n\nfunction DemoRichEditorPalette() {\n const t = useT()\n const [value, setValue] = React.useState<RichEditorColorKey | null>('gray')\n const labels = Object.fromEntries(Object.keys(RICH_EDITOR_COLOR_PALETTE).map(key => [key, t(`design_system.gallery.samples.richEditor.colors.${key}`)])) as Record<RichEditorColorKey, string>\n return <div className=\"flex w-full max-w-sm flex-col gap-3\"><RichEditorColorPalette value={value} onChange={setValue} labels={labels} />\n <output aria-live=\"polite\" className=\"text-sm text-muted-foreground\">{value ? labels[value] : ''}</output>\n </div>\n}\n\n// ---------------------------------------------------------------------------\n// Entries\n// ---------------------------------------------------------------------------\n\nconst inputEntry: GalleryEntry = {\n id: 'input',\n title: 'Input',\n importPath: '@open-mercato/ui/primitives/input',\n figmaNodeId: '266:5251',\n usage: { do: ['Numeric sizes 32, 36 and 40 use the source 14/20 text, 20 px icons and asymmetric input padding. Named sizes preserve existing callers.', 'leading and trailing accept interactive controls; provide accessible labels and forward disabled to those controls. leftIcon/rightIcon remain decorative.', 'The source compositions cover all twelve Text Input types. Hover and focus are real browser states; the Date example uses the native date picker and locale formatting. Existing CardInput brand badges and phone parsing retain their runtime behavior.'] },\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <InputInputsDefaultSample />,\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input placeholder=\"Product name\" />`,\n },\n {\n id: 'icon-slots',\n title: 'Icon slots',\n render: () => <InputInputsIconSlotsSample />,\n code: `import { Info, User } from 'lucide-react'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<Input leftIcon={<User />} placeholder=\"Assignee\" />\n<Input rightIcon={<Info />} placeholder=\"SKU\" />`,\n },\n {\n id: 'sizes',\n title: 'Sizes',\n render: () => <InputInputsSizesSample />,\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input size=\"lg\" placeholder=\"Large\" />\n<Input size=\"default\" placeholder=\"Default\" />\n<Input size=\"sm\" placeholder=\"Small\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => <InputInputsStatesSample />,\n code: `import { Input } from '@open-mercato/ui/primitives/input'\n\n<Input aria-invalid defaultValue=\"not-a-number\" />\n<Input disabled placeholder=\"Disabled\" />`,\n },\n {\n id: 'read-only',\n title: 'Read-only',\n render: () => <ReadOnlyInputPreview />,\n code: `import { Input } from '@open-mercato/ui/primitives/input'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\n\n<FormField label=\"Record ID\" description=\"Read-only content stays focusable and can be selected and copied.\">\n <Input readOnly value=\"OM-2026-0042\" />\n</FormField>`,\n },\n { id: 'source-32', title: 'Source / all twelve types / 32 px', render: () => <SourceTextInputMatrix size={32} />, code: inputFieldCode({ inputProps: ' size={32}' }) },\n { id: 'source-36', title: 'Source / all twelve types / 36 px', render: () => <SourceTextInputMatrix size={36} />, code: inputFieldCode({ inputProps: ' size={36}' }) },\n { id: 'source-40', title: 'Source / all twelve types / 40 px', render: () => <SourceTextInputMatrix size={40} />, code: inputFieldCode({ inputProps: ' size={40}' }) },\n { id: 'source-placeholder', title: 'Source / placeholder', render: () => <SourceTextInputMatrix state=\"placeholder\" />, code: inputFieldCode() },\n { id: 'source-error', title: 'Source / error', render: () => <SourceTextInputMatrix state=\"error\" />, code: inputFieldCode({ inputProps: ' aria-invalid', fieldProps: ' error=\"Enter your full name\"' }) },\n { id: 'source-disabled', title: 'Source / disabled', render: () => <SourceTextInputMatrix state=\"disabled\" />, code: inputFieldCode({ inputProps: ' disabled', fieldProps: ' disabled' }) },\n ],\n}\n\nconst textareaEntry: GalleryEntry = {\n id: 'textarea',\n title: 'Textarea',\n figmaNodeId: '435:5725',\n usage: { do: ['appearance=source adds the source 112 px minimum field, 12 px radius, 14/20 text and an interior character counter. The browser-native resize handle remains operable.', 'The default appearance and external counter retain their current layout. Set maxLength together with showCount and supply a visible field label.'] },\n importPath: '@open-mercato/ui/primitives/textarea',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <TextareaInputsDefaultSample />,\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea placeholder=\"Internal note for the fulfillment team\" />`,\n },\n {\n id: 'character-count',\n title: 'Character counter',\n render: () => <TextareaInputsCharacterCountSample />,\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea showCount maxLength={200} defaultValue=\"Customer prefers delivery after 4 PM.\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => <TextareaInputsStatesSample />,\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\n\n<Textarea aria-invalid defaultValue=\"Too short\" />\n<Textarea disabled placeholder=\"Disabled\" />`,\n },\n {\n id: 'read-only',\n title: 'Read-only',\n render: () => <ReadOnlyTextareaPreview />,\n code: `import { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\n\n<FormField label=\"Saved note\" description=\"Read-only content stays focusable and can be selected and copied.\">\n <Textarea readOnly value=\"Customer requested delivery after 4 PM.\" />\n</FormField>`,\n },\n { id: 'source-states', title: 'Source / default, filled, error and disabled', render: () => <SourceTextareaExamples />, code: textareaFieldCode },\n ],\n}\n\nconst phoneNumberEntry: GalleryEntry = {\n id: 'phone-number-field',\n title: 'PhoneNumberField',\n importPath: '@open-mercato/ui/backend/inputs/PhoneNumberField',\n figmaNodeId: '313:10101',\n usage: { do: ['Numeric sizes 32/36/40 add source geometry while the existing automatic height remains the default.', 'Choose a country or edit the national number to update the local value. Validation and optional duplicate lookup retain their existing contracts.', 'countries translates and limits picker choices; countryLabel names the picker and renderCountryIcon can supply actual country assets.'] },\n variants: [\n { id: 'sizes', title: 'Source / 32, 36 and 40 px', render: () => <SourcePhoneExamples />, code: phoneNumberFieldCode() },\n { id: 'placeholder', title: 'Source / placeholder', render: () => <SourcePhoneExamples state=\"placeholder\" />, code: phoneNumberFieldCode() },\n { id: 'validation', title: 'Source / validation', render: () => <SourcePhoneExamples state=\"error\" />, code: phoneNumberFieldCode(' externalError=\"Enter a valid phone number\"') },\n { id: 'disabled', title: 'Source / disabled', render: () => <SourcePhoneExamples state=\"disabled\" />, code: phoneNumberFieldCode(' disabled') },\n ],\n}\n\nconst selectEntry: GalleryEntry = {\n id: 'select',\n figmaNodeId: '270:1085',\n title: 'Select',\n importPath: '@open-mercato/ui/primitives/select',\n usage: { do: [\n 'Six source leading types: Basic, Country, Avatar, Provider, Brand, and Company. The 32/36/40 numeric sizes use the measured source text, icons, padding and radii; named sizes retain their existing defaults.',\n 'SelectItem leading keeps the visual outside Radix ItemText. The trigger renders its selected visual explicitly, so a selection never duplicates the icon.',\n 'Use Dropdown for searchable choices. Select keeps Radix keyboard typeahead; search inputs must not be nested in a Select listbox.',\n ] },\n variants: [\n { id: 'default', title: 'Basic / 36 px', render: () => <div className=\"w-72 max-w-full\"><SelectSourceExample kind=\"basic\" /></div>, code: selectFieldCode() },\n { id: 'groups-leading', title: 'All six leading types / 36 px', render: () => <SelectSourceMatrix />, code: selectFieldCode({ leading: true }) },\n { id: 'sizes', title: 'All types / 32 px', render: () => <SelectSourceMatrix size={32} />, code: selectFieldCode({ size: 32, leading: true }) },\n { id: 'medium', title: 'All types / 40 px', render: () => <SelectSourceMatrix size={40} />, code: selectFieldCode({ size: 40, leading: true }) },\n { id: 'placeholder', title: 'All types / placeholders', render: () => <SelectSourceMatrix state=\"default\" />, code: selectFieldCode({ leading: true, initialValue: '' }) },\n { id: 'states', title: 'All types / disabled', render: () => <SelectSourceMatrix state=\"disabled\" />, code: selectFieldCode({ leading: true, selectProps: ' disabled', fieldProps: ' disabled' }) },\n { id: 'errors', title: 'All types / errors', render: () => <SelectSourceMatrix state=\"error\" />, code: selectFieldCode({ leading: true, initialValue: '', fieldProps: ' error=\"Choose an office\"' }) },\n ],\n}\n\nconst dropdownEntry: GalleryEntry = {\n id: 'dropdown',\n figmaNodeId: '379:6629',\n title: 'Dropdown',\n importPath: '@open-mercato/ui/primitives/dropdown',\n descriptionKey: 'design_system.entries.dropdown.description',\n usage: { do: [\n 'A searchable, keyboard-operated picker built from Popover and cmdk. All six leading types use source assets and production components at 36 or 56 px.',\n 'Search, clear, choose with arrows and Enter, or dismiss with Escape. The selected value and footer action update local example state.',\n 'The saved checked state is separate from the active keyboard option. Footer buttons remain outside listbox options. Source Misc Items 414:8031 supplies search, action and caption layouts.',\n ] },\n variants: [\n { id: 'small', title: 'All six types / 36 px', render: () => <DropdownSourceExample />, code: dropdownCode() },\n { id: 'large', title: 'All six types / 56 px', render: () => <DropdownSourceExample size={56} />, code: dropdownCode({ size: 56 }) },\n { id: 'empty', title: 'No results / clear to recover', render: () => <DropdownSourceExample empty />, code: dropdownCode({ initialQuery: 'zzzz' }) },\n ],\n}\n\nconst compactSelectEntry: GalleryEntry = {\n id: 'compact-select',\n title: 'CompactSelectTrigger',\n importPath: '@open-mercato/ui/primitives/compact-select',\n variants: [\n {\n id: 'trigger-label',\n title: 'With trigger label',\n render: () => <CompactSelectInputsTriggerLabelSample />,\n code: `import {\n CompactSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/compact-select'\n\n<Select defaultValue=\"newest\">\n <CompactSelectTrigger triggerLabel=\"Sort:\">\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"newest\">Newest</SelectItem>\n <SelectItem value=\"oldest\">Oldest</SelectItem>\n <SelectItem value=\"value\">Highest value</SelectItem>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'plain',\n title: 'Without label',\n render: () => <CompactSelectInputsPlainSample />,\n code: `import {\n CompactSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/compact-select'\n\n<Select defaultValue=\"table\">\n <CompactSelectTrigger>\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"table\">Table</SelectItem>\n <SelectItem value=\"board\">Board</SelectItem>\n </SelectContent>\n</Select>`,\n },\n ],\n}\n\nconst inlineSelectEntry: GalleryEntry = {\n id: 'inline-select',\n title: 'InlineSelectTrigger',\n importPath: '@open-mercato/ui/primitives/inline-select',\n variants: [\n {\n id: 'default',\n title: 'default (border on hover)',\n render: () => <InlineSelectInputsDefaultSample />,\n code: `import {\n InlineSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/inline-select'\n\n<Select defaultValue=\"high\">\n <InlineSelectTrigger>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"low\">Low</SelectItem>\n <SelectItem value=\"medium\">Medium</SelectItem>\n <SelectItem value=\"high\">High</SelectItem>\n </SelectContent>\n</Select>`,\n },\n {\n id: 'invisible',\n title: 'Invisible until focus',\n render: () => <InlineSelectInputsInvisibleSample />,\n code: `import {\n InlineSelectTrigger,\n Select,\n SelectContent,\n SelectItem,\n SelectValue,\n} from '@open-mercato/ui/primitives/inline-select'\n\n<InlineSelectTrigger showBorderOnHover={false}>\n <SelectValue />\n</InlineSelectTrigger>`,\n },\n ],\n}\n\nconst inlineInputEntry: GalleryEntry = {\n id: 'inline-input',\n title: 'InlineInput',\n importPath: '@open-mercato/ui/primitives/inline-input',\n variants: [\n {\n id: 'default',\n title: 'default (border on hover)',\n render: () => <InlineInputInputsDefaultSample />,\n code: `import { InlineInput } from '@open-mercato/ui/primitives/inline-input'\n\n<InlineInput defaultValue=\"Aurora desk lamp\" aria-label=\"Product name\" onBlur={save} />`,\n },\n {\n id: 'invisible',\n title: 'Invisible until focus',\n render: () => (\n <div className=\"w-56\">\n <InlineInput\n showBorderOnHover={false}\n defaultValue=\"SKU-2041\"\n aria-label=\"SKU\"\n />\n </div>\n ),\n code: `import { InlineInput } from '@open-mercato/ui/primitives/inline-input'\n\n<InlineInput showBorderOnHover={false} defaultValue=\"SKU-2041\" aria-label=\"SKU\" />`,\n },\n ],\n}\n\nconst checkboxEntry: GalleryEntry = {\n id: 'checkbox',\n title: 'Checkbox',\n importPath: '@open-mercato/ui/primitives/checkbox',\n variants: [\n {\n id: 'states',\n title: 'States',\n render: () => <CheckboxInputsStatesSample />,\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox />\n<Checkbox defaultChecked />\n<Checkbox checked=\"indeterminate\" />`,\n },\n {\n id: 'sizes',\n title: 'Sizes',\n render: () => <CheckboxInputsSizesSample />,\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox size=\"sm\" defaultChecked />\n<Checkbox size=\"md\" defaultChecked />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => <CheckboxInputsDisabledSample />,\n code: `import { Checkbox } from '@open-mercato/ui/primitives/checkbox'\n\n<Checkbox disabled />\n<Checkbox disabled defaultChecked />`,\n },\n ],\n}\n\nconst checkboxFieldEntry: GalleryEntry = {\n id: 'checkbox-field',\n title: 'CheckboxField',\n importPath: '@open-mercato/ui/primitives/checkbox-field',\n figmaNodeId: '231:4897',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <CheckboxFieldInputsDefaultSample />,\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField label=\"Email notifications\" defaultChecked />`,\n },\n {\n id: 'with-description',\n title: 'With sublabel + description',\n render: () => <CheckboxFieldInputsWithDescriptionSample />,\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField\n label=\"Auto-archive\"\n sublabel=\"(recommended)\"\n description=\"Closed conversations move to the archive after 30 days.\"\n/>`,\n },\n {\n id: 'flip',\n title: 'Flipped (checkbox right)',\n render: () => <CheckboxFieldInputsFlipSample />,\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n\n<CheckboxField flip label=\"Include shipping costs\" defaultChecked />`,\n },\n {\n id: 'cards',\n title: 'Card / default, selected and hover',\n render: () => <SelectionCardsPreview control=\"checkbox\" />,\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<div className=\"grid w-full gap-4 sm:grid-cols-2\">\n <CheckboxField flip defaultChecked\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <CheckboxField flip\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</div>`,\n },\n {\n id: 'cards-disabled',\n title: 'Card / disabled',\n render: () => <SelectionCardsPreview control=\"checkbox\" disabled />,\n code: `import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<div className=\"grid w-full gap-4 sm:grid-cols-2\">\n <CheckboxField flip defaultChecked disabled\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <CheckboxField flip disabled\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</div>`,\n },\n {\n id: 'source-cards-icon',\n title: 'icon cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"checkbox\" kind=\"icon\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <CheckboxField flip checked={checked} onCheckedChange={value => setChecked(value === true)} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-avatar',\n title: 'avatar cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"checkbox\" kind=\"avatar\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Avatar } from '@open-mercato/ui/primitives/avatar'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <Avatar label={label} size={40} src={imageUrl} aria-hidden=\"true\" />\n <CheckboxField flip checked={checked} onCheckedChange={value => setChecked(value === true)} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-provider',\n title: 'provider cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"checkbox\" kind=\"provider\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"h-6 w-8 shrink-0 object-contain\" />\n <CheckboxField flip checked={checked} onCheckedChange={value => setChecked(value === true)} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-brand',\n title: 'brand cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"checkbox\" kind=\"brand\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <CheckboxField flip checked={checked} onCheckedChange={value => setChecked(value === true)} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-company',\n title: 'company cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"checkbox\" kind=\"company\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <CheckboxField flip checked={checked} onCheckedChange={value => setChecked(value === true)} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n ],\n}\n\nconst radioEntry: GalleryEntry = {\n id: 'radio',\n title: 'Radio',\n importPath: '@open-mercato/ui/primitives/radio',\n keywords: ['radiobutton', 'radio button', 'option group'],\n variants: [\n {\n id: 'group',\n title: 'RadioGroup',\n render: () => <RadioInputsGroupSample />,\n code: `import { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\n\n<RadioGroup defaultValue=\"card\" aria-label=\"Payment method\">\n <Radio value=\"card\" aria-label=\"Card\" />\n <Radio value=\"transfer\" aria-label=\"Bank transfer\" />\n <Radio value=\"cash\" aria-label=\"Cash\" />\n</RadioGroup>`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => <RadioInputsDisabledSample />,\n code: `import { Radio, RadioGroup } from '@open-mercato/ui/primitives/radio'\n\n<RadioGroup defaultValue=\"a\" disabled>\n <Radio value=\"a\" />\n <Radio value=\"b\" />\n</RadioGroup>`,\n },\n ],\n}\n\nconst radioFieldEntry: GalleryEntry = {\n keywords: ['radiobutton', 'radio button'],\n id: 'radio-field',\n title: 'RadioField',\n importPath: '@open-mercato/ui/primitives/radio-field',\n figmaNodeId: '515:4282',\n variants: [\n {\n id: 'flip',\n title: 'Flipped (radio right)',\n render: () => <FlippedRadioPreview />,\n code: `import { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\n\n<RadioGroup defaultValue=\"immediate\" aria-label=\"Notification preferences\" className=\"w-72\">\n <RadioField value=\"immediate\" flip label=\"Immediate updates\" />\n <RadioField value=\"weekly\" flip label=\"Weekly summary\" />\n</RadioGroup>`,\n },\n {\n id: 'default',\n title: 'default',\n render: () => <RadioFieldInputsDefaultSample />,\n code: `import { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\n\n<RadioGroup defaultValue=\"standard\" aria-label=\"Shipping speed\">\n <RadioField value=\"standard\" label=\"Standard\" />\n <RadioField value=\"express\" label=\"Express\" />\n</RadioGroup>`,\n },\n {\n id: 'with-description',\n title: 'With description',\n render: () => <RadioFieldInputsWithDescriptionSample />,\n code: `import { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\n\n<RadioGroup defaultValue=\"invoice\" aria-label=\"Billing\">\n <RadioField value=\"invoice\" label=\"Invoice\" description=\"Pay within 14 days of delivery.\" />\n <RadioField value=\"prepaid\" label=\"Prepaid\" description=\"Order ships after payment clears.\" />\n</RadioGroup>`,\n },\n {\n id: 'cards',\n title: 'Card / default, selected and hover',\n render: () => <SelectionCardsPreview control=\"radio\" />,\n code: `import { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<RadioGroup defaultValue=\"immediate\" aria-label=\"Notification preferences\" className=\"grid w-full gap-4 sm:grid-cols-2\">\n <RadioField flip value=\"immediate\"\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <RadioField flip value=\"weekly\"\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</RadioGroup>`,\n },\n {\n id: 'cards-disabled',\n title: 'Card / disabled',\n render: () => <SelectionCardsPreview control=\"radio\" disabled />,\n code: `import { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<RadioGroup defaultValue=\"immediate\" aria-label=\"Notification preferences\" className=\"grid w-full gap-4 sm:grid-cols-2\">\n <RadioField flip value=\"immediate\" disabled\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <RadioField flip value=\"weekly\" disabled\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</RadioGroup>`,\n },\n {\n id: 'source-cards-icon',\n title: 'icon cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"radio\" kind=\"icon\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [value, setValue] = React.useState('selected')\n const label = 'Label'\n return (\n <RadioGroup value={value} onValueChange={setValue} aria-label={label}>\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <RadioField value=\"selected\" flip disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n </RadioGroup>\n )\n}`,\n },\n {\n id: 'source-cards-avatar',\n title: 'avatar cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"radio\" kind=\"avatar\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\nimport { Avatar } from '@open-mercato/ui/primitives/avatar'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [value, setValue] = React.useState('selected')\n const label = 'Label'\n return (\n <RadioGroup value={value} onValueChange={setValue} aria-label={label}>\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <Avatar label={label} size={40} src={imageUrl} aria-hidden=\"true\" />\n <RadioField value=\"selected\" flip disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n </RadioGroup>\n )\n}`,\n },\n {\n id: 'source-cards-provider',\n title: 'provider cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"radio\" kind=\"provider\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [value, setValue] = React.useState('selected')\n const label = 'Label'\n return (\n <RadioGroup value={value} onValueChange={setValue} aria-label={label}>\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"h-6 w-8 shrink-0 object-contain\" />\n <RadioField value=\"selected\" flip disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n </RadioGroup>\n )\n}`,\n },\n {\n id: 'source-cards-brand',\n title: 'brand cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"radio\" kind=\"brand\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [value, setValue] = React.useState('selected')\n const label = 'Label'\n return (\n <RadioGroup value={value} onValueChange={setValue} aria-label={label}>\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <RadioField value=\"selected\" flip disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n </RadioGroup>\n )\n}`,\n },\n {\n id: 'source-cards-company',\n title: 'company cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"radio\" kind=\"company\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { RadioField } from '@open-mercato/ui/primitives/radio-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { RadioGroup } from '@open-mercato/ui/primitives/radio'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [value, setValue] = React.useState('selected')\n const label = 'Label'\n return (\n <RadioGroup value={value} onValueChange={setValue} aria-label={label}>\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <RadioField value=\"selected\" flip disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0 disabled:opacity-100 disabled:data-[state=checked]:bg-bg-disabled disabled:data-[state=checked]:border-border-disabled disabled:data-[state=checked]:text-background\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n </RadioGroup>\n )\n}`,\n },\n ],\n}\n\nconst switchEntry: GalleryEntry = {\n id: 'switch',\n title: 'Switch',\n importPath: '@open-mercato/ui/primitives/switch',\n variants: [\n {\n id: 'states',\n title: 'States',\n render: () => <SwitchInputsStatesSample />,\n code: `import { Switch } from '@open-mercato/ui/primitives/switch'\n\n<Switch />\n<Switch defaultChecked />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => <SwitchInputsDisabledSample />,\n code: `import { Switch } from '@open-mercato/ui/primitives/switch'\n\n<Switch disabled />\n<Switch disabled defaultChecked />`,\n },\n ],\n}\n\nconst switchFieldEntry: GalleryEntry = {\n id: 'switch-field',\n title: 'SwitchField',\n importPath: '@open-mercato/ui/primitives/switch-field',\n figmaNodeId: '385:4580',\n variants: [\n {\n id: 'default',\n title: 'default (switch right)',\n render: () => <SwitchFieldInputsDefaultSample />,\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField label=\"Two-factor authentication\" defaultChecked />`,\n },\n {\n id: 'with-description',\n title: 'With description',\n render: () => <SwitchFieldInputsWithDescriptionSample />,\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField\n label=\"Low-stock alerts\"\n description=\"Notify purchasing when stock drops below the reorder point.\"\n/>`,\n },\n {\n id: 'flip',\n title: 'Flipped (switch left)',\n render: () => <SwitchFieldInputsFlipSample />,\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n\n<SwitchField flip label=\"Sync inventory nightly\" defaultChecked />`,\n },\n {\n id: 'cards',\n title: 'Card / default, selected and hover',\n render: () => <SelectionCardsPreview control=\"switch\" />,\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<div className=\"grid w-full gap-4 sm:grid-cols-2\">\n <SwitchField defaultChecked\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <SwitchField\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"info\" size=\"sm\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</div>`,\n },\n {\n id: 'cards-disabled',\n title: 'Card / disabled',\n render: () => <SelectionCardsPreview control=\"switch\" disabled />,\n code: `import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nconst cardClassName = 'relative w-full max-w-90 gap-3.5 rounded-xl border border-border bg-background p-4 shadow-xs transition-colors hover:border-transparent hover:bg-muted hover:shadow-none has-[[data-state=checked]]:border-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus has-[:disabled]:border-border has-[:disabled]:bg-background has-[:disabled]:shadow-none [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-xl [&_button]:relative [&_button]:z-10'\n\n<div className=\"grid w-full gap-4 sm:grid-cols-2\">\n <SwitchField defaultChecked disabled\n label=\"Immediate updates\"\n sublabel=\"(Optional)\"\n description=\"Receive an update when an order changes.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n <SwitchField disabled\n label=\"Weekly summary\"\n sublabel=\"(Optional)\"\n description=\"Receive one summary every Monday.\"\n badge={<Badge variant=\"outline\" size=\"sm\" className=\"text-text-disabled\">New</Badge>}\n className=\"mt-0\"\n containerClassName={cardClassName}\n />\n</div>`,\n },\n {\n id: 'source-cards-icon',\n title: 'icon cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"switch\" kind=\"icon\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <SwitchField checked={checked} onCheckedChange={setChecked} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-avatar',\n title: 'avatar cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"switch\" kind=\"avatar\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Avatar } from '@open-mercato/ui/primitives/avatar'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <Avatar label={label} size={40} src={imageUrl} aria-hidden=\"true\" />\n <SwitchField checked={checked} onCheckedChange={setChecked} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-provider',\n title: 'provider cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"switch\" kind=\"provider\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"h-6 w-8 shrink-0 object-contain\" />\n <SwitchField checked={checked} onCheckedChange={setChecked} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-brand',\n title: 'brand cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"switch\" kind=\"brand\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <SwitchField checked={checked} onCheckedChange={setChecked} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'source-cards-company',\n title: 'company cards / default, active, disabled and live hover',\n render: () => <SelectionSourceCardsDemo control=\"switch\" kind=\"company\" />,\n code: `import * as React from 'react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nfunction SelectionCardExample({ imageUrl, disabled = false }: { imageUrl: string; disabled?: boolean }) {\n const [checked, setChecked] = React.useState(false)\n const label = 'Label'\n return (\n\n <div className={cn('relative flex w-90 max-w-full items-start gap-3.5 rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs transition-colors hover:bg-muted hover:shadow-none has-[[data-state=checked]]:ring-accent-indigo has-[[data-state=checked]]:shadow-none has-[:focus-visible]:shadow-focus [&_label]:after:absolute [&_label]:after:inset-0 [&_label]:after:rounded-selection-card [&_button]:relative [&_button]:z-10', disabled && 'shadow-none hover:bg-background has-[[data-state=checked]]:ring-border')}>\n <img src={imageUrl} alt=\"\" className=\"size-10 shrink-0 object-contain\" />\n <SwitchField checked={checked} onCheckedChange={setChecked} disabled={disabled}\n label={label}\n sublabel=\"(Sublabel)\"\n description=\"Insert the checkbox description here.\"\n badge={<Badge size={16} appearance={disabled ? 'stroke' : 'light'} tone={disabled ? 'neutral' : 'info'}>New</Badge>}\n className=\"mt-0\" containerClassName=\"min-w-0 flex-1 gap-3.5\"\n />\n </div>\n\n )\n}`,\n },\n {\n id: 'integration-horizontal-card',\n title: 'Integration / horizontal / card',\n render: () => <IntegrationSwitchDemo alignment=\"horizontal\" appearance=\"card\" />,\n code: `import * as React from 'react'\nimport { Settings } from 'lucide-react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '@open-mercato/ui/primitives/dialog'\n\nfunction IntegrationExample({ brandUrl, alignment, appearance }: { brandUrl: string; alignment: 'horizontal' | 'vertical'; appearance: 'card' | 'list' }) {\n const t = useT()\n const id = React.useId()\n const [checked, setChecked] = React.useState(false)\n const [open, setOpen] = React.useState(false)\n const horizontal = alignment === 'horizontal'\n const card = appearance === 'card'\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <div data-slot=\"integration-switch\" data-alignment={alignment} data-appearance={appearance} className={cn('relative flex max-w-full gap-3.5', horizontal ? 'w-154 flex-wrap items-center sm:flex-nowrap' : 'w-95 flex-col items-start', card && 'rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs')}>\n <img src={brandUrl} alt=\"\" className={cn('shrink-0', card ? 'size-10' : 'size-12')} />\n <div className={cn('flex min-w-0 flex-col gap-1', horizontal && 'min-w-40 flex-1')}>\n <div className=\"flex flex-wrap items-center gap-1.5\">\n <span id={id} className={cn('font-medium text-foreground', card ? 'text-sm leading-5' : 'text-base leading-6')}>Microsoft Office 365</span>\n <Badge size={16} appearance=\"light\" tone=\"info\">New</Badge>\n </div>\n <p className={cn('text-muted-foreground', card ? 'text-xs leading-4' : 'text-sm leading-5')}>Seamless collaboration and document management.</p>\n </div>\n <Button asChild variant=\"outline\" size=\"default\" className={horizontal ? undefined : 'w-full'}><DialogTrigger><Settings aria-hidden=\"true\" />Manage</DialogTrigger></Button>\n <Switch aria-labelledby={id} checked={checked} onCheckedChange={setChecked} className={horizontal ? undefined : card ? 'absolute top-5 right-5' : 'absolute top-3 right-3'} />\n </div>\n <DialogContent onKeyDownCapture={event => { if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) { event.preventDefault(); setOpen(false) } }}>\n <DialogHeader><DialogTitle>Microsoft Office 365 settings</DialogTitle><DialogDescription>Seamless collaboration and document management.</DialogDescription></DialogHeader>\n <SwitchField label=\"Enable integration\" checked={checked} onCheckedChange={setChecked} />\n <DialogFooter><Button variant=\"outline\" onClick={() => setOpen(false)}>{t('common.close')}</Button></DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n<IntegrationExample brandUrl={brandUrl} alignment=\"horizontal\" appearance=\"card\" />`,\n },\n {\n id: 'integration-horizontal-list',\n title: 'Integration / horizontal / list',\n render: () => <IntegrationSwitchDemo alignment=\"horizontal\" appearance=\"list\" />,\n code: `import * as React from 'react'\nimport { Settings } from 'lucide-react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '@open-mercato/ui/primitives/dialog'\n\nfunction IntegrationExample({ brandUrl, alignment, appearance }: { brandUrl: string; alignment: 'horizontal' | 'vertical'; appearance: 'card' | 'list' }) {\n const t = useT()\n const id = React.useId()\n const [checked, setChecked] = React.useState(false)\n const [open, setOpen] = React.useState(false)\n const horizontal = alignment === 'horizontal'\n const card = appearance === 'card'\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <div data-slot=\"integration-switch\" data-alignment={alignment} data-appearance={appearance} className={cn('relative flex max-w-full gap-3.5', horizontal ? 'w-154 flex-wrap items-center sm:flex-nowrap' : 'w-95 flex-col items-start', card && 'rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs')}>\n <img src={brandUrl} alt=\"\" className={cn('shrink-0', card ? 'size-10' : 'size-12')} />\n <div className={cn('flex min-w-0 flex-col gap-1', horizontal && 'min-w-40 flex-1')}>\n <div className=\"flex flex-wrap items-center gap-1.5\">\n <span id={id} className={cn('font-medium text-foreground', card ? 'text-sm leading-5' : 'text-base leading-6')}>Microsoft Office 365</span>\n <Badge size={16} appearance=\"light\" tone=\"info\">New</Badge>\n </div>\n <p className={cn('text-muted-foreground', card ? 'text-xs leading-4' : 'text-sm leading-5')}>Seamless collaboration and document management.</p>\n </div>\n <Button asChild variant=\"outline\" size=\"default\" className={horizontal ? undefined : 'w-full'}><DialogTrigger><Settings aria-hidden=\"true\" />Manage</DialogTrigger></Button>\n <Switch aria-labelledby={id} checked={checked} onCheckedChange={setChecked} className={horizontal ? undefined : card ? 'absolute top-5 right-5' : 'absolute top-3 right-3'} />\n </div>\n <DialogContent onKeyDownCapture={event => { if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) { event.preventDefault(); setOpen(false) } }}>\n <DialogHeader><DialogTitle>Microsoft Office 365 settings</DialogTitle><DialogDescription>Seamless collaboration and document management.</DialogDescription></DialogHeader>\n <SwitchField label=\"Enable integration\" checked={checked} onCheckedChange={setChecked} />\n <DialogFooter><Button variant=\"outline\" onClick={() => setOpen(false)}>{t('common.close')}</Button></DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n<IntegrationExample brandUrl={brandUrl} alignment=\"horizontal\" appearance=\"list\" />`,\n },\n {\n id: 'integration-vertical-card',\n title: 'Integration / vertical / card',\n render: () => <IntegrationSwitchDemo alignment=\"vertical\" appearance=\"card\" />,\n code: `import * as React from 'react'\nimport { Settings } from 'lucide-react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '@open-mercato/ui/primitives/dialog'\n\nfunction IntegrationExample({ brandUrl, alignment, appearance }: { brandUrl: string; alignment: 'horizontal' | 'vertical'; appearance: 'card' | 'list' }) {\n const t = useT()\n const id = React.useId()\n const [checked, setChecked] = React.useState(false)\n const [open, setOpen] = React.useState(false)\n const horizontal = alignment === 'horizontal'\n const card = appearance === 'card'\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <div data-slot=\"integration-switch\" data-alignment={alignment} data-appearance={appearance} className={cn('relative flex max-w-full gap-3.5', horizontal ? 'w-154 flex-wrap items-center sm:flex-nowrap' : 'w-95 flex-col items-start', card && 'rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs')}>\n <img src={brandUrl} alt=\"\" className={cn('shrink-0', card ? 'size-10' : 'size-12')} />\n <div className={cn('flex min-w-0 flex-col gap-1', horizontal && 'min-w-40 flex-1')}>\n <div className=\"flex flex-wrap items-center gap-1.5\">\n <span id={id} className={cn('font-medium text-foreground', card ? 'text-sm leading-5' : 'text-base leading-6')}>Microsoft Office 365</span>\n <Badge size={16} appearance=\"light\" tone=\"info\">New</Badge>\n </div>\n <p className={cn('text-muted-foreground', card ? 'text-xs leading-4' : 'text-sm leading-5')}>Seamless collaboration and document management.</p>\n </div>\n <Button asChild variant=\"outline\" size=\"default\" className={horizontal ? undefined : 'w-full'}><DialogTrigger><Settings aria-hidden=\"true\" />Manage</DialogTrigger></Button>\n <Switch aria-labelledby={id} checked={checked} onCheckedChange={setChecked} className={horizontal ? undefined : card ? 'absolute top-5 right-5' : 'absolute top-3 right-3'} />\n </div>\n <DialogContent onKeyDownCapture={event => { if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) { event.preventDefault(); setOpen(false) } }}>\n <DialogHeader><DialogTitle>Microsoft Office 365 settings</DialogTitle><DialogDescription>Seamless collaboration and document management.</DialogDescription></DialogHeader>\n <SwitchField label=\"Enable integration\" checked={checked} onCheckedChange={setChecked} />\n <DialogFooter><Button variant=\"outline\" onClick={() => setOpen(false)}>{t('common.close')}</Button></DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n<IntegrationExample brandUrl={brandUrl} alignment=\"vertical\" appearance=\"card\" />`,\n },\n {\n id: 'integration-vertical-list',\n title: 'Integration / vertical / list',\n render: () => <IntegrationSwitchDemo alignment=\"vertical\" appearance=\"list\" />,\n code: `import * as React from 'react'\nimport { Settings } from 'lucide-react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { SwitchField } from '@open-mercato/ui/primitives/switch-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '@open-mercato/ui/primitives/dialog'\n\nfunction IntegrationExample({ brandUrl, alignment, appearance }: { brandUrl: string; alignment: 'horizontal' | 'vertical'; appearance: 'card' | 'list' }) {\n const t = useT()\n const id = React.useId()\n const [checked, setChecked] = React.useState(false)\n const [open, setOpen] = React.useState(false)\n const horizontal = alignment === 'horizontal'\n const card = appearance === 'card'\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <div data-slot=\"integration-switch\" data-alignment={alignment} data-appearance={appearance} className={cn('relative flex max-w-full gap-3.5', horizontal ? 'w-154 flex-wrap items-center sm:flex-nowrap' : 'w-95 flex-col items-start', card && 'rounded-selection-card bg-background p-4 ring-1 ring-inset ring-border shadow-xs')}>\n <img src={brandUrl} alt=\"\" className={cn('shrink-0', card ? 'size-10' : 'size-12')} />\n <div className={cn('flex min-w-0 flex-col gap-1', horizontal && 'min-w-40 flex-1')}>\n <div className=\"flex flex-wrap items-center gap-1.5\">\n <span id={id} className={cn('font-medium text-foreground', card ? 'text-sm leading-5' : 'text-base leading-6')}>Microsoft Office 365</span>\n <Badge size={16} appearance=\"light\" tone=\"info\">New</Badge>\n </div>\n <p className={cn('text-muted-foreground', card ? 'text-xs leading-4' : 'text-sm leading-5')}>Seamless collaboration and document management.</p>\n </div>\n <Button asChild variant=\"outline\" size=\"default\" className={horizontal ? undefined : 'w-full'}><DialogTrigger><Settings aria-hidden=\"true\" />Manage</DialogTrigger></Button>\n <Switch aria-labelledby={id} checked={checked} onCheckedChange={setChecked} className={horizontal ? undefined : card ? 'absolute top-5 right-5' : 'absolute top-3 right-3'} />\n </div>\n <DialogContent onKeyDownCapture={event => { if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) { event.preventDefault(); setOpen(false) } }}>\n <DialogHeader><DialogTitle>Microsoft Office 365 settings</DialogTitle><DialogDescription>Seamless collaboration and document management.</DialogDescription></DialogHeader>\n <SwitchField label=\"Enable integration\" checked={checked} onCheckedChange={setChecked} />\n <DialogFooter><Button variant=\"outline\" onClick={() => setOpen(false)}>{t('common.close')}</Button></DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n<IntegrationExample brandUrl={brandUrl} alignment=\"vertical\" appearance=\"list\" />`,\n },\n ],\n}\n\nfunction SliderValueDemo({ initialValues }: { initialValues: number[] }) {\n const t = useT()\n const id = React.useId()\n const [values, setValues] = React.useState(initialValues)\n const range = values.length === 2\n return <div className=\"flex w-72 max-w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between gap-2 text-xs\">\n <span id={id}>{t(range ? 'design_system.gallery.examples.controls.range' : 'design_system.gallery.examples.controls.value')}</span>\n <output className=\"text-muted-foreground\">{values.join(' \u2013 ')}</output>\n </div>\n <Slider value={values} onValueChange={setValues} min={0} max={100} className=\"h-4\" aria-labelledby={id}\n thumbLabels={range ? [t('design_system.gallery.examples.controls.lower'), t('design_system.gallery.examples.controls.upper')] : undefined} />\n </div>\n}\n\nconst sliderEntry: GalleryEntry = {\n id: 'slider',\n figmaNodeId: '2617:1169',\n title: 'Slider',\n importPath: '@open-mercato/ui/primitives/slider',\n variants: [\n {\n id: 'single',\n title: 'Single value',\n render: () => <SliderInputsSingleSample />,\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[40]} min={0} max={100} step={5} aria-label=\"Discount\" />`,\n },\n {\n id: 'range',\n title: 'Range (two thumbs)',\n render: () => <SliderInputsRangeSample />,\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[20, 60]} min={0} max={100} aria-label=\"Price range\" />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => <SliderInputsDisabledSample />,\n code: `import { Slider } from '@open-mercato/ui/primitives/slider'\n\n<Slider defaultValue={[45]} disabled />`,\n },\n {\n id: 'source-values',\n title: 'Source values \u00B7 0 / 25 / 50 / 75 / 100',\n render: () => <div className=\"flex w-full flex-wrap gap-6\">{[0, 25, 50, 75, 100].map(value => <SliderValueDemo key={value} initialValues={[value]} />)}</div>,\n code: `import * as React from 'react'\nimport { Slider } from '@open-mercato/ui/primitives/slider'\n\nfunction SliderValueDemo({ initialValues }: { initialValues: number[] }) {\n const id = React.useId()\n const [values, setValues] = React.useState(initialValues)\n const range = values.length === 2\n return <div className=\"flex w-72 max-w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between gap-2 text-xs\">\n <span id={id}>{range ? 'Range' : 'Value'}</span>\n <output className=\"text-muted-foreground\">{values.join(' \u2013 ')}</output>\n </div>\n <Slider value={values} onValueChange={setValues} min={0} max={100} className=\"h-4\" aria-labelledby={id}\n thumbLabels={range ? ['Lower value', 'Upper value'] : undefined} />\n </div>\n}\n\n<div className=\"flex w-full flex-wrap gap-6\">{[0, 25, 50, 75, 100].map(value => <SliderValueDemo key={value} initialValues={[value]} />)}</div>`,\n },\n {\n id: 'source-ranges',\n title: 'Source ranges \u00B7 11 pairs',\n render: () => <div className=\"flex w-full flex-wrap gap-6\">{[[0, 0], [0, 25], [25, 50], [50, 75], [75, 100], [0, 50], [25, 75], [50, 100], [0, 75], [25, 100], [0, 100]].map(values => <SliderValueDemo key={values.join(\"-\")} initialValues={values} />)}</div>,\n code: `import * as React from 'react'\nimport { Slider } from '@open-mercato/ui/primitives/slider'\n\nfunction SliderValueDemo({ initialValues }: { initialValues: number[] }) {\n const id = React.useId()\n const [values, setValues] = React.useState(initialValues)\n const range = values.length === 2\n return <div className=\"flex w-72 max-w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between gap-2 text-xs\">\n <span id={id}>{range ? 'Range' : 'Value'}</span>\n <output className=\"text-muted-foreground\">{values.join(' \u2013 ')}</output>\n </div>\n <Slider value={values} onValueChange={setValues} min={0} max={100} className=\"h-4\" aria-labelledby={id}\n thumbLabels={range ? ['Lower value', 'Upper value'] : undefined} />\n </div>\n}\n\n<div className=\"flex w-full flex-wrap gap-6\">{[[0, 0], [0, 25], [25, 50], [50, 75], [75, 100], [0, 50], [25, 75], [50, 100], [0, 75], [25, 100], [0, 100]].map(values => <SliderValueDemo key={values.join(\"-\")} initialValues={values} />)}</div>`,\n },\n ],\n}\n\nconst formFieldEntry: GalleryEntry = {\n id: 'form-field',\n title: 'FormField',\n importPath: '@open-mercato/ui/primitives/form-field',\n variants: [\n {\n id: 'default',\n title: 'Label + description',\n render: () => <FormFieldInputsDefaultSample />,\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"Warehouse code\" description=\"Short identifier used on labels.\">\n <Input placeholder=\"WAW-01\" />\n</FormField>`,\n },\n {\n id: 'required',\n title: 'Required',\n render: () => <FormFieldInputsRequiredSample />,\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"Company name\" required>\n <Input placeholder=\"Acme sp. z o.o.\" />\n</FormField>`,\n },\n {\n id: 'error',\n title: 'Error',\n render: () => <FormFieldInputsErrorSample />,\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Input } from '@open-mercato/ui/primitives/input'\n\n<FormField label=\"VAT ID\" error=\"VAT ID must have 10 digits.\">\n <Input defaultValue=\"52601\" />\n</FormField>`,\n },\n {\n id: 'horizontal',\n title: 'Horizontal',\n render: () => <FormFieldInputsHorizontalSample />,\n code: `import { FormField } from '@open-mercato/ui/primitives/form-field'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\n\n<FormField label=\"Enable webhooks\" orientation=\"horizontal\">\n <Switch defaultChecked />\n</FormField>`,\n },\n ],\n}\n\nconst searchInputEntry: GalleryEntry = {\n id: 'search-input',\n title: 'SearchInput',\n importPath: '@open-mercato/ui/primitives/search-input',\n variants: [\n {\n id: 'default',\n title: 'default (clearable)',\n render: () => <DemoSearchInput />,\n code: `import { SearchInput } from '@open-mercato/ui/primitives/search-input'\n\nconst [query, setQuery] = React.useState('')\n\n<SearchInput value={query} onChange={setQuery} />`,\n },\n {\n id: 'small',\n title: 'Small',\n render: () => <DemoSearchInput size=\"sm\" />,\n code: `import { SearchInput } from '@open-mercato/ui/primitives/search-input'\n\n<SearchInput size=\"sm\" value={query} onChange={setQuery} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled (clear action hidden)',\n render: () => <DisabledSearchInputPreview />,\n code: `import { SearchInput } from '@open-mercato/ui/primitives/search-input'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\n\nconst [query, setQuery] = React.useState('OM-2026-0042')\n\n<FormField label=\"Search orders\" disabled>\n <SearchInput value={query} onChange={setQuery} />\n</FormField>`,\n },\n ],\n}\n\nconst emailInputEntry: GalleryEntry = {\n id: 'email-input',\n title: 'EmailInput',\n importPath: '@open-mercato/ui/primitives/email-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => (\n <div className=\"w-72\">\n <EmailInput />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput />`,\n },\n {\n id: 'no-icon',\n title: 'Without icon',\n render: () => (\n <div className=\"w-72\">\n <EmailInput showIcon={false} />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput showIcon={false} />`,\n },\n {\n id: 'invalid',\n title: 'Invalid',\n render: () => (\n <div className=\"w-72\">\n <EmailInput aria-invalid defaultValue=\"not-an-email\" />\n </div>\n ),\n code: `import { EmailInput } from '@open-mercato/ui/primitives/email-input'\n\n<EmailInput aria-invalid defaultValue=\"not-an-email\" />`,\n },\n ],\n}\n\nfunction PasswordStrengthDemo({ initialValue = '', interactive = false }: { initialValue?: string; interactive?: boolean }) {\n const t = useT()\n const [password, setPassword] = React.useState(initialValue)\n const requirements = [\n { id: 'uppercase', label: t('design_system.gallery.samples.passwordStrength.uppercase'), met: /[A-Z]/.test(password) },\n { id: 'number', label: t('design_system.gallery.samples.passwordStrength.number'), met: /[0-9]/.test(password) },\n { id: 'length', label: t('design_system.gallery.samples.passwordStrength.length'), met: password.length >= 8 },\n ]\n const met = requirements.filter(requirement => requirement.met).length\n const strength = password.length === 0 ? 'empty' : met === 3 ? 'strong' : met === 2 ? 'moderate' : 'weak'\n return (\n <div className=\"w-75 max-w-full\">\n {interactive ? <PasswordInput value={password} onChange={event => setPassword(event.target.value)} aria-label={t('design_system.gallery.samples.passwordStrength.password')} /> : null}\n <PasswordStrength strength={strength} requirements={requirements} />\n </div>\n )\n}\n\nconst passwordStrengthEntry: GalleryEntry = {\n id: 'password-strength',\n title: 'PasswordStrength',\n importPath: '@open-mercato/ui/primitives/password-strength',\n figmaNodeId: '327:8202',\n usage: {\n do: ['Supply the evaluated strength and requirements from the policy that owns the form.', 'The interactive example demonstrates the three rules shown in Figma; the visual primitive does not define authentication policy.'],\n },\n variants: [\n {\n id: 'empty',\n title: 'empty',\n render: () => <PasswordStrengthDemo initialValue=\"\" />,\n code: `import { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\n\n\n<PasswordStrength strength=\"empty\" requirements={[\n { id: 'uppercase', label: 'At least 1 uppercase', met: false },\n { id: 'number', label: 'At least 1 number', met: false },\n { id: 'length', label: 'At least 8 characters', met: false },\n]} />`,\n },\n {\n id: 'weak',\n title: 'weak',\n render: () => <PasswordStrengthDemo initialValue=\"A\" />,\n code: `import { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\n\n\n<PasswordStrength strength=\"weak\" requirements={[\n { id: 'uppercase', label: 'At least 1 uppercase', met: true },\n { id: 'number', label: 'At least 1 number', met: false },\n { id: 'length', label: 'At least 8 characters', met: false },\n]} />`,\n },\n {\n id: 'moderate',\n title: 'moderate',\n render: () => <PasswordStrengthDemo initialValue=\"A1\" />,\n code: `import { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\n\n\n<PasswordStrength strength=\"moderate\" requirements={[\n { id: 'uppercase', label: 'At least 1 uppercase', met: true },\n { id: 'number', label: 'At least 1 number', met: true },\n { id: 'length', label: 'At least 8 characters', met: false },\n]} />`,\n },\n {\n id: 'strong',\n title: 'strong',\n render: () => <PasswordStrengthDemo initialValue=\"A1234567\" />,\n code: `import { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\n\n\n<PasswordStrength strength=\"strong\" requirements={[\n { id: 'uppercase', label: 'At least 1 uppercase', met: true },\n { id: 'number', label: 'At least 1 number', met: true },\n { id: 'length', label: 'At least 8 characters', met: true },\n]} />`,\n },\n {\n id: 'interactive',\n title: 'interactive',\n render: () => <PasswordStrengthDemo interactive />,\n code: `import { PasswordStrength } from '@open-mercato/ui/primitives/password-strength'\nimport { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\nconst [password, setPassword] = React.useState('')\nconst requirements = [\n { id: 'uppercase', label: 'At least 1 uppercase', met: /[A-Z]/.test(password) },\n { id: 'number', label: 'At least 1 number', met: /[0-9]/.test(password) },\n { id: 'length', label: 'At least 8 characters', met: password.length >= 8 },\n]\nconst met = requirements.filter(requirement => requirement.met).length\nconst strength = password.length === 0 ? 'empty' : met === 3 ? 'strong' : met === 2 ? 'moderate' : 'weak'\n\n<div className=\"w-75 max-w-full\">\n <PasswordInput value={password} onChange={event => setPassword(event.target.value)} aria-label=\"Password\" />\n <PasswordStrength strength={strength} requirements={requirements} />\n</div>`,\n },\n ],\n}\n\nconst passwordInputEntry: GalleryEntry = {\n id: 'password-input',\n title: 'PasswordInput',\n importPath: '@open-mercato/ui/primitives/password-input',\n variants: [\n {\n id: 'default',\n title: 'default (reveal toggle)',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput defaultValue=\"correct-horse-battery\" autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput autoComplete=\"current-password\" />`,\n },\n {\n id: 'no-lock',\n title: 'Without lock icon',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput showLockIcon={false} autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput showLockIcon={false} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <div className=\"w-72\">\n <PasswordInput disabled autoComplete=\"off\" />\n </div>\n ),\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\n\n<PasswordInput disabled />`,\n },\n {\n id: 'invalid',\n title: 'Invalid (described error)',\n render: () => <InvalidPasswordInputPreview />,\n code: `import { PasswordInput } from '@open-mercato/ui/primitives/password-input'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\n\n<FormField label=\"Password\" error=\"Use at least 12 characters.\">\n <PasswordInput defaultValue=\"short\" autoComplete=\"off\" />\n</FormField>`,\n },\n ],\n}\n\nconst websiteInputEntry: GalleryEntry = {\n id: 'website-input',\n title: 'WebsiteInput',\n importPath: '@open-mercato/ui/primitives/website-input',\n variants: [\n {\n id: 'default',\n title: 'default (https:// prefix)',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput />`,\n },\n {\n id: 'custom-prefix',\n title: 'Custom prefix',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput prefix=\"http://\" />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput prefix=\"http://\" />`,\n },\n {\n id: 'no-prefix',\n title: 'Without prefix',\n render: () => (\n <div className=\"w-72\">\n <WebsiteInput showPrefix={false} />\n </div>\n ),\n code: `import { WebsiteInput } from '@open-mercato/ui/primitives/website-input'\n\n<WebsiteInput showPrefix={false} />`,\n },\n ],\n}\n\nconst amountInputEntry: GalleryEntry = {\n id: 'amount-input',\n title: 'AmountInput',\n importPath: '@open-mercato/ui/primitives/amount-input',\n variants: [\n {\n id: 'default',\n title: 'default (currency picker)',\n render: () => <DemoAmountInput />,\n code: `import { AmountInput, type AmountValue } from '@open-mercato/ui/primitives/amount-input'\n\nconst [value, setValue] = React.useState<AmountValue>({ amount: '', currency: 'EUR' })\n\n<AmountInput value={value} onChange={setValue} />`,\n },\n {\n id: 'no-currency',\n title: 'Without currency picker',\n render: () => <DemoAmountInput showCurrency={false} />,\n code: `import { AmountInput } from '@open-mercato/ui/primitives/amount-input'\n\n<AmountInput value={value} onChange={setValue} showCurrency={false} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled (amount and currency)',\n render: () => <DisabledAmountInputPreview />,\n code: `import { AmountInput, type AmountValue } from '@open-mercato/ui/primitives/amount-input'\nimport { FormField } from '@open-mercato/ui/primitives/form-field'\n\nconst [value, setValue] = React.useState<AmountValue>({ amount: '1250.00', currency: 'EUR' })\n\n<FormField label=\"Order total\" disabled>\n <AmountInput value={value} onChange={setValue} />\n</FormField>`,\n },\n ],\n}\n\nconst counterInputEntry: GalleryEntry = {\n id: 'counter-input',\n title: 'CounterInput',\n importPath: '@open-mercato/ui/primitives/counter-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <DemoCounterInput min={0} max={10} />,\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\nconst [qty, setQty] = React.useState<number | null>(2)\n\n<CounterInput value={qty} onChange={setQty} min={0} max={10} />`,\n },\n {\n id: 'step-precision',\n title: 'Step + precision',\n render: () => <DemoCounterInput initial={2.5} step={0.5} precision={1} min={0} />,\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\n<CounterInput value={weight} onChange={setWeight} step={0.5} precision={1} min={0} />`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => (\n <div className=\"w-36\">\n <CounterInput value={5} disabled />\n </div>\n ),\n code: `import { CounterInput } from '@open-mercato/ui/primitives/counter-input'\n\n<CounterInput value={5} disabled />`,\n },\n ],\n}\n\nconst digitInputEntry: GalleryEntry = {\n id: 'digit-input',\n title: 'DigitInput',\n importPath: '@open-mercato/ui/primitives/digit-input',\n variants: [\n {\n id: 'default',\n title: 'default (6 cells)',\n render: () => <DigitInputInputsDefaultSample />,\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput className=\"w-full gap-1 sm:w-auto sm:gap-2\" cellClassName=\"min-w-0 w-8 flex-1 sm:w-14 sm:flex-none\" onComplete={(code) => verify(code)} />`,\n },\n {\n id: 'masked',\n title: 'Masked (4 cells)',\n render: () => <DigitInput length={4} mask value=\"1234\" aria-label=\"PIN\" />,\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput length={4} mask aria-label=\"PIN\" />`,\n },\n {\n id: 'states',\n title: 'States',\n render: () => <DigitInputInputsStatesSample />,\n code: `import { DigitInput } from '@open-mercato/ui/primitives/digit-input'\n\n<DigitInput length={4} aria-invalid />\n<DigitInput length={4} disabled />`,\n },\n ],\n}\n\nconst cardInputEntry: GalleryEntry = {\n id: 'card-input',\n title: 'CardInput',\n importPath: '@open-mercato/ui/primitives/card-input',\n variants: [\n {\n id: 'default',\n title: 'default (empty)',\n render: () => <DemoCardInput />,\n code: `import { CardInput } from '@open-mercato/ui/primitives/card-input'\n\nconst [digits, setDigits] = React.useState('')\n\n<CardInput value={digits} onChange={setDigits} />`,\n },\n {\n id: 'brand-detected',\n title: 'Brand detected',\n render: () => <DemoCardInput initial=\"4242424242424242\" />,\n code: `import { CardInput } from '@open-mercato/ui/primitives/card-input'\n\n<CardInput value={digits} onChange={setDigits} onBrandChange={setBrand} />`,\n },\n ],\n}\n\nconst buttonInputEntry: GalleryEntry = {\n id: 'button-input',\n title: 'ButtonInput',\n importPath: '@open-mercato/ui/primitives/button-input',\n variants: [\n {\n id: 'copy-link',\n title: 'Copy link',\n render: () => <ButtonInputInputsCopyLinkSample />,\n code: `import { Copy, Link2 } from 'lucide-react'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\n\n<ButtonInput\n readOnly\n defaultValue=\"https://app.example.com/i/8f2c\"\n leftIcon={<Link2 />}\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Copy link\"><Copy /></IconButton>\n }\n/>`,\n },\n {\n id: 'send',\n title: 'Send action',\n render: () => <ButtonInputInputsSendSample />,\n code: `import { Send } from 'lucide-react'\nimport { ButtonInput } from '@open-mercato/ui/primitives/button-input'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\n\n<ButtonInput\n placeholder=\"Invite by email\"\n trailingAction={\n <IconButton variant=\"ghost\" aria-label=\"Send invite\"><Send /></IconButton>\n }\n/>`,\n },\n ],\n}\n\nconst colorPickerEntry: GalleryEntry = {\n id: 'color-picker',\n title: 'ColorPicker',\n importPath: '@open-mercato/ui/primitives/color-picker',\n figmaNodeId: '4415:53671',\n variants: [\n {\n id: 'opacity',\n title: 'Opacity',\n render: () => <DemoColorPicker showOpacity />,\n code: `import { ColorPicker } from '@open-mercato/ui/primitives/color-picker'\n\nconst [color, setColor] = React.useState('#6366F1')\nconst [opacity, setOpacity] = React.useState(75)\n\n<ColorPicker value={color} onChange={setColor} showOpacity opacity={opacity} onOpacityChange={setOpacity} />`,\n },\n {\n id: 'default',\n title: 'default',\n render: () => <DemoColorPicker />,\n code: `import { ColorPicker } from '@open-mercato/ui/primitives/color-picker'\n\nconst [color, setColor] = React.useState('#6366F1')\n\n<ColorPicker value={color} onChange={setColor} />`,\n },\n {\n id: 'locked-palette',\n title: 'Locked palette',\n render: () => (\n <DemoColorPicker\n allowCustom={false}\n swatches={COLOR_PICKER_DEFAULT_SWATCHES.slice(0, 5)}\n />\n ),\n code: `import { ColorPicker, COLOR_PICKER_DEFAULT_SWATCHES } from '@open-mercato/ui/primitives/color-picker'\n\n<ColorPicker\n value={color}\n onChange={setColor}\n swatches={COLOR_PICKER_DEFAULT_SWATCHES.slice(0, 5)}\n allowCustom={false}\n/>`,\n },\n ],\n}\n\nconst tagInputEntry: GalleryEntry = {\n id: 'tag-input',\n title: 'TagInput',\n importPath: '@open-mercato/ui/primitives/tag-input',\n variants: [\n {\n id: 'default',\n title: 'default',\n render: () => <TagInputInputsDefaultSample />,\n code: `import { TagInput } from '@open-mercato/ui/primitives/tag-input'\n\nconst [tags, setTags] = React.useState<string[]>(['wholesale', 'priority', 'eu'])\n\n<TagInput value={tags} onChange={setTags} placeholder=\"Add tag\" />`,\n },\n {\n id: 'max-tags',\n title: 'Max tags reached',\n render: () => <TagInputInputsMaxTagsSample />,\n code: `import { TagInput } from '@open-mercato/ui/primitives/tag-input'\n\n<TagInput value={tags} onChange={setTags} maxTags={3} />`,\n },\n ],\n}\n\nconst richEditorEntry: GalleryEntry = {\n id: 'rich-editor',\n figmaNodeId: '166926:17605',\n title: 'RichEditor',\n importPath: '@open-mercato/ui/primitives/rich-editor',\n docsAnchor: '#richeditor',\n usage: { do: [\n 'toolbarDesign opts into source layouts 01\u201304 with 28 px controls, 20 px icons and 6 px item radii. Existing full, standard, basic and minimal presets retain their defaults.',\n 'Every source layout includes a working More menu. Hidden commands remain available in that menu when the toolbar narrows.',\n 'The 12-color palette already includes the source Color11 (white) and Color12 (black). Color choice changes editable content; stored HTML still passes through the existing sanitizer.',\n 'The character counter updates while typing. onChange retains its blur contract; consumers supply translated labels and their own comment and mention workflows.',\n ] },\n variants: [\n { id: 'minimal', title: 'Preset / minimal', render: () => <DemoRichEditor variant=\"minimal\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} variant=\"minimal\" />` },\n { id: 'standard', title: 'Preset / standard', render: () => <DemoRichEditor variant=\"standard\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} variant=\"standard\" />` },\n { id: 'basic', title: 'Preset / basic', render: () => <DemoRichEditor variant=\"basic\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} variant=\"basic\" />` },\n { id: 'full', title: 'Preset / full', render: () => <DemoRichEditor variant=\"full\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} variant=\"full\" />` },\n { id: 'source-01', title: 'Source layout 01', render: () => <DemoRichEditor toolbarDesign=\"01\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"01\" />` },\n { id: 'source-02', title: 'Source layout 02', render: () => <DemoRichEditor toolbarDesign=\"02\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"02\" />` },\n { id: 'source-03', title: 'Source layout 03', render: () => <DemoRichEditor toolbarDesign=\"03\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"03\" />` },\n { id: 'source-04', title: 'Source layout 04', render: () => <DemoRichEditor toolbarDesign=\"04\" />, code: `import * as React from 'react'\nimport { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [html, setHtml] = React.useState('<p>Editable text</p>')\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"04\" />` },\n { id: 'disabled', title: 'Source layout / disabled', render: () => <DemoRichEditor toolbarDesign=\"01\" disabled />, code: `import { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"01\" disabled />` },\n { id: 'counter', title: 'Live character counter', render: () => <DemoRichEditor toolbarDesign=\"03\" counter />, code: `import { RichEditor } from '@open-mercato/ui/primitives/rich-editor'\n\n<RichEditor value={html} onChange={setHtml} toolbarDesign=\"03\" maxLength={100} />` },\n { id: 'palette', title: 'All twelve source colors', render: () => <DemoRichEditorPalette />, code: `import * as React from 'react'\nimport { RichEditorColorPalette, type RichEditorColorKey } from '@open-mercato/ui/primitives/rich-editor'\n\nconst [color, setColor] = React.useState<RichEditorColorKey | null>('gray')\n<RichEditorColorPalette value={color} onChange={setColor} />` },\n ],\n}\n\nconst fileUploadAreaEntry: GalleryEntry = {\n id: 'file-upload',\n title: 'FileUploadArea',\n importPath: '@open-mercato/ui/primitives/file-upload',\n figmaNodeId: '450:9413',\n docsAnchor: '#fileuploadarea',\n usage: { do: ['Default and hover are live states of the same drop target. Select or drop files to exercise the local demo queue.', 'Pass onFilesSelected and handle transfer separately. Demo progress is simulated locally; files never leave the browser.', 'Keep custom accept/maxSizeBytes and the description consistent.'] },\n variants: [\n {\n id: 'default', title: 'default',\n render: () => <FileUploadAreaDemo />,\n code: `import { FileUploadArea } from '@open-mercato/ui/primitives/file-upload'\n\n<FileUploadArea onFilesSelected={handleFiles} onFilesRejected={handleRejections} />`,\n },\n {\n id: 'drag-and-drop', title: 'drag-and-drop',\n render: () => <FileUploadAreaDemo />,\n code: `import { FileUploadArea } from '@open-mercato/ui/primitives/file-upload'\n\n<FileUploadArea onFilesSelected={handleFiles} onFilesRejected={handleRejections} />`,\n },\n {\n id: 'disabled', title: 'disabled',\n render: () => <FileUploadAreaDemo disabled />,\n code: `import { FileUploadArea } from '@open-mercato/ui/primitives/file-upload'\n\n<FileUploadArea disabled onFilesSelected={handleFiles} onFilesRejected={handleRejections} />`,\n },\n ],\n}\n\nconst fileUploadCardEntry: GalleryEntry = {\n id: 'file-upload-card',\n title: 'FileUploadCard',\n importPath: '@open-mercato/ui/primitives/file-upload-card',\n figmaNodeId: '451:409',\n docsAnchor: '#fileuploadcard',\n usage: { do: ['Cancel/remove and retry are real callbacks. The error example retries using local simulated progress.', 'The caller owns transfer state, progress, and localized file-size text.'] },\n variants: [\n {\n id: 'uploading', title: 'uploading',\n render: () => <FileUploadCardDemo initialStatus=\"uploading\" />,\n code: `import { FileUploadCard } from '@open-mercato/ui/primitives/file-upload-card'\n\n<FileUploadCard fileName=\"my-cv.pdf\" sizeLabel={sizeLabel} status=\"uploading\" progress={progress} onRemove={removeFile} onRetry={retryFile} />`,\n },\n {\n id: 'success', title: 'success',\n render: () => <FileUploadCardDemo initialStatus=\"success\" />,\n code: `import { FileUploadCard } from '@open-mercato/ui/primitives/file-upload-card'\n\n<FileUploadCard fileName=\"my-cv.pdf\" sizeLabel={sizeLabel} status=\"success\" progress={progress} onRemove={removeFile} onRetry={retryFile} />`,\n },\n {\n id: 'error', title: 'error',\n render: () => <FileUploadCardDemo initialStatus=\"error\" />,\n code: `import { FileUploadCard } from '@open-mercato/ui/primitives/file-upload-card'\n\n<FileUploadCard fileName=\"my-cv.pdf\" sizeLabel={sizeLabel} status=\"error\" progress={progress} onRemove={removeFile} onRetry={retryFile} />`,\n },\n ],\n}\n\nconst fileFormatIconEntry: GalleryEntry = {\n id: 'file-format-icon',\n title: 'FileFormatIcon',\n importPath: '@open-mercato/ui/primitives/file-format-icon',\n figmaNodeId: '450:17234',\n docsAnchor: '#fileformaticon',\n usage: { do: ['Both sizes and all nine category colors come from Figma. Teal is the source name of the light-blue category.', 'The original Figma paper/fold artwork is bundled locally. Category-label foregrounds meet 4.5:1 contrast.'] },\n variants: [\n {\n id: 'red-default', title: 'red / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"red\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"red\" size=\"default\" />`,\n },\n {\n id: 'orange-default', title: 'orange / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"orange\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"orange\" size=\"default\" />`,\n },\n {\n id: 'yellow-default', title: 'yellow / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"yellow\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"yellow\" size=\"default\" />`,\n },\n {\n id: 'green-default', title: 'green / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"green\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"green\" size=\"default\" />`,\n },\n {\n id: 'teal-default', title: 'teal / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"teal\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"teal\" size=\"default\" />`,\n },\n {\n id: 'blue-default', title: 'blue / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"blue\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"blue\" size=\"default\" />`,\n },\n {\n id: 'purple-default', title: 'purple / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"purple\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"purple\" size=\"default\" />`,\n },\n {\n id: 'pink-default', title: 'pink / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"pink\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"pink\" size=\"default\" />`,\n },\n {\n id: 'gray-default', title: 'gray / 40px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"gray\" size=\"default\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"gray\" size=\"default\" />`,\n },\n {\n id: 'red-sm', title: 'red / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"red\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"red\" size=\"sm\" />`,\n },\n {\n id: 'orange-sm', title: 'orange / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"orange\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"orange\" size=\"sm\" />`,\n },\n {\n id: 'yellow-sm', title: 'yellow / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"yellow\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"yellow\" size=\"sm\" />`,\n },\n {\n id: 'green-sm', title: 'green / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"green\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"green\" size=\"sm\" />`,\n },\n {\n id: 'teal-sm', title: 'teal / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"teal\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"teal\" size=\"sm\" />`,\n },\n {\n id: 'blue-sm', title: 'blue / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"blue\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"blue\" size=\"sm\" />`,\n },\n {\n id: 'purple-sm', title: 'purple / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"purple\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"purple\" size=\"sm\" />`,\n },\n {\n id: 'pink-sm', title: 'pink / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"pink\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"pink\" size=\"sm\" />`,\n },\n {\n id: 'gray-sm', title: 'gray / 32px',\n render: () => <FileFormatIcon format=\"PDF\" tone=\"gray\" size=\"sm\" />,\n code: `import { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\n\n<FileFormatIcon format=\"PDF\" tone=\"gray\" size=\"sm\" />`,\n },\n ],\n}\n\nconst imageUploadEntry: GalleryEntry = {\n id: 'image-upload',\n title: 'ImageUpload',\n importPath: '@open-mercato/ui/primitives/image-upload',\n figmaNodeId: '452:653',\n docsAnchor: '#imageupload',\n usage: { do: ['Figma calls the layout with text above actions Vertical; both source layouts place the avatar to the left.', 'New selections must decode as PNG/JPEG and meet the configured minimum dimensions (400\u00D7400 by default). The caller owns the preview URL and transfer.', 'Existing uploaded illustrations are exact source fixtures. Change and Remove update only local browser state.'] },\n variants: [\n {\n id: 'avatar-vertical-empty', title: 'avatar / vertical / empty',\n render: () => <ImageUploadDemo kind=\"avatar\" alignment=\"vertical\" uploaded={false} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"avatar\" alignment=\"vertical\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'avatar-vertical-uploaded', title: 'avatar / vertical / uploaded',\n render: () => <ImageUploadDemo kind=\"avatar\" alignment=\"vertical\" uploaded={true} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"avatar\" alignment=\"vertical\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'avatar-horizontal-empty', title: 'avatar / horizontal / empty',\n render: () => <ImageUploadDemo kind=\"avatar\" alignment=\"horizontal\" uploaded={false} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"avatar\" alignment=\"horizontal\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'avatar-horizontal-uploaded', title: 'avatar / horizontal / uploaded',\n render: () => <ImageUploadDemo kind=\"avatar\" alignment=\"horizontal\" uploaded={true} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"avatar\" alignment=\"horizontal\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'company-vertical-empty', title: 'company / vertical / empty',\n render: () => <ImageUploadDemo kind=\"company\" alignment=\"vertical\" uploaded={false} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"company\" alignment=\"vertical\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'company-vertical-uploaded', title: 'company / vertical / uploaded',\n render: () => <ImageUploadDemo kind=\"company\" alignment=\"vertical\" uploaded={true} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"company\" alignment=\"vertical\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'company-horizontal-empty', title: 'company / horizontal / empty',\n render: () => <ImageUploadDemo kind=\"company\" alignment=\"horizontal\" uploaded={false} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"company\" alignment=\"horizontal\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'company-horizontal-uploaded', title: 'company / horizontal / uploaded',\n render: () => <ImageUploadDemo kind=\"company\" alignment=\"horizontal\" uploaded={true} />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload kind=\"company\" alignment=\"horizontal\" src={previewUrl} alt={imageLabel} onChange={handleImageChange} />`,\n },\n {\n id: 'disabled', title: 'disabled',\n render: () => <ImageUploadDemo kind=\"avatar\" alignment=\"vertical\" uploaded disabled />,\n code: `import { ImageUpload } from '@open-mercato/ui/primitives/image-upload'\n\n<ImageUpload disabled src={previewUrl} onChange={handleImageChange} />`,\n },\n ],\n}\n\nconst labelEntry: GalleryEntry = {\n id: 'label', title: 'FieldLabel',\n importPath: '@open-mercato/ui/primitives/label',\n figmaNodeId: '266:2814',\n descriptionKey: 'design_system.entries.label.description',\n variants: [\n { id: 'normal', title: 'normal', render: () => <FieldLabelExample />, code: fieldLabelCode(' sublabel=\"(optional)\"') },\n { id: 'disabled', title: 'disabled', render: () => <FieldLabelExample disabled />, code: fieldLabelCode(' disabled') },\n { id: 'required', title: 'required', render: () => <FieldLabelExample kind=\"required\" />, code: fieldLabelCode(' required') },\n { id: 'optional', title: 'optional', render: () => <FieldLabelExample kind=\"optional\" />, code: fieldLabelCode(' sublabel=\"(optional)\"') },\n { id: 'information', title: 'information', render: () => <FieldLabelExample kind=\"information\" />, code: fieldLabelInformationCode },\n { id: 'action', title: 'action', render: () => <FieldLabelExample kind=\"action\" />, code: fieldLabelActionCode },\n { id: 'form-field', title: 'form-field', render: () => <FormFieldLabelExample />, code: formFieldLabelCode },\n ],\n}\n\nconst hint_textEntry: GalleryEntry = {\n id: 'hint-text', title: 'HintText',\n importPath: '@open-mercato/ui/primitives/hint-text',\n figmaNodeId: '266:5284',\n descriptionKey: 'design_system.entries.hint-text.description',\n variants: [\n { id: 'default', title: 'default', render: () => <HintTextExample />, code: hintTextCode() },\n { id: 'error', title: 'error', render: () => <HintTextExample state=\"error\" />, code: hintTextCode({ state: 'error' }) },\n { id: 'disabled', title: 'disabled', render: () => <HintTextExample state=\"disabled\" />, code: hintTextCode({ state: 'disabled' }) },\n { id: 'text-only', title: 'text-only', render: () => <HintTextExample icon={false} />, code: hintTextCode({ icon: false }) },\n ],\n}\n\nconst marketingControlsEntry: GalleryEntry = {\n id: 'marketing-controls',\n title: 'Marketing Controls',\n importPath: '@open-mercato/ui/primitives/input',\n figmaNodeId: '6696:81119',\n variants: [\n { id: 'product-image-1', title: 'product-image-1', render: () => <MarketingControlDemo kind=\"product-image\" product={0} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={0} />') },\n { id: 'product-image-2', title: 'product-image-2', render: () => <MarketingControlDemo kind=\"product-image\" product={1} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={1} />') },\n { id: 'product-image-3', title: 'product-image-3', render: () => <MarketingControlDemo kind=\"product-image\" product={2} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={2} />') },\n { id: 'product-image-4', title: 'product-image-4', render: () => <MarketingControlDemo kind=\"product-image\" product={3} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={3} />') },\n { id: 'product-image-5', title: 'product-image-5', render: () => <MarketingControlDemo kind=\"product-image\" product={4} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={4} />') },\n { id: 'product-image-6', title: 'product-image-6', render: () => <MarketingControlDemo kind=\"product-image\" product={5} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={5} />') },\n { id: 'product-image-7', title: 'product-image-7', render: () => <MarketingControlDemo kind=\"product-image\" product={6} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={6} />') },\n { id: 'product-image-8', title: 'product-image-8', render: () => <MarketingControlDemo kind=\"product-image\" product={7} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={7} />') },\n { id: 'product-image-9', title: 'product-image-9', render: () => <MarketingControlDemo kind=\"product-image\" product={8} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={8} />') },\n { id: 'product-image-10', title: 'product-image-10', render: () => <MarketingControlDemo kind=\"product-image\" product={9} />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"product-image\" product={9} />') },\n { id: 'step-item-default', title: 'step-item-default', render: () => <MarketingControlDemo kind=\"step-item\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"step-item\" state=\"default\" />') },\n { id: 'step-item-active', title: 'step-item-active', render: () => <MarketingControlDemo kind=\"step-item\" state=\"active\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"step-item\" state=\"active\" />') },\n { id: 'step-item-complete', title: 'step-item-complete', render: () => <MarketingControlDemo kind=\"step-item\" state=\"complete\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"step-item\" state=\"complete\" />') },\n { id: 'select-default', title: 'select-default', render: () => <MarketingControlDemo kind=\"select\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"select\" state=\"default\" />') },\n { id: 'select-hover', title: 'select-hover', render: () => <MarketingControlDemo kind=\"select\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"select\" state=\"hover\" />') },\n { id: 'select-active', title: 'select-active', render: () => <MarketingControlDemo kind=\"select\" state=\"active\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"select\" state=\"active\" />') },\n { id: 'select-filled', title: 'select-filled', render: () => <MarketingControlDemo kind=\"select\" state=\"filled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"select\" state=\"filled\" />') },\n { id: 'input-default-medium', title: 'input-default-medium', render: () => <MarketingControlDemo kind=\"input\" state=\"default\" size=\"medium\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"default\" size=\"medium\" />') },\n { id: 'input-hover-medium', title: 'input-hover-medium', render: () => <MarketingControlDemo kind=\"input\" state=\"hover\" size=\"medium\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"hover\" size=\"medium\" />') },\n { id: 'input-active-medium', title: 'input-active-medium', render: () => <MarketingControlDemo kind=\"input\" state=\"active\" size=\"medium\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"active\" size=\"medium\" />') },\n { id: 'input-filled-medium', title: 'input-filled-medium', render: () => <MarketingControlDemo kind=\"input\" state=\"filled\" size=\"medium\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"filled\" size=\"medium\" />') },\n { id: 'input-default-large', title: 'input-default-large', render: () => <MarketingControlDemo kind=\"input\" state=\"default\" size=\"large\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"default\" size=\"large\" />') },\n { id: 'input-hover-large', title: 'input-hover-large', render: () => <MarketingControlDemo kind=\"input\" state=\"hover\" size=\"large\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"hover\" size=\"large\" />') },\n { id: 'input-active-large', title: 'input-active-large', render: () => <MarketingControlDemo kind=\"input\" state=\"active\" size=\"large\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"active\" size=\"large\" />') },\n { id: 'input-filled-large', title: 'input-filled-large', render: () => <MarketingControlDemo kind=\"input\" state=\"filled\" size=\"large\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"input\" state=\"filled\" size=\"large\" />') },\n { id: 'textarea-default', title: 'textarea-default', render: () => <MarketingControlDemo kind=\"textarea\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"textarea\" state=\"default\" />') },\n { id: 'textarea-hover', title: 'textarea-hover', render: () => <MarketingControlDemo kind=\"textarea\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"textarea\" state=\"hover\" />') },\n { id: 'textarea-active', title: 'textarea-active', render: () => <MarketingControlDemo kind=\"textarea\" state=\"active\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"textarea\" state=\"active\" />') },\n { id: 'textarea-filled', title: 'textarea-filled', render: () => <MarketingControlDemo kind=\"textarea\" state=\"filled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"textarea\" state=\"filled\" />') },\n { id: 'amount-default', title: 'amount-default', render: () => <MarketingControlDemo kind=\"amount\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"amount\" state=\"default\" />') },\n { id: 'amount-hover', title: 'amount-hover', render: () => <MarketingControlDemo kind=\"amount\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"amount\" state=\"hover\" />') },\n { id: 'amount-active', title: 'amount-active', render: () => <MarketingControlDemo kind=\"amount\" state=\"active\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"amount\" state=\"active\" />') },\n { id: 'amount-filled', title: 'amount-filled', render: () => <MarketingControlDemo kind=\"amount\" state=\"filled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"amount\" state=\"filled\" />') },\n { id: 'tab-menu-default', title: 'tab-menu-default', render: () => <MarketingControlDemo kind=\"tab-menu\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"tab-menu\" state=\"default\" />') },\n { id: 'tab-menu-hover', title: 'tab-menu-hover', render: () => <MarketingControlDemo kind=\"tab-menu\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"tab-menu\" state=\"hover\" />') },\n { id: 'tab-menu-active', title: 'tab-menu-active', render: () => <MarketingControlDemo kind=\"tab-menu\" state=\"active\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"tab-menu\" state=\"active\" />') },\n { id: 'inline-input-placeholder', title: 'inline-input-placeholder', render: () => <MarketingControlDemo kind=\"inline-input\" state=\"placeholder\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-input\" state=\"placeholder\" />') },\n { id: 'inline-input-hover', title: 'inline-input-hover', render: () => <MarketingControlDemo kind=\"inline-input\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-input\" state=\"hover\" />') },\n { id: 'inline-input-focus', title: 'inline-input-focus', render: () => <MarketingControlDemo kind=\"inline-input\" state=\"focus\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-input\" state=\"focus\" />') },\n { id: 'inline-input-filled', title: 'inline-input-filled', render: () => <MarketingControlDemo kind=\"inline-input\" state=\"filled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-input\" state=\"filled\" />') },\n { id: 'inline-input-disabled', title: 'inline-input-disabled', render: () => <MarketingControlDemo kind=\"inline-input\" state=\"disabled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-input\" state=\"disabled\" />') },\n { id: 'inline-select-placeholder', title: 'inline-select-placeholder', render: () => <MarketingControlDemo kind=\"inline-select\" state=\"placeholder\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-select\" state=\"placeholder\" />') },\n { id: 'inline-select-hover', title: 'inline-select-hover', render: () => <MarketingControlDemo kind=\"inline-select\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-select\" state=\"hover\" />') },\n { id: 'inline-select-focus', title: 'inline-select-focus', render: () => <MarketingControlDemo kind=\"inline-select\" state=\"focus\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-select\" state=\"focus\" />') },\n { id: 'inline-select-filled', title: 'inline-select-filled', render: () => <MarketingControlDemo kind=\"inline-select\" state=\"filled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-select\" state=\"filled\" />') },\n { id: 'inline-select-disabled', title: 'inline-select-disabled', render: () => <MarketingControlDemo kind=\"inline-select\" state=\"disabled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"inline-select\" state=\"disabled\" />') },\n { id: 'chart-tooltip-right', title: 'chart-tooltip-right', render: () => <MarketingControlDemo kind=\"chart-tooltip\" side=\"right\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"chart-tooltip\" side=\"right\" />') },\n { id: 'chart-tooltip-left', title: 'chart-tooltip-left', render: () => <MarketingControlDemo kind=\"chart-tooltip\" side=\"left\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"chart-tooltip\" side=\"left\" />') },\n { id: 'chart-tooltip-bottom', title: 'chart-tooltip-bottom', render: () => <MarketingControlDemo kind=\"chart-tooltip\" side=\"bottom\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"chart-tooltip\" side=\"bottom\" />') },\n { id: 'chart-tooltip-top', title: 'chart-tooltip-top', render: () => <MarketingControlDemo kind=\"chart-tooltip\" side=\"top\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"chart-tooltip\" side=\"top\" />') },\n { id: 'selected-button-default', title: 'selected-button-default', render: () => <MarketingControlDemo kind=\"selected-button\" state=\"default\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"selected-button\" state=\"default\" />') },\n { id: 'selected-button-hover', title: 'selected-button-hover', render: () => <MarketingControlDemo kind=\"selected-button\" state=\"hover\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"selected-button\" state=\"hover\" />') },\n { id: 'selected-button-selected', title: 'selected-button-selected', render: () => <MarketingControlDemo kind=\"selected-button\" state=\"selected\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"selected-button\" state=\"selected\" />') },\n { id: 'selected-button-disabled', title: 'selected-button-disabled', render: () => <MarketingControlDemo kind=\"selected-button\" state=\"disabled\" />, code: marketingControlExampleCode('<MarketingControlDemo kind=\"selected-button\" state=\"disabled\" />') },\n ],\n}\n\nexport const entries: GalleryEntry[] = [\n marketingControlsEntry,\n labelEntry,\n hint_textEntry,\n fileUploadAreaEntry,\n fileUploadCardEntry,\n fileFormatIconEntry,\n imageUploadEntry,\n inputEntry,\n textareaEntry,\n phoneNumberEntry,\n selectEntry,\n dropdownEntry,\n compactSelectEntry,\n inlineSelectEntry,\n inlineInputEntry,\n checkboxEntry,\n checkboxFieldEntry,\n radioEntry,\n radioFieldEntry,\n switchEntry,\n switchFieldEntry,\n sliderEntry,\n formFieldEntry,\n searchInputEntry,\n emailInputEntry,\n passwordInputEntry,\n passwordStrengthEntry,\n websiteInputEntry,\n amountInputEntry,\n counterInputEntry,\n digitInputEntry,\n cardInputEntry,\n buttonInputEntry,\n colorPickerEntry,\n tagInputEntry,\n richEditorEntry,\n]\n\nfunction InputInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <Input placeholder={t('design_system.gallery.samples.marketing.productName')} />\n </div>)\n}\n\nfunction InputInputsIconSlotsSample() {\n const t = useT()\n return (<>\n <div className=\"w-56\">\n <Input leftIcon={<User />} placeholder={t('design_system.gallery.sampleCopy.assignee')} />\n </div>\n <div className=\"w-56\">\n <Input rightIcon={<Info />} placeholder=\"SKU\" />\n </div>\n </>)\n}\n\nfunction InputInputsSizesSample() {\n const t = useT()\n return (<>\n <div className=\"w-44\">\n <Input size=\"lg\" placeholder={t('design_system.gallery.sampleCopy.large')} />\n </div>\n <div className=\"w-44\">\n <Input size=\"default\" placeholder={t('design_system.gallery.examples.aiProduct.default')} />\n </div>\n <div className=\"w-44\">\n <Input size=\"sm\" placeholder={t('design_system.gallery.sampleCopy.small')} />\n </div>\n </>)\n}\n\nfunction InputInputsStatesSample() {\n const t = useT()\n return (<>\n <div className=\"w-56\">\n <Input aria-invalid defaultValue=\"not-a-number\" />\n </div>\n <div className=\"w-56\">\n <Input disabled placeholder={t('design_system.gallery.examples.keyComponents.disabled')} />\n </div>\n </>)\n}\n\nfunction TextareaInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <Textarea placeholder={t('design_system.gallery.sampleCopy.internalNoteForTheFulfillmentTeam')} />\n </div>)\n}\n\nfunction TextareaInputsStatesSample() {\n const t = useT()\n return (<>\n <div className=\"w-72\">\n <Textarea aria-invalid defaultValue={t('design_system.gallery.sampleCopy.tooShort')} />\n </div>\n <div className=\"w-72\">\n <Textarea disabled placeholder={t('design_system.gallery.examples.keyComponents.disabled')} />\n </div>\n </>)\n}\n\nfunction CompactSelectInputsTriggerLabelSample() {\n const t = useT()\n return (<div className=\"w-44\">\n <Select defaultValue=\"newest\">\n <CompactSelectTrigger triggerLabel=\"Sort:\">\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"newest\">{t('design_system.gallery.sampleCopy.newest')}</SelectItem>\n <SelectItem value=\"oldest\">{t('design_system.gallery.sampleCopy.oldest')}</SelectItem>\n <SelectItem value=\"value\">{t('design_system.gallery.sampleCopy.highestValue')}</SelectItem>\n </SelectContent>\n </Select>\n </div>)\n}\n\nfunction CompactSelectInputsPlainSample() {\n const t = useT()\n return (<div className=\"w-36\">\n <Select defaultValue=\"table\">\n <CompactSelectTrigger>\n <SelectValue />\n </CompactSelectTrigger>\n <SelectContent>\n <SelectItem value=\"table\">{t('design_system.gallery.samples.richEditor.labels.table')}</SelectItem>\n <SelectItem value=\"board\">{t('design_system.gallery.sampleCopy.board')}</SelectItem>\n </SelectContent>\n </Select>\n </div>)\n}\n\nfunction InlineSelectInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-40\">\n <Select defaultValue=\"high\">\n <InlineSelectTrigger>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"low\">{t('design_system.gallery.samples.finance.low')}</SelectItem>\n <SelectItem value=\"medium\">{t('design_system.gallery.examples.aiProduct.medium')}</SelectItem>\n <SelectItem value=\"high\">{t('design_system.gallery.samples.finance.high')}</SelectItem>\n </SelectContent>\n </Select>\n </div>)\n}\n\nfunction InlineSelectInputsInvisibleSample() {\n const t = useT()\n return (<div className=\"w-40\">\n <Select defaultValue=\"draft\">\n <InlineSelectTrigger showBorderOnHover={false}>\n <SelectValue />\n </InlineSelectTrigger>\n <SelectContent>\n <SelectItem value=\"draft\">{t('design_system.gallery.sampleCopy.draft')}</SelectItem>\n <SelectItem value=\"published\">{t('design_system.gallery.sampleCopy.published')}</SelectItem>\n </SelectContent>\n </Select>\n </div>)\n}\n\nfunction InlineInputInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-56\">\n <InlineInput defaultValue={t('design_system.gallery.sampleCopy.auroraDeskLamp')} aria-label={t('design_system.gallery.samples.marketing.productName')} />\n </div>)\n}\n\nfunction CheckboxInputsStatesSample() {\n const t = useT()\n return (<>\n <Checkbox aria-label={t('design_system.gallery.sampleCopy.unchecked')} />\n <Checkbox defaultChecked aria-label={t('design_system.gallery.sampleCopy.checked')} />\n <Checkbox checked=\"indeterminate\" aria-label={t('design_system.gallery.sampleCopy.indeterminate')} />\n </>)\n}\n\nfunction CheckboxInputsSizesSample() {\n const t = useT()\n return (<>\n <Checkbox size=\"sm\" defaultChecked aria-label={t('design_system.gallery.sampleCopy.small')} />\n <Checkbox size=\"md\" defaultChecked aria-label={t('design_system.gallery.examples.aiProduct.medium')} />\n </>)\n}\n\nfunction CheckboxInputsDisabledSample() {\n const t = useT()\n return (<>\n <Checkbox disabled aria-label={t('design_system.gallery.examples.keyComponents.disabled')} />\n <Checkbox disabled defaultChecked aria-label={t('design_system.gallery.sampleCopy.disabledChecked')} />\n </>)\n}\n\nfunction CheckboxFieldInputsDefaultSample() {\n const t = useT()\n return (<CheckboxField label={t('design_system.gallery.sampleCopy.emailNotifications')} defaultChecked />)\n}\n\nfunction CheckboxFieldInputsWithDescriptionSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <CheckboxField\n label={t('design_system.gallery.sampleCopy.autoarchive')}\n sublabel=\"(recommended)\"\n description={t('design_system.gallery.sampleCopy.closedConversationsMoveToTheArchiveAfter30Days')}\n />\n </div>)\n}\n\nfunction CheckboxFieldInputsFlipSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <CheckboxField flip label={t('design_system.gallery.sampleCopy.includeShippingCosts')} defaultChecked />\n </div>)\n}\n\nfunction RadioInputsGroupSample() {\n const t = useT()\n return (<RadioGroup defaultValue=\"card\" className=\"flex-row gap-3\" aria-label={t('design_system.gallery.samples.menu.kind.provider')}>\n <Radio value=\"card\" aria-label={t('design_system.gallery.sampleCopy.card')} />\n <Radio value=\"transfer\" aria-label={t('design_system.gallery.sampleCopy.bankTransfer')} />\n <Radio value=\"cash\" aria-label={t('design_system.gallery.sampleCopy.cash')} />\n </RadioGroup>)\n}\n\nfunction RadioInputsDisabledSample() {\n const t = useT()\n return (<RadioGroup defaultValue=\"a\" disabled className=\"flex-row gap-3\" aria-label={t('design_system.gallery.sampleCopy.disabledGroup')}>\n <Radio value=\"a\" aria-label={t('design_system.gallery.sampleCopy.selectedDisabled')} />\n <Radio value=\"b\" aria-label={t('design_system.gallery.sampleCopy.unselectedDisabled')} />\n </RadioGroup>)\n}\n\nfunction RadioFieldInputsDefaultSample() {\n const t = useT()\n return (<RadioGroup defaultValue=\"standard\" aria-label={t('design_system.gallery.sampleCopy.shippingSpeed')}>\n <RadioField value=\"standard\" label={t('design_system.gallery.sampleCopy.standard')} />\n <RadioField value=\"express\" label={t('design_system.gallery.sampleCopy.express')} />\n </RadioGroup>)\n}\n\nfunction RadioFieldInputsWithDescriptionSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <RadioGroup defaultValue=\"invoice\" aria-label={t('design_system.gallery.samples.marketing.billing')}>\n <RadioField\n value=\"invoice\"\n label={t('design_system.gallery.sampleCopy.invoice')}\n description={t('design_system.gallery.sampleCopy.payWithin14DaysOfDelivery')}\n />\n <RadioField\n value=\"prepaid\"\n label={t('design_system.gallery.sampleCopy.prepaid')}\n description={t('design_system.gallery.sampleCopy.orderShipsAfterPaymentClears')}\n />\n </RadioGroup>\n </div>)\n}\n\nfunction SwitchInputsStatesSample() {\n const t = useT()\n return (<>\n <Switch aria-label={t('design_system.gallery.sampleCopy.off')} />\n <Switch defaultChecked aria-label={t('design_system.gallery.sampleCopy.on')} />\n </>)\n}\n\nfunction SwitchInputsDisabledSample() {\n const t = useT()\n return (<>\n <Switch disabled aria-label={t('design_system.gallery.sampleCopy.disabledOff')} />\n <Switch disabled defaultChecked aria-label={t('design_system.gallery.sampleCopy.disabledOn')} />\n </>)\n}\n\nfunction SwitchFieldInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <SwitchField label={t('design_system.gallery.sampleCopy.twofactorAuthentication')} defaultChecked />\n </div>)\n}\n\nfunction SwitchFieldInputsWithDescriptionSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <SwitchField\n label={t('design_system.gallery.sampleCopy.lowstockAlerts')}\n description={t('design_system.gallery.sampleCopy.notifyPurchasingWhenStockDropsBelowTheReorderPoint')}\n />\n </div>)\n}\n\nfunction SwitchFieldInputsFlipSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <SwitchField flip label={t('design_system.gallery.sampleCopy.syncInventoryNightly')} defaultChecked />\n </div>)\n}\n\nfunction SliderInputsSingleSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <Slider defaultValue={[40]} min={0} max={100} step={5} aria-label={t('design_system.gallery.sampleCopy.discount')} />\n </div>)\n}\n\nfunction SliderInputsRangeSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <Slider defaultValue={[20, 60]} min={0} max={100} aria-label={t('design_system.gallery.sampleCopy.priceRange')} />\n </div>)\n}\n\nfunction SliderInputsDisabledSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <Slider defaultValue={[45]} disabled aria-label={t('design_system.gallery.sampleCopy.disabledSlider')} />\n </div>)\n}\n\nfunction FormFieldInputsDefaultSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <FormField label={t('design_system.gallery.sampleCopy.warehouseCode')} description={t('design_system.gallery.sampleCopy.shortIdentifierUsedOnLabels')}>\n <Input placeholder=\"WAW-01\" />\n </FormField>\n </div>)\n}\n\nfunction FormFieldInputsRequiredSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <FormField label={t('design_system.gallery.sampleCopy.companyName')} required>\n <Input placeholder=\"Acme sp. z o.o.\" />\n </FormField>\n </div>)\n}\n\nfunction FormFieldInputsHorizontalSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <FormField label={t('design_system.gallery.sampleCopy.enableWebhooks')} orientation=\"horizontal\">\n <Switch defaultChecked />\n </FormField>\n </div>)\n}\n\nfunction DigitInputInputsDefaultSample() {\n const t = useT()\n return (<DigitInput aria-label={t('design_system.gallery.examples.aiProduct.verification')} className=\"w-full gap-1 sm:w-auto sm:gap-2\" cellClassName=\"min-w-0 w-8 flex-1 sm:w-14 sm:flex-none\" />)\n}\n\nfunction DigitInputInputsStatesSample() {\n const t = useT()\n return (<div className=\"flex flex-col gap-3\">\n <DigitInput length={4} value=\"4921\" aria-invalid aria-label={t('design_system.gallery.sampleCopy.invalidCode')} />\n <DigitInput length={4} disabled aria-label={t('design_system.gallery.sampleCopy.disabledCode')} />\n </div>)\n}\n\nfunction ButtonInputInputsCopyLinkSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <ButtonInput\n readOnly\n defaultValue=\"https://app.example.com/i/8f2c\"\n leftIcon={<Link2 />}\n trailingAction={\n <IconButton variant=\"ghost\" aria-label={t('design_system.gallery.sampleCopy.copyLink')}>\n <Copy />\n </IconButton>\n }\n />\n </div>)\n}\n\nfunction ButtonInputInputsSendSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <ButtonInput\n placeholder={t('design_system.gallery.sampleCopy.inviteByEmail')}\n trailingAction={\n <IconButton variant=\"ghost\" aria-label={t('design_system.gallery.sampleCopy.sendInvite')}>\n <Send />\n </IconButton>\n }\n />\n </div>)\n}\n\nfunction TagInputInputsDefaultSample() {\n const t = useT()\n return (<DemoTagInput initial={['wholesale', 'priority', 'eu']} placeholder={t('design_system.gallery.sampleCopy.addTag')} />)\n}\n\nfunction TagInputInputsMaxTagsSample() {\n const t = useT()\n return (<DemoTagInput initial={['red', 'green', 'blue']} maxTags={3} placeholder={t('design_system.gallery.sampleCopy.addTag')} />)\n}\n\nfunction TextareaInputsCharacterCountSample() {\n const t = useT()\n return (<div className=\"w-80\">\n <Textarea\n showCount\n maxLength={200}\n defaultValue={t('design_system.gallery.sampleCopy.customerPrefersDeliveryAfter4PM')}\n />\n </div>)\n}\n\nfunction FormFieldInputsErrorSample() {\n const t = useT()\n return (<div className=\"w-72\">\n <FormField label={t('design_system.gallery.sampleCopy.vatID')} error={t('design_system.gallery.sampleCopy.vatIDMustHave10Digits')}>\n <Input defaultValue=\"52601\" />\n </FormField>\n </div>)\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|