@open-mercato/core 0.7.1-develop.7203.1.9396450b78 → 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,5 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
4
|
+
import { Label } from "@open-mercato/ui/primitives/label";
|
|
3
5
|
import { CreditCard, LayoutGrid, Settings, ShoppingCart, Truck } from "lucide-react";
|
|
4
6
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@open-mercato/ui/primitives/tabs";
|
|
5
7
|
import {
|
|
@@ -22,12 +24,18 @@ import {
|
|
|
22
24
|
AccordionItem,
|
|
23
25
|
AccordionTrigger
|
|
24
26
|
} from "@open-mercato/ui/primitives/accordion";
|
|
25
|
-
|
|
27
|
+
import { SidebarFeatureExample, SidebarIdentityExample, SidebarItemsExample, TopbarExample, NavigationBrandsExample } from "../demos/shell.js";
|
|
28
|
+
import { shellExampleCode } from "../demos/shell-code.generated.js";
|
|
29
|
+
import { AiPromptExample, AiIconButtonExamples, AiNavigationExamples, AiSearchExamples, AiAuthExamples, AiSettingsExamples, AiNewChatExample, AiSidebarExample, AiMobileNavigationExample } from "../demos/ai-product.js";
|
|
30
|
+
import { aiProductExampleCode } from "../demos/ai-product-code.generated.js";
|
|
31
|
+
function PaginationBasicDemo({ appearance, disabled = false }) {
|
|
26
32
|
const [page, setPage] = React.useState(2);
|
|
27
33
|
const [pageSize, setPageSize] = React.useState(25);
|
|
28
34
|
return /* @__PURE__ */ jsx(
|
|
29
35
|
Pagination,
|
|
30
36
|
{
|
|
37
|
+
appearance,
|
|
38
|
+
disabled,
|
|
31
39
|
page,
|
|
32
40
|
pageSize,
|
|
33
41
|
total: 400,
|
|
@@ -50,6 +58,77 @@ function PaginationCompactDemo() {
|
|
|
50
58
|
}
|
|
51
59
|
);
|
|
52
60
|
}
|
|
61
|
+
function TabsQuantityDemo({ variant, orientation }) {
|
|
62
|
+
const t = useT();
|
|
63
|
+
const counts = orientation === "vertical" ? [2, 3, 4, 5, 6, 7, 8] : [2, 3, 4, 5, 6];
|
|
64
|
+
return /* @__PURE__ */ jsx("div", { className: orientation === "vertical" ? "grid w-full gap-6 xl:grid-cols-2" : "flex w-full flex-col gap-6", children: counts.map((count) => /* @__PURE__ */ jsxs(Tabs, { defaultValue: "1", variant, orientation, className: "min-w-0", children: [
|
|
65
|
+
/* @__PURE__ */ jsxs(TabsList, { "aria-label": t("design_system.gallery.examples.navigation2.sections", { count }), className: orientation === "vertical" ? "w-64 shrink-0" : "flex w-full overflow-x-auto", children: [
|
|
66
|
+
orientation === "vertical" && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "px-2 py-1 text-xs font-medium uppercase text-muted-foreground", children: t("design_system.gallery.examples.navigation2.selectMenu") }),
|
|
67
|
+
Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(TabsTrigger, { value: String(index + 1), leading: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-5" }), count: index === 1 ? 12 : void 0, children: t("design_system.gallery.examples.navigation2.section", { number: index + 1 }) }, index))
|
|
68
|
+
] }),
|
|
69
|
+
Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(TabsContent, { value: String(index + 1), className: "text-sm text-muted-foreground", children: t("design_system.gallery.examples.navigation2.panel", { number: index + 1 }) }, index))
|
|
70
|
+
] }, count)) });
|
|
71
|
+
}
|
|
72
|
+
function TabsKeyboardDemo() {
|
|
73
|
+
const t = useT();
|
|
74
|
+
return /* @__PURE__ */ jsxs(Tabs, { defaultValue: "overview", variant: "underline", className: "w-full", children: [
|
|
75
|
+
/* @__PURE__ */ jsxs(TabsList, { "aria-label": t("design_system.gallery.examples.navigation2.keyboard"), children: [
|
|
76
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "overview", leading: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-5" }), children: t("design_system.gallery.examples.navigation2.overview") }),
|
|
77
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "locked", disabled: true, count: 4, children: t("design_system.gallery.examples.navigation2.locked") }),
|
|
78
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "settings", leading: /* @__PURE__ */ jsx(Settings, { className: "size-5" }), children: t("design_system.gallery.examples.navigation2.settings") })
|
|
79
|
+
] }),
|
|
80
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "overview", children: t("design_system.gallery.examples.navigation2.keyboardHint") }),
|
|
81
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "settings", children: t("design_system.gallery.examples.navigation2.settingsPanel") })
|
|
82
|
+
] });
|
|
83
|
+
}
|
|
84
|
+
function BreadcrumbQuantityDemo() {
|
|
85
|
+
const t = useT();
|
|
86
|
+
const targetId = React.useId();
|
|
87
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4", children: [
|
|
88
|
+
["arrow", "slash", "dot"].map((divider) => /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: [3, 4, 5].map((count) => /* @__PURE__ */ jsx(Breadcrumb, { divider, "aria-label": t("design_system.gallery.examples.navigation2.path", { count }), children: /* @__PURE__ */ jsx(BreadcrumbList, { className: "flex-wrap", children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
89
|
+
index > 0 && /* @__PURE__ */ jsx(BreadcrumbSeparator, { className: "size-5 justify-center", children: divider === "dot" ? "\u2022" : void 0 }),
|
|
90
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: index === count - 1 ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: t("design_system.gallery.examples.navigation2.section", { number: index + 1 }) }) : /* @__PURE__ */ jsxs(BreadcrumbLink, { href: `#${targetId}`, children: [
|
|
91
|
+
/* @__PURE__ */ jsx(LayoutGrid, { className: "size-5", "aria-hidden": "true" }),
|
|
92
|
+
t("design_system.gallery.examples.navigation2.section", { number: index + 1 })
|
|
93
|
+
] }) })
|
|
94
|
+
] }, index)) }) }, count)) }, divider)),
|
|
95
|
+
/* @__PURE__ */ jsx("p", { id: targetId, tabIndex: -1, className: "text-sm text-muted-foreground", children: t("design_system.gallery.examples.navigation2.localDestination") })
|
|
96
|
+
] });
|
|
97
|
+
}
|
|
98
|
+
function AccordionStartDemo() {
|
|
99
|
+
const t = useT();
|
|
100
|
+
return /* @__PURE__ */ jsxs(Accordion, { type: "single", collapsible: true, defaultValue: "details", className: "w-full max-w-md space-y-2", children: [
|
|
101
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "overview", children: [
|
|
102
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { iconPosition: "start", children: t("design_system.gallery.examples.navigation2.overview") }),
|
|
103
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.examples.navigation2.accordionBody") })
|
|
104
|
+
] }),
|
|
105
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "details", children: [
|
|
106
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { iconPosition: "start", children: t("design_system.gallery.examples.navigation2.settings") }),
|
|
107
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.examples.navigation2.accordionBody") })
|
|
108
|
+
] }),
|
|
109
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "locked", disabled: true, children: [
|
|
110
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { iconPosition: "start", children: t("design_system.gallery.examples.navigation2.locked") }),
|
|
111
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.examples.navigation2.accordionBody") })
|
|
112
|
+
] })
|
|
113
|
+
] });
|
|
114
|
+
}
|
|
115
|
+
function SegmentedSourceDemo({ content }) {
|
|
116
|
+
const t = useT();
|
|
117
|
+
const labelId = React.useId();
|
|
118
|
+
const [value, setValue] = React.useState("overview");
|
|
119
|
+
const options = [
|
|
120
|
+
{ value: "overview", label: t("design_system.gallery.examples.navigation2.overview"), icon: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-5", "aria-hidden": "true" }) },
|
|
121
|
+
{ value: "settings", label: t("design_system.gallery.examples.navigation2.settings"), icon: /* @__PURE__ */ jsx(Settings, { className: "size-5", "aria-hidden": "true" }) },
|
|
122
|
+
{ value: "orders", label: t("design_system.gallery.examples.navigation2.orders"), icon: /* @__PURE__ */ jsx(ShoppingCart, { className: "size-5", "aria-hidden": "true" }) }
|
|
123
|
+
];
|
|
124
|
+
return /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-sm flex-col gap-6", children: [false, true].map((disabled) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
125
|
+
/* @__PURE__ */ jsx(Label, { id: `${labelId}-${disabled}`, className: "leading-5", children: disabled ? t("design_system.gallery.examples.navigation2.locked") : t("design_system.gallery.examples.navigation2.selectMenu") }),
|
|
126
|
+
/* @__PURE__ */ jsx(SegmentedControl, { value, onValueChange: setValue, disabled, "aria-labelledby": `${labelId}-${disabled}`, className: "h-9 w-full gap-1 rounded-lg border-0 p-1", children: options.map((option) => /* @__PURE__ */ jsxs(SegmentedControlItem, { value: option.value, "aria-label": content === "icon" ? option.label : void 0, className: "h-7 min-w-0 flex-1 gap-1.5 rounded-md p-1", children: [
|
|
127
|
+
content !== "text" && option.icon,
|
|
128
|
+
content !== "icon" && option.label
|
|
129
|
+
] }, option.value)) })
|
|
130
|
+
] }, String(disabled))) });
|
|
131
|
+
}
|
|
53
132
|
const tabsEntry = {
|
|
54
133
|
id: "tabs",
|
|
55
134
|
title: "Tabs",
|
|
@@ -69,16 +148,7 @@ const tabsEntry = {
|
|
|
69
148
|
title: "underline",
|
|
70
149
|
// Underline is the DS canon for page-level tab strips — flat rail
|
|
71
150
|
// with an accent underline, per-tab `leading` icon and `count` badge.
|
|
72
|
-
render: () => /* @__PURE__ */
|
|
73
|
-
/* @__PURE__ */ jsxs(TabsList, { "aria-label": "Customer sections", children: [
|
|
74
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "overview", leading: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-4" }), children: "Overview" }),
|
|
75
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "orders", leading: /* @__PURE__ */ jsx(ShoppingCart, { className: "size-4" }), count: 12, children: "Orders" }),
|
|
76
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "settings", leading: /* @__PURE__ */ jsx(Settings, { className: "size-4" }), children: "Settings" })
|
|
77
|
-
] }),
|
|
78
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "overview", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Customer overview panel." }) }),
|
|
79
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "orders", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "12 orders in the last 30 days." }) }),
|
|
80
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "settings", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Notification and access settings." }) })
|
|
81
|
-
] }),
|
|
151
|
+
render: () => /* @__PURE__ */ jsx(TabsNavigationUnderlineSample, {}),
|
|
82
152
|
code: `import { LayoutGrid, Settings, ShoppingCart } from 'lucide-react'
|
|
83
153
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
84
154
|
|
|
@@ -96,16 +166,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primi
|
|
|
96
166
|
{
|
|
97
167
|
id: "pill",
|
|
98
168
|
title: "pill (default)",
|
|
99
|
-
render: () => /* @__PURE__ */
|
|
100
|
-
/* @__PURE__ */ jsxs(TabsList, { "aria-label": "Editor view", children: [
|
|
101
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "preview", children: "Preview" }),
|
|
102
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "code", children: "Code" }),
|
|
103
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "logs", children: "Logs" })
|
|
104
|
-
] }),
|
|
105
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "preview", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Rendered preview." }) }),
|
|
106
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "code", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Source code panel." }) }),
|
|
107
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "logs", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Runtime logs panel." }) })
|
|
108
|
-
] }),
|
|
169
|
+
render: () => /* @__PURE__ */ jsx(TabsNavigationPillSample, {}),
|
|
109
170
|
code: `import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
110
171
|
|
|
111
172
|
<Tabs defaultValue="preview">
|
|
@@ -122,16 +183,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primi
|
|
|
122
183
|
{
|
|
123
184
|
id: "pill-vertical",
|
|
124
185
|
title: "pill, vertical",
|
|
125
|
-
render: () => /* @__PURE__ */
|
|
126
|
-
/* @__PURE__ */ jsxs(TabsList, { "aria-label": "Account settings", children: [
|
|
127
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "profile", children: "Profile" }),
|
|
128
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "billing", children: "Billing" }),
|
|
129
|
-
/* @__PURE__ */ jsx(TabsTrigger, { value: "security", children: "Security" })
|
|
130
|
-
] }),
|
|
131
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "profile", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Profile settings panel." }) }),
|
|
132
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "billing", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Billing settings panel." }) }),
|
|
133
|
-
/* @__PURE__ */ jsx(TabsContent, { value: "security", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Security settings panel." }) })
|
|
134
|
-
] }),
|
|
186
|
+
render: () => /* @__PURE__ */ jsx(TabsNavigationPillVerticalSample, {}),
|
|
135
187
|
code: `import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
136
188
|
|
|
137
189
|
<Tabs defaultValue="profile" orientation="vertical">
|
|
@@ -144,11 +196,123 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primi
|
|
|
144
196
|
<TabsContent value="billing">\u2026</TabsContent>
|
|
145
197
|
<TabsContent value="security">\u2026</TabsContent>
|
|
146
198
|
</Tabs>`
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: "underline-quantities",
|
|
202
|
+
title: "underline \xB7 all source counts",
|
|
203
|
+
render: () => /* @__PURE__ */ jsx(TabsQuantityDemo, { variant: "underline", orientation: "horizontal" }),
|
|
204
|
+
code: `import * as React from 'react'
|
|
205
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
206
|
+
import { LayoutGrid, Settings } from 'lucide-react'
|
|
207
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@open-mercato/ui/primitives/tabs'
|
|
208
|
+
|
|
209
|
+
function TabsQuantityDemo({ variant, orientation }: { variant: 'underline' | 'card' | 'list'; orientation: 'horizontal' | 'vertical' }) {
|
|
210
|
+
const t = useT()
|
|
211
|
+
const counts = orientation === 'vertical' ? [2, 3, 4, 5, 6, 7, 8] : [2, 3, 4, 5, 6]
|
|
212
|
+
return <div className={orientation === 'vertical' ? 'grid w-full gap-6 xl:grid-cols-2' : 'flex w-full flex-col gap-6'}>
|
|
213
|
+
{counts.map(count => <Tabs key={count} defaultValue="1" variant={variant} orientation={orientation} className="min-w-0">
|
|
214
|
+
<TabsList aria-label={t('design_system.gallery.examples.navigation2.sections', { count })} className={orientation === 'vertical' ? 'w-64 shrink-0' : 'flex w-full overflow-x-auto'}>
|
|
215
|
+
{orientation === 'vertical' && <span aria-hidden="true" className="px-2 py-1 text-xs font-medium uppercase text-muted-foreground">{t('design_system.gallery.examples.navigation2.selectMenu')}</span>}
|
|
216
|
+
{Array.from({ length: count }, (_, index) => <TabsTrigger key={index} value={String(index + 1)} leading={<LayoutGrid className="size-5" />} count={index === 1 ? 12 : undefined}>
|
|
217
|
+
{t('design_system.gallery.examples.navigation2.section', { number: index + 1 })}
|
|
218
|
+
</TabsTrigger>)}
|
|
219
|
+
</TabsList>
|
|
220
|
+
{Array.from({ length: count }, (_, index) => <TabsContent key={index} value={String(index + 1)} className="text-sm text-muted-foreground">
|
|
221
|
+
{t('design_system.gallery.examples.navigation2.panel', { number: index + 1 })}
|
|
222
|
+
</TabsContent>)}
|
|
223
|
+
</Tabs>)}
|
|
224
|
+
</div>
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
<TabsQuantityDemo variant="underline" orientation="horizontal" />`
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: "card-quantities",
|
|
231
|
+
title: "card \xB7 all source counts",
|
|
232
|
+
render: () => /* @__PURE__ */ jsx(TabsQuantityDemo, { variant: "card", orientation: "vertical" }),
|
|
233
|
+
code: `import * as React from 'react'
|
|
234
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
235
|
+
import { LayoutGrid, Settings } from 'lucide-react'
|
|
236
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@open-mercato/ui/primitives/tabs'
|
|
237
|
+
|
|
238
|
+
function TabsQuantityDemo({ variant, orientation }: { variant: 'underline' | 'card' | 'list'; orientation: 'horizontal' | 'vertical' }) {
|
|
239
|
+
const t = useT()
|
|
240
|
+
const counts = orientation === 'vertical' ? [2, 3, 4, 5, 6, 7, 8] : [2, 3, 4, 5, 6]
|
|
241
|
+
return <div className={orientation === 'vertical' ? 'grid w-full gap-6 xl:grid-cols-2' : 'flex w-full flex-col gap-6'}>
|
|
242
|
+
{counts.map(count => <Tabs key={count} defaultValue="1" variant={variant} orientation={orientation} className="min-w-0">
|
|
243
|
+
<TabsList aria-label={t('design_system.gallery.examples.navigation2.sections', { count })} className={orientation === 'vertical' ? 'w-64 shrink-0' : 'flex w-full overflow-x-auto'}>
|
|
244
|
+
{orientation === 'vertical' && <span aria-hidden="true" className="px-2 py-1 text-xs font-medium uppercase text-muted-foreground">{t('design_system.gallery.examples.navigation2.selectMenu')}</span>}
|
|
245
|
+
{Array.from({ length: count }, (_, index) => <TabsTrigger key={index} value={String(index + 1)} leading={<LayoutGrid className="size-5" />} count={index === 1 ? 12 : undefined}>
|
|
246
|
+
{t('design_system.gallery.examples.navigation2.section', { number: index + 1 })}
|
|
247
|
+
</TabsTrigger>)}
|
|
248
|
+
</TabsList>
|
|
249
|
+
{Array.from({ length: count }, (_, index) => <TabsContent key={index} value={String(index + 1)} className="text-sm text-muted-foreground">
|
|
250
|
+
{t('design_system.gallery.examples.navigation2.panel', { number: index + 1 })}
|
|
251
|
+
</TabsContent>)}
|
|
252
|
+
</Tabs>)}
|
|
253
|
+
</div>
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
<TabsQuantityDemo variant="card" orientation="vertical" />`
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: "list-quantities",
|
|
260
|
+
title: "list \xB7 all source counts",
|
|
261
|
+
render: () => /* @__PURE__ */ jsx(TabsQuantityDemo, { variant: "list", orientation: "vertical" }),
|
|
262
|
+
code: `import * as React from 'react'
|
|
263
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
264
|
+
import { LayoutGrid, Settings } from 'lucide-react'
|
|
265
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@open-mercato/ui/primitives/tabs'
|
|
266
|
+
|
|
267
|
+
function TabsQuantityDemo({ variant, orientation }: { variant: 'underline' | 'card' | 'list'; orientation: 'horizontal' | 'vertical' }) {
|
|
268
|
+
const t = useT()
|
|
269
|
+
const counts = orientation === 'vertical' ? [2, 3, 4, 5, 6, 7, 8] : [2, 3, 4, 5, 6]
|
|
270
|
+
return <div className={orientation === 'vertical' ? 'grid w-full gap-6 xl:grid-cols-2' : 'flex w-full flex-col gap-6'}>
|
|
271
|
+
{counts.map(count => <Tabs key={count} defaultValue="1" variant={variant} orientation={orientation} className="min-w-0">
|
|
272
|
+
<TabsList aria-label={t('design_system.gallery.examples.navigation2.sections', { count })} className={orientation === 'vertical' ? 'w-64 shrink-0' : 'flex w-full overflow-x-auto'}>
|
|
273
|
+
{orientation === 'vertical' && <span aria-hidden="true" className="px-2 py-1 text-xs font-medium uppercase text-muted-foreground">{t('design_system.gallery.examples.navigation2.selectMenu')}</span>}
|
|
274
|
+
{Array.from({ length: count }, (_, index) => <TabsTrigger key={index} value={String(index + 1)} leading={<LayoutGrid className="size-5" />} count={index === 1 ? 12 : undefined}>
|
|
275
|
+
{t('design_system.gallery.examples.navigation2.section', { number: index + 1 })}
|
|
276
|
+
</TabsTrigger>)}
|
|
277
|
+
</TabsList>
|
|
278
|
+
{Array.from({ length: count }, (_, index) => <TabsContent key={index} value={String(index + 1)} className="text-sm text-muted-foreground">
|
|
279
|
+
{t('design_system.gallery.examples.navigation2.panel', { number: index + 1 })}
|
|
280
|
+
</TabsContent>)}
|
|
281
|
+
</Tabs>)}
|
|
282
|
+
</div>
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
<TabsQuantityDemo variant="list" orientation="vertical" />`
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
id: "keyboard-states",
|
|
289
|
+
title: "Keyboard and disabled tabs",
|
|
290
|
+
render: () => /* @__PURE__ */ jsx(TabsKeyboardDemo, {}),
|
|
291
|
+
code: `import * as React from 'react'
|
|
292
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
293
|
+
import { LayoutGrid, Settings } from 'lucide-react'
|
|
294
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@open-mercato/ui/primitives/tabs'
|
|
295
|
+
|
|
296
|
+
function TabsKeyboardDemo() {
|
|
297
|
+
const t = useT()
|
|
298
|
+
return <Tabs defaultValue="overview" variant="underline" className="w-full">
|
|
299
|
+
<TabsList aria-label={t('design_system.gallery.examples.navigation2.keyboard')}>
|
|
300
|
+
<TabsTrigger value="overview" leading={<LayoutGrid className="size-5" />}>{t('design_system.gallery.examples.navigation2.overview')}</TabsTrigger>
|
|
301
|
+
<TabsTrigger value="locked" disabled count={4}>{t('design_system.gallery.examples.navigation2.locked')}</TabsTrigger>
|
|
302
|
+
<TabsTrigger value="settings" leading={<Settings className="size-5" />}>{t('design_system.gallery.examples.navigation2.settings')}</TabsTrigger>
|
|
303
|
+
</TabsList>
|
|
304
|
+
<TabsContent value="overview">{t('design_system.gallery.examples.navigation2.keyboardHint')}</TabsContent>
|
|
305
|
+
<TabsContent value="settings">{t('design_system.gallery.examples.navigation2.settingsPanel')}</TabsContent>
|
|
306
|
+
</Tabs>
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
<TabsKeyboardDemo />`
|
|
147
310
|
}
|
|
148
311
|
]
|
|
149
312
|
};
|
|
150
313
|
const breadcrumbEntry = {
|
|
151
314
|
id: "breadcrumb",
|
|
315
|
+
figmaNodeId: "447:8832",
|
|
152
316
|
title: "Breadcrumb",
|
|
153
317
|
importPath: "@open-mercato/ui/primitives/breadcrumb",
|
|
154
318
|
docsAnchor: "#breadcrumb",
|
|
@@ -156,13 +320,7 @@ const breadcrumbEntry = {
|
|
|
156
320
|
{
|
|
157
321
|
id: "slash",
|
|
158
322
|
title: "slash (default)",
|
|
159
|
-
render: () => /* @__PURE__ */ jsx(
|
|
160
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "Dashboard" }) }),
|
|
161
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
162
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "Products" }) }),
|
|
163
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
164
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: "Winter catalog" }) })
|
|
165
|
-
] }) }),
|
|
323
|
+
render: () => /* @__PURE__ */ jsx(BreadcrumbNavigationSlashSample, {}),
|
|
166
324
|
code: `import {
|
|
167
325
|
Breadcrumb,
|
|
168
326
|
BreadcrumbItem,
|
|
@@ -191,13 +349,7 @@ const breadcrumbEntry = {
|
|
|
191
349
|
{
|
|
192
350
|
id: "arrow",
|
|
193
351
|
title: "arrow divider",
|
|
194
|
-
render: () => /* @__PURE__ */ jsx(
|
|
195
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "Orders" }) }),
|
|
196
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
197
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "#20418" }) }),
|
|
198
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
199
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: "Shipment" }) })
|
|
200
|
-
] }) }),
|
|
352
|
+
render: () => /* @__PURE__ */ jsx(BreadcrumbNavigationArrowSample, {}),
|
|
201
353
|
code: `import {
|
|
202
354
|
Breadcrumb,
|
|
203
355
|
BreadcrumbItem,
|
|
@@ -226,15 +378,7 @@ const breadcrumbEntry = {
|
|
|
226
378
|
{
|
|
227
379
|
id: "ellipsis",
|
|
228
380
|
title: "collapsed (ellipsis)",
|
|
229
|
-
render: () => /* @__PURE__ */ jsx(
|
|
230
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "Dashboard" }) }),
|
|
231
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
232
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbEllipsis, {}) }),
|
|
233
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
234
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "Attributes" }) }),
|
|
235
|
-
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
236
|
-
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: "Color" }) })
|
|
237
|
-
] }) }),
|
|
381
|
+
render: () => /* @__PURE__ */ jsx(BreadcrumbNavigationEllipsisSample, {}),
|
|
238
382
|
code: `import {
|
|
239
383
|
Breadcrumb,
|
|
240
384
|
BreadcrumbEllipsis,
|
|
@@ -264,6 +408,39 @@ const breadcrumbEntry = {
|
|
|
264
408
|
</BreadcrumbItem>
|
|
265
409
|
</BreadcrumbList>
|
|
266
410
|
</Breadcrumb>`
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
id: "dividers-quantities",
|
|
414
|
+
title: "Arrow / Slash / Dot \xB73,4,5items",
|
|
415
|
+
render: () => /* @__PURE__ */ jsx(BreadcrumbQuantityDemo, {}),
|
|
416
|
+
code: `import * as React from 'react'
|
|
417
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
418
|
+
import { LayoutGrid } from 'lucide-react'
|
|
419
|
+
import { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbSeparator, BreadcrumbLink, BreadcrumbPage } from '@open-mercato/ui/primitives/breadcrumb'
|
|
420
|
+
|
|
421
|
+
function BreadcrumbQuantityDemo() {
|
|
422
|
+
const t = useT()
|
|
423
|
+
const targetId = React.useId()
|
|
424
|
+
return <div className="flex w-full flex-col gap-4">
|
|
425
|
+
{(['arrow', 'slash', 'dot'] as const).map(divider => <div key={divider} className="flex flex-col gap-4">
|
|
426
|
+
{[3, 4, 5].map(count => <Breadcrumb key={count} divider={divider} aria-label={t('design_system.gallery.examples.navigation2.path', { count })}>
|
|
427
|
+
<BreadcrumbList className="flex-wrap">
|
|
428
|
+
{Array.from({ length: count }, (_, index) => <React.Fragment key={index}>
|
|
429
|
+
{index > 0 && <BreadcrumbSeparator className="size-5 justify-center">{divider === 'dot' ? '\u2022' : undefined}</BreadcrumbSeparator>}
|
|
430
|
+
<BreadcrumbItem>
|
|
431
|
+
{index === count - 1
|
|
432
|
+
? <BreadcrumbPage>{t('design_system.gallery.examples.navigation2.section', { number: index + 1 })}</BreadcrumbPage>
|
|
433
|
+
: <BreadcrumbLink href={\`#\${targetId}\`}><LayoutGrid className="size-5" aria-hidden="true" />{t('design_system.gallery.examples.navigation2.section', { number: index + 1 })}</BreadcrumbLink>}
|
|
434
|
+
</BreadcrumbItem>
|
|
435
|
+
</React.Fragment>)}
|
|
436
|
+
</BreadcrumbList>
|
|
437
|
+
</Breadcrumb>)}
|
|
438
|
+
</div>)}
|
|
439
|
+
<p id={targetId} tabIndex={-1} className="text-sm text-muted-foreground">{t('design_system.gallery.examples.navigation2.localDestination')}</p>
|
|
440
|
+
</div>
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
<BreadcrumbQuantityDemo />`
|
|
267
444
|
}
|
|
268
445
|
]
|
|
269
446
|
};
|
|
@@ -272,6 +449,7 @@ const paginationEntry = {
|
|
|
272
449
|
title: "Pagination",
|
|
273
450
|
importPath: "@open-mercato/ui/primitives/pagination",
|
|
274
451
|
docsAnchor: "#pagination",
|
|
452
|
+
figmaNodeId: "513:3892",
|
|
275
453
|
variants: [
|
|
276
454
|
{
|
|
277
455
|
id: "basic",
|
|
@@ -307,12 +485,90 @@ const [page, setPage] = React.useState(1)
|
|
|
307
485
|
onPageChange={setPage}
|
|
308
486
|
showFirstLast={false}
|
|
309
487
|
showPageSize={false}
|
|
488
|
+
/>`
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
id: "source-basic",
|
|
492
|
+
title: "Basic cells",
|
|
493
|
+
render: () => /* @__PURE__ */ jsx(PaginationBasicDemo, { appearance: "basic" }),
|
|
494
|
+
code: `import * as React from 'react'
|
|
495
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
496
|
+
|
|
497
|
+
const [page, setPage] = React.useState(2)
|
|
498
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
499
|
+
|
|
500
|
+
<Pagination
|
|
501
|
+
appearance="basic"
|
|
502
|
+
page={page}
|
|
503
|
+
pageSize={pageSize}
|
|
504
|
+
total={400}
|
|
505
|
+
onPageChange={setPage}
|
|
506
|
+
onPageSizeChange={setPageSize}
|
|
507
|
+
/>`
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
id: "circle",
|
|
511
|
+
title: "Full radius",
|
|
512
|
+
render: () => /* @__PURE__ */ jsx(PaginationBasicDemo, { appearance: "circle" }),
|
|
513
|
+
code: `import * as React from 'react'
|
|
514
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
515
|
+
|
|
516
|
+
const [page, setPage] = React.useState(2)
|
|
517
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
518
|
+
|
|
519
|
+
<Pagination
|
|
520
|
+
appearance="circle"
|
|
521
|
+
page={page}
|
|
522
|
+
pageSize={pageSize}
|
|
523
|
+
total={400}
|
|
524
|
+
onPageChange={setPage}
|
|
525
|
+
onPageSizeChange={setPageSize}
|
|
526
|
+
/>`
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
id: "group",
|
|
530
|
+
title: "Connected group",
|
|
531
|
+
render: () => /* @__PURE__ */ jsx(PaginationBasicDemo, { appearance: "group" }),
|
|
532
|
+
code: `import * as React from 'react'
|
|
533
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
534
|
+
|
|
535
|
+
const [page, setPage] = React.useState(2)
|
|
536
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
537
|
+
|
|
538
|
+
<Pagination
|
|
539
|
+
appearance="group"
|
|
540
|
+
page={page}
|
|
541
|
+
pageSize={pageSize}
|
|
542
|
+
total={400}
|
|
543
|
+
onPageChange={setPage}
|
|
544
|
+
onPageSizeChange={setPageSize}
|
|
545
|
+
/>`
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
id: "disabled",
|
|
549
|
+
title: "Disabled states",
|
|
550
|
+
render: () => /* @__PURE__ */ jsx(PaginationBasicDemo, { appearance: "circle", disabled: true }),
|
|
551
|
+
code: `import * as React from 'react'
|
|
552
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
553
|
+
|
|
554
|
+
const [page, setPage] = React.useState(2)
|
|
555
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
556
|
+
|
|
557
|
+
<Pagination
|
|
558
|
+
appearance="circle"
|
|
559
|
+
page={page}
|
|
560
|
+
pageSize={pageSize}
|
|
561
|
+
total={400}
|
|
562
|
+
onPageChange={setPage}
|
|
563
|
+
onPageSizeChange={setPageSize}
|
|
564
|
+
disabled
|
|
310
565
|
/>`
|
|
311
566
|
}
|
|
312
567
|
]
|
|
313
568
|
};
|
|
314
569
|
const segmentedControlEntry = {
|
|
315
570
|
id: "segmented-control",
|
|
571
|
+
figmaNodeId: "2604:114",
|
|
316
572
|
title: "SegmentedControl",
|
|
317
573
|
importPath: "@open-mercato/ui/primitives/segmented-control",
|
|
318
574
|
docsAnchor: "#segmentedcontrol",
|
|
@@ -320,11 +576,7 @@ const segmentedControlEntry = {
|
|
|
320
576
|
{
|
|
321
577
|
id: "default",
|
|
322
578
|
title: "default",
|
|
323
|
-
render: () => /* @__PURE__ */
|
|
324
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "all", children: "All" }),
|
|
325
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "active", children: "Active" }),
|
|
326
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "archived", children: "Archived" })
|
|
327
|
-
] }),
|
|
579
|
+
render: () => /* @__PURE__ */ jsx(SegmentedControlNavigationDefaultSample, {}),
|
|
328
580
|
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
329
581
|
|
|
330
582
|
<SegmentedControl defaultValue="all" aria-label="View filter">
|
|
@@ -336,12 +588,7 @@ const segmentedControlEntry = {
|
|
|
336
588
|
{
|
|
337
589
|
id: "small",
|
|
338
590
|
title: "Small",
|
|
339
|
-
render: () => /* @__PURE__ */
|
|
340
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "7d", children: "7d" }),
|
|
341
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "30d", children: "30d" }),
|
|
342
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "90d", children: "90d" }),
|
|
343
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "1y", children: "1y" })
|
|
344
|
-
] }),
|
|
591
|
+
render: () => /* @__PURE__ */ jsx(SegmentedControlNavigationSmallSample, {}),
|
|
345
592
|
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
346
593
|
|
|
347
594
|
<SegmentedControl size="sm" defaultValue="30d" aria-label="Chart period">
|
|
@@ -354,21 +601,121 @@ const segmentedControlEntry = {
|
|
|
354
601
|
{
|
|
355
602
|
id: "disabled",
|
|
356
603
|
title: "Disabled",
|
|
357
|
-
render: () => /* @__PURE__ */
|
|
358
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "list", children: "List" }),
|
|
359
|
-
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "grid", children: "Grid" })
|
|
360
|
-
] }),
|
|
604
|
+
render: () => /* @__PURE__ */ jsx(SegmentedControlNavigationDisabledSample, {}),
|
|
361
605
|
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
362
606
|
|
|
363
607
|
<SegmentedControl defaultValue="list" disabled aria-label="Layout">
|
|
364
608
|
<SegmentedControlItem value="list">List</SegmentedControlItem>
|
|
365
609
|
<SegmentedControlItem value="grid">Grid</SegmentedControlItem>
|
|
366
610
|
</SegmentedControl>`
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
id: "source-text",
|
|
614
|
+
title: "Label shell \xB7 text",
|
|
615
|
+
render: () => /* @__PURE__ */ jsx(SegmentedSourceDemo, { content: "text" }),
|
|
616
|
+
code: `import * as React from 'react'
|
|
617
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
618
|
+
import { LayoutGrid, Settings, ShoppingCart } from 'lucide-react'
|
|
619
|
+
import { Label } from '@open-mercato/ui/primitives/label'
|
|
620
|
+
import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
621
|
+
|
|
622
|
+
function SegmentedSourceDemo({ content }: { content: 'text' | 'leading' | 'icon' }) {
|
|
623
|
+
const t = useT()
|
|
624
|
+
const labelId = React.useId()
|
|
625
|
+
const [value, setValue] = React.useState('overview')
|
|
626
|
+
const options = [
|
|
627
|
+
{ value: 'overview', label: t('design_system.gallery.examples.navigation2.overview'), icon: <LayoutGrid className="size-5" aria-hidden="true" /> },
|
|
628
|
+
{ value: 'settings', label: t('design_system.gallery.examples.navigation2.settings'), icon: <Settings className="size-5" aria-hidden="true" /> },
|
|
629
|
+
{ value: 'orders', label: t('design_system.gallery.examples.navigation2.orders'), icon: <ShoppingCart className="size-5" aria-hidden="true" /> },
|
|
630
|
+
]
|
|
631
|
+
return <div className="flex w-full max-w-sm flex-col gap-6">
|
|
632
|
+
{[false, true].map(disabled => <div key={String(disabled)} className="flex flex-col gap-1.5">
|
|
633
|
+
<Label id={\`\${labelId}-\${disabled}\`} className="leading-5">{disabled ? t('design_system.gallery.examples.navigation2.locked') : t('design_system.gallery.examples.navigation2.selectMenu')}</Label>
|
|
634
|
+
<SegmentedControl value={value} onValueChange={setValue} disabled={disabled} aria-labelledby={\`\${labelId}-\${disabled}\`} className="h-9 w-full gap-1 rounded-lg border-0 p-1">
|
|
635
|
+
{options.map(option => <SegmentedControlItem key={option.value} value={option.value} aria-label={content === 'icon' ? option.label : undefined} className="h-7 min-w-0 flex-1 gap-1.5 rounded-md p-1">
|
|
636
|
+
{content !== 'text' && option.icon}
|
|
637
|
+
{content !== 'icon' && option.label}
|
|
638
|
+
</SegmentedControlItem>)}
|
|
639
|
+
</SegmentedControl>
|
|
640
|
+
</div>)}
|
|
641
|
+
</div>
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
<SegmentedSourceDemo content="text" />`
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
id: "source-leading",
|
|
648
|
+
title: "Label shell \xB7 leading",
|
|
649
|
+
render: () => /* @__PURE__ */ jsx(SegmentedSourceDemo, { content: "leading" }),
|
|
650
|
+
code: `import * as React from 'react'
|
|
651
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
652
|
+
import { LayoutGrid, Settings, ShoppingCart } from 'lucide-react'
|
|
653
|
+
import { Label } from '@open-mercato/ui/primitives/label'
|
|
654
|
+
import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
655
|
+
|
|
656
|
+
function SegmentedSourceDemo({ content }: { content: 'text' | 'leading' | 'icon' }) {
|
|
657
|
+
const t = useT()
|
|
658
|
+
const labelId = React.useId()
|
|
659
|
+
const [value, setValue] = React.useState('overview')
|
|
660
|
+
const options = [
|
|
661
|
+
{ value: 'overview', label: t('design_system.gallery.examples.navigation2.overview'), icon: <LayoutGrid className="size-5" aria-hidden="true" /> },
|
|
662
|
+
{ value: 'settings', label: t('design_system.gallery.examples.navigation2.settings'), icon: <Settings className="size-5" aria-hidden="true" /> },
|
|
663
|
+
{ value: 'orders', label: t('design_system.gallery.examples.navigation2.orders'), icon: <ShoppingCart className="size-5" aria-hidden="true" /> },
|
|
664
|
+
]
|
|
665
|
+
return <div className="flex w-full max-w-sm flex-col gap-6">
|
|
666
|
+
{[false, true].map(disabled => <div key={String(disabled)} className="flex flex-col gap-1.5">
|
|
667
|
+
<Label id={\`\${labelId}-\${disabled}\`} className="leading-5">{disabled ? t('design_system.gallery.examples.navigation2.locked') : t('design_system.gallery.examples.navigation2.selectMenu')}</Label>
|
|
668
|
+
<SegmentedControl value={value} onValueChange={setValue} disabled={disabled} aria-labelledby={\`\${labelId}-\${disabled}\`} className="h-9 w-full gap-1 rounded-lg border-0 p-1">
|
|
669
|
+
{options.map(option => <SegmentedControlItem key={option.value} value={option.value} aria-label={content === 'icon' ? option.label : undefined} className="h-7 min-w-0 flex-1 gap-1.5 rounded-md p-1">
|
|
670
|
+
{content !== 'text' && option.icon}
|
|
671
|
+
{content !== 'icon' && option.label}
|
|
672
|
+
</SegmentedControlItem>)}
|
|
673
|
+
</SegmentedControl>
|
|
674
|
+
</div>)}
|
|
675
|
+
</div>
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
<SegmentedSourceDemo content="leading" />`
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
id: "source-icon",
|
|
682
|
+
title: "Label shell \xB7 icon",
|
|
683
|
+
render: () => /* @__PURE__ */ jsx(SegmentedSourceDemo, { content: "icon" }),
|
|
684
|
+
code: `import * as React from 'react'
|
|
685
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
686
|
+
import { LayoutGrid, Settings, ShoppingCart } from 'lucide-react'
|
|
687
|
+
import { Label } from '@open-mercato/ui/primitives/label'
|
|
688
|
+
import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
689
|
+
|
|
690
|
+
function SegmentedSourceDemo({ content }: { content: 'text' | 'leading' | 'icon' }) {
|
|
691
|
+
const t = useT()
|
|
692
|
+
const labelId = React.useId()
|
|
693
|
+
const [value, setValue] = React.useState('overview')
|
|
694
|
+
const options = [
|
|
695
|
+
{ value: 'overview', label: t('design_system.gallery.examples.navigation2.overview'), icon: <LayoutGrid className="size-5" aria-hidden="true" /> },
|
|
696
|
+
{ value: 'settings', label: t('design_system.gallery.examples.navigation2.settings'), icon: <Settings className="size-5" aria-hidden="true" /> },
|
|
697
|
+
{ value: 'orders', label: t('design_system.gallery.examples.navigation2.orders'), icon: <ShoppingCart className="size-5" aria-hidden="true" /> },
|
|
698
|
+
]
|
|
699
|
+
return <div className="flex w-full max-w-sm flex-col gap-6">
|
|
700
|
+
{[false, true].map(disabled => <div key={String(disabled)} className="flex flex-col gap-1.5">
|
|
701
|
+
<Label id={\`\${labelId}-\${disabled}\`} className="leading-5">{disabled ? t('design_system.gallery.examples.navigation2.locked') : t('design_system.gallery.examples.navigation2.selectMenu')}</Label>
|
|
702
|
+
<SegmentedControl value={value} onValueChange={setValue} disabled={disabled} aria-labelledby={\`\${labelId}-\${disabled}\`} className="h-9 w-full gap-1 rounded-lg border-0 p-1">
|
|
703
|
+
{options.map(option => <SegmentedControlItem key={option.value} value={option.value} aria-label={content === 'icon' ? option.label : undefined} className="h-7 min-w-0 flex-1 gap-1.5 rounded-md p-1">
|
|
704
|
+
{content !== 'text' && option.icon}
|
|
705
|
+
{content !== 'icon' && option.label}
|
|
706
|
+
</SegmentedControlItem>)}
|
|
707
|
+
</SegmentedControl>
|
|
708
|
+
</div>)}
|
|
709
|
+
</div>
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
<SegmentedSourceDemo content="icon" />`
|
|
367
713
|
}
|
|
368
714
|
]
|
|
369
715
|
};
|
|
370
716
|
const accordionEntry = {
|
|
371
717
|
id: "accordion",
|
|
718
|
+
figmaNodeId: "210:4022",
|
|
372
719
|
title: "Accordion",
|
|
373
720
|
importPath: "@open-mercato/ui/primitives/accordion",
|
|
374
721
|
docsAnchor: "#accordion",
|
|
@@ -376,20 +723,7 @@ const accordionEntry = {
|
|
|
376
723
|
{
|
|
377
724
|
id: "card",
|
|
378
725
|
title: "card (default)",
|
|
379
|
-
render: () => /* @__PURE__ */
|
|
380
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "shipping", children: [
|
|
381
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { children: "Shipping and delivery" }),
|
|
382
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Orders placed before 2 PM ship the same business day from the nearest warehouse." })
|
|
383
|
-
] }),
|
|
384
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "returns", children: [
|
|
385
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { children: "Returns" }),
|
|
386
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Items can be returned within 30 days of delivery in their original packaging." })
|
|
387
|
-
] }),
|
|
388
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "payments", children: [
|
|
389
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { children: "Payment methods" }),
|
|
390
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "We accept cards, bank transfer, and deferred payment for verified B2B accounts." })
|
|
391
|
-
] })
|
|
392
|
-
] }),
|
|
726
|
+
render: () => /* @__PURE__ */ jsx(AccordionNavigationCardSample, {}),
|
|
393
727
|
code: `import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
394
728
|
|
|
395
729
|
<Accordion type="single" collapsible defaultValue="shipping" className="w-full space-y-2">
|
|
@@ -410,16 +744,7 @@ const accordionEntry = {
|
|
|
410
744
|
{
|
|
411
745
|
id: "left-icon",
|
|
412
746
|
title: "With leftIcon",
|
|
413
|
-
render: () => /* @__PURE__ */
|
|
414
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "shipping", children: [
|
|
415
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { leftIcon: /* @__PURE__ */ jsx(Truck, {}), children: "How fast is shipping?" }),
|
|
416
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Same-day dispatch on weekdays; delivery typically takes 1\u20133 business days." })
|
|
417
|
-
] }),
|
|
418
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "billing", children: [
|
|
419
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { leftIcon: /* @__PURE__ */ jsx(CreditCard, {}), children: "When am I charged?" }),
|
|
420
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Your card is charged when the order ships, never at checkout." })
|
|
421
|
-
] })
|
|
422
|
-
] }),
|
|
747
|
+
render: () => /* @__PURE__ */ jsx(AccordionNavigationLeftIconSample, {}),
|
|
423
748
|
code: `import { CreditCard, Truck } from 'lucide-react'
|
|
424
749
|
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
425
750
|
|
|
@@ -437,16 +762,7 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@o
|
|
|
437
762
|
{
|
|
438
763
|
id: "chevron",
|
|
439
764
|
title: "Chevron indicator",
|
|
440
|
-
render: () => /* @__PURE__ */
|
|
441
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "general", children: [
|
|
442
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { triggerIcon: "chevron", children: "General" }),
|
|
443
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Store name, contact details, and default locale for the storefront." })
|
|
444
|
-
] }),
|
|
445
|
-
/* @__PURE__ */ jsxs(AccordionItem, { value: "advanced", children: [
|
|
446
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { triggerIcon: "chevron", children: "Advanced" }),
|
|
447
|
-
/* @__PURE__ */ jsx(AccordionContent, { children: "Webhooks, API keys, and other developer-facing configuration." })
|
|
448
|
-
] })
|
|
449
|
-
] }),
|
|
765
|
+
render: () => /* @__PURE__ */ jsx(AccordionNavigationChevronSample, {}),
|
|
450
766
|
code: `import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
451
767
|
|
|
452
768
|
<Accordion type="multiple" className="w-full space-y-2">
|
|
@@ -459,16 +775,273 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@o
|
|
|
459
775
|
<AccordionContent>Webhooks, API keys, and developer configuration.</AccordionContent>
|
|
460
776
|
</AccordionItem>
|
|
461
777
|
</Accordion>`
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
id: "indicator-start",
|
|
781
|
+
title: "Indicator at start \xB7 closed/open/disabled",
|
|
782
|
+
render: () => /* @__PURE__ */ jsx(AccordionStartDemo, {}),
|
|
783
|
+
code: `import * as React from 'react'
|
|
784
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
785
|
+
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from '@open-mercato/ui/primitives/accordion'
|
|
786
|
+
|
|
787
|
+
function AccordionStartDemo() {
|
|
788
|
+
const t = useT()
|
|
789
|
+
return <Accordion type="single" collapsible defaultValue="details" className="w-full max-w-md space-y-2">
|
|
790
|
+
<AccordionItem value="overview">
|
|
791
|
+
<AccordionTrigger iconPosition="start">{t('design_system.gallery.examples.navigation2.overview')}</AccordionTrigger>
|
|
792
|
+
<AccordionContent>{t('design_system.gallery.examples.navigation2.accordionBody')}</AccordionContent>
|
|
793
|
+
</AccordionItem>
|
|
794
|
+
<AccordionItem value="details">
|
|
795
|
+
<AccordionTrigger iconPosition="start">{t('design_system.gallery.examples.navigation2.settings')}</AccordionTrigger>
|
|
796
|
+
<AccordionContent>{t('design_system.gallery.examples.navigation2.accordionBody')}</AccordionContent>
|
|
797
|
+
</AccordionItem>
|
|
798
|
+
<AccordionItem value="locked" disabled>
|
|
799
|
+
<AccordionTrigger iconPosition="start">{t('design_system.gallery.examples.navigation2.locked')}</AccordionTrigger>
|
|
800
|
+
<AccordionContent>{t('design_system.gallery.examples.navigation2.accordionBody')}</AccordionContent>
|
|
801
|
+
</AccordionItem>
|
|
802
|
+
</Accordion>
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
<AccordionStartDemo />`
|
|
462
806
|
}
|
|
463
807
|
]
|
|
464
808
|
};
|
|
809
|
+
const sidebarEntry = {
|
|
810
|
+
id: "sidebar",
|
|
811
|
+
title: "Sidebar and Topbar",
|
|
812
|
+
figmaNodeId: "3802:11759",
|
|
813
|
+
importPath: "@open-mercato/ui/primitives/sidebar",
|
|
814
|
+
usage: { do: ["Presentational composition with local state; the application AppShell still owns tenant APIs and injection points.", "Hover, current navigation, workspace switching, filtering and feature-card actions use real controls.", "Feature-card primary and neutral surfaces use the existing accessible application palettes; they do not claim exact Figma color parity."] },
|
|
815
|
+
variants: [
|
|
816
|
+
{ id: "items", title: "Sidebar items / expanded and collapsed", render: () => /* @__PURE__ */ jsx(SidebarItemsExample, {}), code: shellExampleCode("<SidebarItemsExample />") },
|
|
817
|
+
{ id: "identity-cards", title: "Header and profile cards / expanded and collapsed", render: () => /* @__PURE__ */ jsx(SidebarIdentityExample, {}), code: shellExampleCode("<SidebarIdentityExample />") },
|
|
818
|
+
{ id: "feature-meeting", title: "Feature card / meeting / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "meeting" }), code: shellExampleCode('<SidebarFeatureExample type="meeting" />') },
|
|
819
|
+
{ id: "feature-progress", title: "Feature card / progress / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "progress" }), code: shellExampleCode('<SidebarFeatureExample type="progress" />') },
|
|
820
|
+
{ id: "feature-link", title: "Feature card / link / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "link" }), code: shellExampleCode('<SidebarFeatureExample type="link" />') },
|
|
821
|
+
{ id: "feature-gift", title: "Feature card / gift / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "gift" }), code: shellExampleCode('<SidebarFeatureExample type="gift" />') },
|
|
822
|
+
{ id: "feature-storage", title: "Feature card / storage / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "storage" }), code: shellExampleCode('<SidebarFeatureExample type="storage" />') },
|
|
823
|
+
{ id: "feature-support", title: "Feature card / support / 4 styles", render: () => /* @__PURE__ */ jsx(SidebarFeatureExample, { type: "support" }), code: shellExampleCode('<SidebarFeatureExample type="support" />') },
|
|
824
|
+
{ id: "topbar-hr-default", title: "HR topbar / default", render: () => /* @__PURE__ */ jsx(TopbarExample, { product: "hr" }), code: shellExampleCode('<TopbarExample product="hr" />') },
|
|
825
|
+
{ id: "topbar-hr-icons", title: "HR topbar / icons", render: () => /* @__PURE__ */ jsx(TopbarExample, { product: "hr", icons: true }), code: shellExampleCode('<TopbarExample product="hr" icons />') },
|
|
826
|
+
{ id: "topbar-finance-default", title: "FINANCE topbar / default", render: () => /* @__PURE__ */ jsx(TopbarExample, { product: "finance" }), code: shellExampleCode('<TopbarExample product="finance" />') },
|
|
827
|
+
{ id: "topbar-finance-icons", title: "FINANCE topbar / icons", render: () => /* @__PURE__ */ jsx(TopbarExample, { product: "finance", icons: true }), code: shellExampleCode('<TopbarExample product="finance" icons />') },
|
|
828
|
+
{ id: "brand-artwork", title: "Synergy and Apex / 6 original assets", render: () => /* @__PURE__ */ jsx(NavigationBrandsExample, {}), code: shellExampleCode("<NavigationBrandsExample />") }
|
|
829
|
+
]
|
|
830
|
+
};
|
|
831
|
+
const promptAreaEntry = {
|
|
832
|
+
id: "prompt-area",
|
|
833
|
+
title: "PromptArea",
|
|
834
|
+
figmaNodeId: "191226:4236",
|
|
835
|
+
importPath: "@open-mercato/ui/primitives/prompt-area",
|
|
836
|
+
usage: { do: ["Desktop and mobile compositions expose all 18 source variants through real hover and focus states.", "Enter saves a local draft; Shift+Enter inserts a line break. Attachments stay in this browser and can be removed.", "Model names reproduce source labels. These examples do not call a model or represent a subscription."] },
|
|
837
|
+
variants: [
|
|
838
|
+
{ id: "desktop", title: "Desktop / empty / Default, Hover, Active", render: () => /* @__PURE__ */ jsx(AiPromptExample, {}), code: aiProductExampleCode("<AiPromptExample />") },
|
|
839
|
+
{ id: "desktop-file", title: "Desktop / file", render: () => /* @__PURE__ */ jsx(AiPromptExample, { attachment: "file" }), code: aiProductExampleCode('<AiPromptExample attachment="file" />') },
|
|
840
|
+
{ id: "desktop-image", title: "Desktop / original image", render: () => /* @__PURE__ */ jsx(AiPromptExample, { attachment: "image" }), code: aiProductExampleCode('<AiPromptExample attachment="image" />') },
|
|
841
|
+
{ id: "mobile", title: "Mobile / empty / Default, Hover, Active", render: () => /* @__PURE__ */ jsx(AiPromptExample, { compact: true }), code: aiProductExampleCode("<AiPromptExample compact />") },
|
|
842
|
+
{ id: "mobile-file", title: "Mobile / file", render: () => /* @__PURE__ */ jsx(AiPromptExample, { compact: true, attachment: "file" }), code: aiProductExampleCode('<AiPromptExample compact attachment="file" />') },
|
|
843
|
+
{ id: "mobile-image", title: "Mobile / original image", render: () => /* @__PURE__ */ jsx(AiPromptExample, { compact: true, attachment: "image" }), code: aiProductExampleCode('<AiPromptExample compact attachment="image" />') }
|
|
844
|
+
]
|
|
845
|
+
};
|
|
846
|
+
const aiProductPatternCode = (expression) => `import { ${expression.match(/<(\w+)/)?.[1] ?? "AiPromptExample"} } from '@open-mercato/core/modules/design_system/gallery/demos/ai-product'
|
|
847
|
+
|
|
848
|
+
${expression}
|
|
849
|
+
`;
|
|
850
|
+
const aiControlsEntry = {
|
|
851
|
+
id: "ai-controls",
|
|
852
|
+
title: "AI Product / Controls",
|
|
853
|
+
figmaNodeId: "191042:2378",
|
|
854
|
+
importPath: "@open-mercato/core/modules/design_system/gallery/demos/ai-product",
|
|
855
|
+
usage: { do: ["Source-specific compositions reuse existing primitives with additive semantic radius and typography tokens.", "Hover, keyboard focus and selected states are real interactions. Authentication buttons only display local explanatory feedback.", "Original authentication glyphs are preserved as source assets. Application fonts, focus and semantic colors remain explicit adaptations."] },
|
|
856
|
+
variants: [
|
|
857
|
+
{ id: "chat-buttons", title: "Chat custom buttons / 2 styles \xD7 3 states", render: () => /* @__PURE__ */ jsx(AiIconButtonExamples, { chat: true }), code: aiProductPatternCode("<AiIconButtonExamples chat />") },
|
|
858
|
+
{ id: "icon-buttons", title: "Custom icon buttons / 4 sizes \xD7 2 tones \xD7 3 states", render: () => /* @__PURE__ */ jsx(AiIconButtonExamples, {}), code: aiProductPatternCode("<AiIconButtonExamples />") },
|
|
859
|
+
{ id: "search", title: "Search / 2 sizes \xD7 3 states", render: () => /* @__PURE__ */ jsx(AiSearchExamples, {}), code: aiProductPatternCode("<AiSearchExamples />") },
|
|
860
|
+
{ id: "new-chat", title: "New chat / Default, Hover", render: () => /* @__PURE__ */ jsx(AiNewChatExample, {}), code: aiProductPatternCode("<AiNewChatExample />") },
|
|
861
|
+
{ id: "navigation-items", title: "Navigation items / 12 variants", render: () => /* @__PURE__ */ jsx(AiNavigationExamples, {}), code: aiProductPatternCode("<AiNavigationExamples />") },
|
|
862
|
+
{ id: "auth-icons", title: "Authentication / 8 original icons", render: () => /* @__PURE__ */ jsx(AiAuthExamples, {}), code: aiProductPatternCode("<AiAuthExamples />") },
|
|
863
|
+
{ id: "social-google", title: "Google button / local feedback", render: () => /* @__PURE__ */ jsx(AiAuthExamples, { kind: "social" }), code: aiProductPatternCode('<AiAuthExamples kind="social" />') },
|
|
864
|
+
{ id: "text-input", title: "Text input / 5 source states", render: () => /* @__PURE__ */ jsx(AiAuthExamples, { kind: "text" }), code: aiProductPatternCode('<AiAuthExamples kind="text" />') },
|
|
865
|
+
{ id: "digit-input", title: "Digit input / 5 source states", render: () => /* @__PURE__ */ jsx(AiAuthExamples, { kind: "digits" }), code: aiProductPatternCode('<AiAuthExamples kind="digits" />') },
|
|
866
|
+
{ id: "settings", title: "Settings navigation, select, counter and model / 15 variants", render: () => /* @__PURE__ */ jsx(AiSettingsExamples, {}), code: aiProductPatternCode("<AiSettingsExamples />") }
|
|
867
|
+
]
|
|
868
|
+
};
|
|
869
|
+
const aiSidebarEntry = {
|
|
870
|
+
id: "ai-sidebar",
|
|
871
|
+
title: "AI Product / Sidebar",
|
|
872
|
+
figmaNodeId: "191050:3105",
|
|
873
|
+
importPath: "@open-mercato/ui/primitives/sidebar",
|
|
874
|
+
usage: { do: ["All four source sidebar variants render using the presentational Sidebar without application API calls.", "Search filters the local history, navigation updates the selected item, and new chat creates a local draft counter.", "The collapsed logo expands the sidebar; this adds a keyboard-accessible restoration control to the source composition."] },
|
|
875
|
+
variants: [
|
|
876
|
+
{ id: "search-01", title: "Search 01 / expanded / 272 \xD7 900", render: () => /* @__PURE__ */ jsx(AiSidebarExample, {}), code: aiProductExampleCode("<AiSidebarExample />") },
|
|
877
|
+
{ id: "search-02", title: "Search 02 / expanded", render: () => /* @__PURE__ */ jsx(AiSidebarExample, { search: "02" }), code: aiProductExampleCode('<AiSidebarExample search="02" />') },
|
|
878
|
+
{ id: "search-03", title: "Search 03 / expanded", render: () => /* @__PURE__ */ jsx(AiSidebarExample, { search: "03" }), code: aiProductExampleCode('<AiSidebarExample search="03" />') },
|
|
879
|
+
{ id: "collapsed", title: "Search 01 / collapsed / 72 \xD7 900", render: () => /* @__PURE__ */ jsx(AiSidebarExample, { initialCollapsed: true }), code: aiProductExampleCode("<AiSidebarExample initialCollapsed />") }
|
|
880
|
+
]
|
|
881
|
+
};
|
|
882
|
+
const aiMobileNavigationEntry = {
|
|
883
|
+
id: "ai-mobile-navigation",
|
|
884
|
+
title: "AI Product / Mobile Navigation",
|
|
885
|
+
figmaNodeId: "192681:59134",
|
|
886
|
+
importPath: "@open-mercato/core/modules/design_system/gallery/demos/ai-product",
|
|
887
|
+
usage: { do: ["All four 390 \xD7 64 source compositions have working local controls and keyboard-accessible popovers.", "Add project stores the entered name only in component state. Escape closes the popover, Enter or Ctrl/Cmd+Enter confirms."] },
|
|
888
|
+
variants: [
|
|
889
|
+
{ id: "default", title: "Default", render: () => /* @__PURE__ */ jsx(AiMobileNavigationExample, {}), code: aiProductPatternCode("<AiMobileNavigationExample />") },
|
|
890
|
+
{ id: "in-projects", title: "In Projects", render: () => /* @__PURE__ */ jsx(AiMobileNavigationExample, { kind: "in-projects" }), code: aiProductPatternCode('<AiMobileNavigationExample kind="in-projects" />') },
|
|
891
|
+
{ id: "projects", title: "Projects", render: () => /* @__PURE__ */ jsx(AiMobileNavigationExample, { kind: "projects" }), code: aiProductPatternCode('<AiMobileNavigationExample kind="projects" />') },
|
|
892
|
+
{ id: "project-details", title: "Project Details", render: () => /* @__PURE__ */ jsx(AiMobileNavigationExample, { kind: "project-details" }), code: aiProductPatternCode('<AiMobileNavigationExample kind="project-details" />') }
|
|
893
|
+
]
|
|
894
|
+
};
|
|
465
895
|
const entries = [
|
|
896
|
+
promptAreaEntry,
|
|
897
|
+
aiControlsEntry,
|
|
898
|
+
aiSidebarEntry,
|
|
899
|
+
aiMobileNavigationEntry,
|
|
900
|
+
sidebarEntry,
|
|
466
901
|
tabsEntry,
|
|
467
902
|
breadcrumbEntry,
|
|
468
903
|
paginationEntry,
|
|
469
904
|
segmentedControlEntry,
|
|
470
905
|
accordionEntry
|
|
471
906
|
];
|
|
907
|
+
function TabsNavigationUnderlineSample() {
|
|
908
|
+
const t = useT();
|
|
909
|
+
return /* @__PURE__ */ jsxs(Tabs, { defaultValue: "orders", variant: "underline", className: "w-full", children: [
|
|
910
|
+
/* @__PURE__ */ jsxs(TabsList, { "aria-label": t("design_system.gallery.sampleCopy.customerSections"), children: [
|
|
911
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "overview", leading: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-4" }), children: t("design_system.gallery.examples.navigation2.overview") }),
|
|
912
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "orders", leading: /* @__PURE__ */ jsx(ShoppingCart, { className: "size-4" }), count: 12, children: t("design_system.gallery.examples.navigation2.orders") }),
|
|
913
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "settings", leading: /* @__PURE__ */ jsx(Settings, { className: "size-4" }), children: t("design_system.gallery.examples.navigation2.settings") })
|
|
914
|
+
] }),
|
|
915
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "overview", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.customerOverviewPanel") }) }),
|
|
916
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "orders", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.12OrdersInTheLast30Days") }) }),
|
|
917
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "settings", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.notificationAndAccessSettings") }) })
|
|
918
|
+
] });
|
|
919
|
+
}
|
|
920
|
+
function TabsNavigationPillSample() {
|
|
921
|
+
const t = useT();
|
|
922
|
+
return /* @__PURE__ */ jsxs(Tabs, { defaultValue: "preview", children: [
|
|
923
|
+
/* @__PURE__ */ jsxs(TabsList, { "aria-label": t("design_system.gallery.sampleCopy.editorView"), children: [
|
|
924
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "preview", children: t("design_system.gallery.samples.table.preview") }),
|
|
925
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "code", children: t("design_system.gallery.samples.richEditor.labels.code") }),
|
|
926
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "logs", children: t("design_system.gallery.sampleCopy.logs") })
|
|
927
|
+
] }),
|
|
928
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "preview", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.renderedPreview") }) }),
|
|
929
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "code", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.sourceCodePanel") }) }),
|
|
930
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "logs", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.runtimeLogsPanel") }) })
|
|
931
|
+
] });
|
|
932
|
+
}
|
|
933
|
+
function TabsNavigationPillVerticalSample() {
|
|
934
|
+
const t = useT();
|
|
935
|
+
return /* @__PURE__ */ jsxs(Tabs, { defaultValue: "profile", orientation: "vertical", className: "w-full", children: [
|
|
936
|
+
/* @__PURE__ */ jsxs(TabsList, { "aria-label": t("design_system.gallery.samples.crypto.accountSettings"), children: [
|
|
937
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "profile", children: t("design_system.gallery.samples.crypto.profile") }),
|
|
938
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "billing", children: t("design_system.gallery.samples.marketing.billing") }),
|
|
939
|
+
/* @__PURE__ */ jsx(TabsTrigger, { value: "security", children: t("design_system.gallery.sampleCopy.security") })
|
|
940
|
+
] }),
|
|
941
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "profile", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.profileSettingsPanel") }) }),
|
|
942
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "billing", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.billingSettingsPanel") }) }),
|
|
943
|
+
/* @__PURE__ */ jsx(TabsContent, { value: "security", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.securitySettingsPanel") }) })
|
|
944
|
+
] });
|
|
945
|
+
}
|
|
946
|
+
function BreadcrumbNavigationSlashSample() {
|
|
947
|
+
const t = useT();
|
|
948
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
949
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: t("design_system.gallery.examples.shell.dashboard") }) }),
|
|
950
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
951
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: t("design_system.gallery.sampleCopy.products") }) }),
|
|
952
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
953
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: t("design_system.gallery.sampleCopy.winterCatalog") }) })
|
|
954
|
+
] }) });
|
|
955
|
+
}
|
|
956
|
+
function BreadcrumbNavigationArrowSample() {
|
|
957
|
+
const t = useT();
|
|
958
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { divider: "arrow", children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
959
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: t("design_system.gallery.examples.navigation2.orders") }) }),
|
|
960
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
961
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: "#20418" }) }),
|
|
962
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
963
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: t("design_system.gallery.sampleCopy.shipment") }) })
|
|
964
|
+
] }) });
|
|
965
|
+
}
|
|
966
|
+
function BreadcrumbNavigationEllipsisSample() {
|
|
967
|
+
const t = useT();
|
|
968
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
969
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: t("design_system.gallery.examples.shell.dashboard") }) }),
|
|
970
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
971
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbEllipsis, {}) }),
|
|
972
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
973
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#gallery-entry-breadcrumb", children: t("design_system.gallery.sampleCopy.attributes") }) }),
|
|
974
|
+
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
975
|
+
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: t("design_system.gallery.samples.richEditor.labels.textColor") }) })
|
|
976
|
+
] }) });
|
|
977
|
+
}
|
|
978
|
+
function SegmentedControlNavigationDefaultSample() {
|
|
979
|
+
const t = useT();
|
|
980
|
+
return /* @__PURE__ */ jsxs(SegmentedControl, { defaultValue: "all", "aria-label": t("design_system.gallery.sampleCopy.viewFilter"), children: [
|
|
981
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "all", children: t("design_system.gallery.samples.feeds.all") }),
|
|
982
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "active", children: t("design_system.gallery.samples.finance.active") }),
|
|
983
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "archived", children: t("design_system.gallery.sampleCopy.archived") })
|
|
984
|
+
] });
|
|
985
|
+
}
|
|
986
|
+
function SegmentedControlNavigationSmallSample() {
|
|
987
|
+
const t = useT();
|
|
988
|
+
return /* @__PURE__ */ jsxs(SegmentedControl, { size: "sm", defaultValue: t("design_system.gallery.sampleCopy.30d"), "aria-label": t("design_system.gallery.samples.crypto.chartRange"), children: [
|
|
989
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "7d", children: t("design_system.gallery.sampleCopy.7d") }),
|
|
990
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "30d", children: t("design_system.gallery.sampleCopy.30d") }),
|
|
991
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "90d", children: t("design_system.gallery.sampleCopy.90d") }),
|
|
992
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "1y", children: t("design_system.gallery.sampleCopy.1y") })
|
|
993
|
+
] });
|
|
994
|
+
}
|
|
995
|
+
function SegmentedControlNavigationDisabledSample() {
|
|
996
|
+
const t = useT();
|
|
997
|
+
return /* @__PURE__ */ jsxs(SegmentedControl, { defaultValue: "list", disabled: true, "aria-label": t("design_system.gallery.sampleCopy.layout"), children: [
|
|
998
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "list", children: t("design_system.gallery.sampleCopy.list") }),
|
|
999
|
+
/* @__PURE__ */ jsx(SegmentedControlItem, { value: "grid", children: t("design_system.gallery.sampleCopy.grid") })
|
|
1000
|
+
] });
|
|
1001
|
+
}
|
|
1002
|
+
function AccordionNavigationCardSample() {
|
|
1003
|
+
const t = useT();
|
|
1004
|
+
return /* @__PURE__ */ jsxs(Accordion, { type: "single", collapsible: true, defaultValue: "shipping", className: "w-full space-y-2", children: [
|
|
1005
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "shipping", children: [
|
|
1006
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { children: t("design_system.gallery.sampleCopy.shippingAndDelivery") }),
|
|
1007
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.ordersPlacedBefore2PMShipTheSameBusinessDay") })
|
|
1008
|
+
] }),
|
|
1009
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "returns", children: [
|
|
1010
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { children: t("design_system.gallery.sampleCopy.returns") }),
|
|
1011
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.itemsCanBeReturnedWithin30DaysOfDeliveryIn") })
|
|
1012
|
+
] }),
|
|
1013
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "payments", children: [
|
|
1014
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { children: t("design_system.gallery.sampleCopy.paymentMethods") }),
|
|
1015
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.weAcceptCardsBankTransferAndDeferredPaymentForVerified") })
|
|
1016
|
+
] })
|
|
1017
|
+
] });
|
|
1018
|
+
}
|
|
1019
|
+
function AccordionNavigationLeftIconSample() {
|
|
1020
|
+
const t = useT();
|
|
1021
|
+
return /* @__PURE__ */ jsxs(Accordion, { type: "single", collapsible: true, className: "w-full space-y-2", children: [
|
|
1022
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "shipping", children: [
|
|
1023
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { leftIcon: /* @__PURE__ */ jsx(Truck, {}), children: t("design_system.gallery.sampleCopy.howFastIsShipping") }),
|
|
1024
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.samedayDispatchOnWeekdaysDeliveryTypicallyTakes13BusinessDays") })
|
|
1025
|
+
] }),
|
|
1026
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "billing", children: [
|
|
1027
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { leftIcon: /* @__PURE__ */ jsx(CreditCard, {}), children: t("design_system.gallery.sampleCopy.whenAmICharged") }),
|
|
1028
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.yourCardIsChargedWhenTheOrderShipsNeverAt") })
|
|
1029
|
+
] })
|
|
1030
|
+
] });
|
|
1031
|
+
}
|
|
1032
|
+
function AccordionNavigationChevronSample() {
|
|
1033
|
+
const t = useT();
|
|
1034
|
+
return /* @__PURE__ */ jsxs(Accordion, { type: "multiple", className: "w-full space-y-2", children: [
|
|
1035
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "general", children: [
|
|
1036
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { triggerIcon: "chevron", children: t("design_system.gallery.sampleCopy.general") }),
|
|
1037
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.storeNameContactDetailsAndDefaultLocaleForTheStorefront") })
|
|
1038
|
+
] }),
|
|
1039
|
+
/* @__PURE__ */ jsxs(AccordionItem, { value: "advanced", children: [
|
|
1040
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { triggerIcon: "chevron", children: t("design_system.gallery.samples.finance.advanced") }),
|
|
1041
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: t("design_system.gallery.sampleCopy.webhooksAPIKeysAndOtherDeveloperfacingConfiguration") })
|
|
1042
|
+
] })
|
|
1043
|
+
] });
|
|
1044
|
+
}
|
|
472
1045
|
export {
|
|
473
1046
|
entries
|
|
474
1047
|
};
|