@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,7 +1,11 @@
|
|
|
1
1
|
import * as React from 'react'
|
|
2
|
-
import { Circle } from 'lucide-react'
|
|
2
|
+
import { ArrowRight, Circle } from 'lucide-react'
|
|
3
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
3
4
|
import { flash } from '@open-mercato/ui/backend/FlashMessages'
|
|
5
|
+
import { Alert, AlertDescription } from '@open-mercato/ui/primitives/alert'
|
|
6
|
+
import { Button } from '@open-mercato/ui/primitives/button'
|
|
4
7
|
import type { GalleryEntry } from '../types'
|
|
8
|
+
import { SourceColors, SourceGrids, SourceRadius, SourceShadows, SourceTypography } from '../demos/foundation-references'
|
|
5
9
|
|
|
6
10
|
// Token names are proper nouns from the codebase and are deliberately not
|
|
7
11
|
// translated. Structure mirrors the DS Figma color-system sheet (node
|
|
@@ -12,32 +16,40 @@ import type { GalleryEntry } from '../types'
|
|
|
12
16
|
const TOKENS_IMPORT = 'apps/mercato/src/app/globals.css'
|
|
13
17
|
const FIGMA_COLORS_NODE = '553:14956'
|
|
14
18
|
|
|
15
|
-
function
|
|
19
|
+
function useCopyToken(copyText: string) {
|
|
20
|
+
const t = useT()
|
|
16
21
|
const onCopy = React.useCallback(async () => {
|
|
17
22
|
try {
|
|
18
23
|
await navigator.clipboard.writeText(copyText)
|
|
19
|
-
flash(
|
|
24
|
+
flash(t('design_system.gallery.tokenCopied', { token: copyText }), 'success')
|
|
20
25
|
} catch {
|
|
21
|
-
flash('
|
|
26
|
+
flash(t('design_system.gallery.tokenCopyFailed'), 'error')
|
|
22
27
|
}
|
|
23
|
-
}, [copyText])
|
|
28
|
+
}, [copyText, t])
|
|
29
|
+
return { onCopy, copyLabel: t('design_system.gallery.copyToken', { token: copyText }) }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function SwatchCard({ copyText, label, children }: { copyText: string; label: string; children: React.ReactNode }) {
|
|
33
|
+
const { onCopy, copyLabel } = useCopyToken(copyText)
|
|
24
34
|
return (
|
|
25
|
-
<
|
|
35
|
+
<Button
|
|
26
36
|
type="button"
|
|
37
|
+
variant="ghost"
|
|
27
38
|
onClick={onCopy}
|
|
28
|
-
className="
|
|
29
|
-
title={
|
|
39
|
+
className="h-auto w-44 max-w-full flex-col items-start gap-3 whitespace-normal border border-border bg-background p-3 text-left hover:bg-muted/50"
|
|
40
|
+
title={copyLabel}
|
|
41
|
+
aria-label={copyLabel}
|
|
30
42
|
>
|
|
31
43
|
{children}
|
|
32
|
-
<code className="break-all text-
|
|
33
|
-
</
|
|
44
|
+
<code className="break-all text-xs text-muted-foreground">{label}</code>
|
|
45
|
+
</Button>
|
|
34
46
|
)
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
function TokenSwatch({ tokenClass, label }: { tokenClass: string; label: string }) {
|
|
38
50
|
return (
|
|
39
51
|
<SwatchCard copyText={label} label={label}>
|
|
40
|
-
<span aria-hidden className={`h-
|
|
52
|
+
<span aria-hidden className={`h-20 w-full rounded-sm border border-border ${tokenClass}`} />
|
|
41
53
|
</SwatchCard>
|
|
42
54
|
)
|
|
43
55
|
}
|
|
@@ -46,8 +58,8 @@ function TokenSwatch({ tokenClass, label }: { tokenClass: string; label: string
|
|
|
46
58
|
function TextSwatch({ textClass, label }: { textClass: string; label: string }) {
|
|
47
59
|
return (
|
|
48
60
|
<SwatchCard copyText={textClass} label={label}>
|
|
49
|
-
<span aria-hidden className="flex h-
|
|
50
|
-
<span className={`text-
|
|
61
|
+
<span aria-hidden className="flex h-20 w-full items-center justify-center rounded-sm border border-border bg-background">
|
|
62
|
+
<span className={`text-3xl font-medium leading-none ${textClass}`}>Aa</span>
|
|
51
63
|
</span>
|
|
52
64
|
</SwatchCard>
|
|
53
65
|
)
|
|
@@ -57,7 +69,7 @@ function TextSwatch({ textClass, label }: { textClass: string; label: string })
|
|
|
57
69
|
function BorderSwatch({ borderClass, label }: { borderClass: string; label: string }) {
|
|
58
70
|
return (
|
|
59
71
|
<SwatchCard copyText={borderClass} label={label}>
|
|
60
|
-
<span aria-hidden className={`h-
|
|
72
|
+
<span aria-hidden className={`h-20 w-full rounded-sm border-2 bg-background ${borderClass}`} />
|
|
61
73
|
</SwatchCard>
|
|
62
74
|
)
|
|
63
75
|
}
|
|
@@ -66,7 +78,7 @@ function BorderSwatch({ borderClass, label }: { borderClass: string; label: stri
|
|
|
66
78
|
function IconSwatch({ iconClass, label }: { iconClass: string; label: string }) {
|
|
67
79
|
return (
|
|
68
80
|
<SwatchCard copyText={iconClass} label={label}>
|
|
69
|
-
<span aria-hidden className="flex h-
|
|
81
|
+
<span aria-hidden className="flex h-20 w-full items-center justify-center rounded-sm border border-border bg-background">
|
|
70
82
|
<Circle className={`size-4 fill-current ${iconClass}`} />
|
|
71
83
|
</span>
|
|
72
84
|
</SwatchCard>
|
|
@@ -88,8 +100,8 @@ const brandColorsEntry: GalleryEntry = {
|
|
|
88
100
|
title: 'Brand colors',
|
|
89
101
|
importPath: TOKENS_IMPORT,
|
|
90
102
|
usage: {
|
|
91
|
-
do: ['brand-violet 10/30/100 pattern (bg/border/text) for
|
|
92
|
-
dont: ['
|
|
103
|
+
do: ['Use the brand-violet 10/30/100 pattern (bg/border/text) for AI features and user-saved views.'],
|
|
104
|
+
dont: ['Do not substitute brand colors for semantic status tokens.', 'Do not repurpose accent-indigo — it is the selection-control contract.'],
|
|
93
105
|
},
|
|
94
106
|
figmaNodeId: FIGMA_COLORS_NODE,
|
|
95
107
|
variants: [
|
|
@@ -100,7 +112,7 @@ const brandColorsEntry: GalleryEntry = {
|
|
|
100
112
|
<div className="space-y-2">
|
|
101
113
|
<div
|
|
102
114
|
aria-hidden
|
|
103
|
-
className="h-
|
|
115
|
+
className="h-32 w-full rounded-lg border border-border bg-linear-135 from-brand-lime from-0% via-brand-yellow via-35% to-brand-violet to-70%"
|
|
104
116
|
/>
|
|
105
117
|
<code className="text-xs text-muted-foreground">brand-lime 0%, brand-yellow 35%, brand-violet 70%</code>
|
|
106
118
|
</div>
|
|
@@ -153,6 +165,14 @@ const colorTokensEntry: GalleryEntry = {
|
|
|
153
165
|
},
|
|
154
166
|
figmaNodeId: FIGMA_COLORS_NODE,
|
|
155
167
|
variants: [
|
|
168
|
+
{
|
|
169
|
+
id: 'source-palette',
|
|
170
|
+
title: 'Complete source palette',
|
|
171
|
+
render: () => <SourceColors />,
|
|
172
|
+
code: `import { SourceColors } from '@open-mercato/core/modules/design_system/gallery/demos/foundation-references'
|
|
173
|
+
|
|
174
|
+
<SourceColors />`,
|
|
175
|
+
},
|
|
156
176
|
{
|
|
157
177
|
id: 'primary',
|
|
158
178
|
title: 'primary',
|
|
@@ -198,7 +218,7 @@ const colorTokensEntry: GalleryEntry = {
|
|
|
198
218
|
<TextSwatch textClass="text-text-disabled" label="text-text-disabled" />
|
|
199
219
|
</div>
|
|
200
220
|
),
|
|
201
|
-
code: `<p className="text-muted-foreground">
|
|
221
|
+
code: `<p className="text-muted-foreground">{t('design_system.gallery.samples.typeBody')}</p>`,
|
|
202
222
|
},
|
|
203
223
|
{
|
|
204
224
|
id: 'stroke',
|
|
@@ -259,6 +279,15 @@ function StatusFamilyPreview({ family }: { family: StatusFamily }) {
|
|
|
259
279
|
)
|
|
260
280
|
}
|
|
261
281
|
|
|
282
|
+
function FeatureStatePreview() {
|
|
283
|
+
const t = useT()
|
|
284
|
+
return (
|
|
285
|
+
<Alert status="feature" className="max-w-md">
|
|
286
|
+
<AlertDescription>{t('design_system.gallery.samples.featureState')}</AlertDescription>
|
|
287
|
+
</Alert>
|
|
288
|
+
)
|
|
289
|
+
}
|
|
290
|
+
|
|
262
291
|
const stateTokensEntry: GalleryEntry = {
|
|
263
292
|
id: 'state-tokens',
|
|
264
293
|
title: 'State color tokens',
|
|
@@ -267,6 +296,7 @@ const stateTokensEntry: GalleryEntry = {
|
|
|
267
296
|
do: [
|
|
268
297
|
'Pair -bg with -text of the same family — the shades are contrast-tested together.',
|
|
269
298
|
'-icon for glyphs and dots, -border for outlines; both handle dark mode themselves.',
|
|
299
|
+
'Alert status="feature" uses the neutral token family; brand-violet is reserved for AI and saved-view accents.',
|
|
270
300
|
],
|
|
271
301
|
dont: [
|
|
272
302
|
'Never hardcode Tailwind status colors (text-red-*, bg-green-*, text-amber-*).',
|
|
@@ -283,13 +313,13 @@ const stateTokensEntry: GalleryEntry = {
|
|
|
283
313
|
})),
|
|
284
314
|
{
|
|
285
315
|
id: 'feature',
|
|
286
|
-
title: 'Feature →
|
|
287
|
-
render: () =>
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
316
|
+
title: 'Feature → status-neutral',
|
|
317
|
+
render: () => <FeatureStatePreview />,
|
|
318
|
+
code: `import { Alert, AlertDescription } from '@open-mercato/ui/primitives/alert'
|
|
319
|
+
|
|
320
|
+
<Alert status="feature" className="max-w-md">
|
|
321
|
+
<AlertDescription>{t('design_system.gallery.samples.featureState')}</AlertDescription>
|
|
322
|
+
</Alert>`,
|
|
293
323
|
},
|
|
294
324
|
],
|
|
295
325
|
}
|
|
@@ -353,31 +383,27 @@ type ColorRole = {
|
|
|
353
383
|
}
|
|
354
384
|
|
|
355
385
|
function RoleCard({ role }: { role: ColorRole }) {
|
|
356
|
-
const
|
|
357
|
-
const onCopy = React.useCallback(async () => {
|
|
358
|
-
try {
|
|
359
|
-
await navigator.clipboard.writeText(`${role.surfaceCls} ${role.onSurfaceCls}`)
|
|
360
|
-
flash(`${role.surfaceCls} ${role.onSurfaceCls} copied`, 'success')
|
|
361
|
-
} catch {
|
|
362
|
-
flash('Could not copy the classes', 'error')
|
|
363
|
-
}
|
|
364
|
-
}, [role])
|
|
386
|
+
const { onCopy, copyLabel } = useCopyToken(`${role.surfaceCls} ${role.onSurfaceCls}`)
|
|
365
387
|
return (
|
|
366
|
-
<
|
|
388
|
+
<Button
|
|
367
389
|
type="button"
|
|
390
|
+
variant="ghost"
|
|
368
391
|
onClick={onCopy}
|
|
369
|
-
title={
|
|
370
|
-
|
|
392
|
+
title={copyLabel}
|
|
393
|
+
aria-label={copyLabel}
|
|
394
|
+
className="h-auto w-full whitespace-normal p-0 text-left transition-opacity hover:bg-transparent hover:opacity-90"
|
|
371
395
|
>
|
|
372
|
-
<span className=
|
|
373
|
-
|
|
374
|
-
|
|
396
|
+
<span className={`flex h-36 w-full flex-col items-start justify-between rounded-lg border p-4 ${role.surfaceCls} ${role.onSurfaceCls} ${role.borderCls ?? 'border-border'}`}>
|
|
397
|
+
<span className="text-base font-medium leading-tight">{role.surface}</span>
|
|
398
|
+
<code className="text-xs opacity-80">{role.onSurface}</code>
|
|
399
|
+
</span>
|
|
400
|
+
</Button>
|
|
375
401
|
)
|
|
376
402
|
}
|
|
377
403
|
|
|
378
404
|
function RoleGrid({ roles }: { roles: ColorRole[] }) {
|
|
379
405
|
return (
|
|
380
|
-
<div className="grid w-full gap-
|
|
406
|
+
<div className="grid w-full gap-4 sm:grid-cols-2 xl:grid-cols-3">
|
|
381
407
|
{roles.map((role) => (
|
|
382
408
|
<RoleCard key={role.surface + role.onSurface} role={role} />
|
|
383
409
|
))}
|
|
@@ -415,7 +441,9 @@ const colorRolesEntry: GalleryEntry = {
|
|
|
415
441
|
]}
|
|
416
442
|
/>
|
|
417
443
|
),
|
|
418
|
-
code:
|
|
444
|
+
code: `import { Button } from '@open-mercato/ui/primitives/button'
|
|
445
|
+
|
|
446
|
+
<Button type="button">{t('design_system.gallery.samples.primaryAction')}</Button>`,
|
|
419
447
|
},
|
|
420
448
|
{
|
|
421
449
|
id: 'surfaces',
|
|
@@ -439,12 +467,12 @@ const colorRolesEntry: GalleryEntry = {
|
|
|
439
467
|
title: 'status',
|
|
440
468
|
render: () => (
|
|
441
469
|
<RoleGrid
|
|
442
|
-
roles={
|
|
443
|
-
surface: `status-${status}-bg`,
|
|
444
|
-
onSurface: `status-${status}-text`,
|
|
445
|
-
surfaceCls:
|
|
446
|
-
onSurfaceCls:
|
|
447
|
-
borderCls:
|
|
470
|
+
roles={FIGMA_STATE_TO_CODE.map((family) => ({
|
|
471
|
+
surface: `status-${family.status}-bg`,
|
|
472
|
+
onSurface: `status-${family.status}-text`,
|
|
473
|
+
surfaceCls: family.bg,
|
|
474
|
+
onSurfaceCls: family.text,
|
|
475
|
+
borderCls: family.border,
|
|
448
476
|
}))}
|
|
449
477
|
/>
|
|
450
478
|
),
|
|
@@ -463,27 +491,22 @@ const RADIUS_SCALE: Array<{ cls: string; label: string; px: string }> = [
|
|
|
463
491
|
]
|
|
464
492
|
|
|
465
493
|
function RadiusCard({ cls, label, px }: { cls: string; label: string; px: string }) {
|
|
466
|
-
const onCopy =
|
|
467
|
-
try {
|
|
468
|
-
await navigator.clipboard.writeText(label)
|
|
469
|
-
flash(`${label} copied`, 'success')
|
|
470
|
-
} catch {
|
|
471
|
-
flash('Could not copy the class', 'error')
|
|
472
|
-
}
|
|
473
|
-
}, [label])
|
|
494
|
+
const { onCopy, copyLabel } = useCopyToken(label)
|
|
474
495
|
return (
|
|
475
|
-
<
|
|
496
|
+
<Button
|
|
476
497
|
type="button"
|
|
498
|
+
variant="ghost"
|
|
477
499
|
onClick={onCopy}
|
|
478
|
-
title={
|
|
479
|
-
|
|
500
|
+
title={copyLabel}
|
|
501
|
+
aria-label={copyLabel}
|
|
502
|
+
className="h-auto w-36 flex-col items-start gap-2 border border-border bg-background p-2 text-left hover:bg-muted/50"
|
|
480
503
|
>
|
|
481
504
|
<span aria-hidden className={`h-14 w-full border-2 border-dashed border-status-pink-icon bg-status-pink-bg ${cls}`} />
|
|
482
505
|
<span className="space-y-0.5">
|
|
483
506
|
<code className="block text-xs text-foreground">{label}</code>
|
|
484
507
|
<span className="block text-xs text-muted-foreground">{px}</span>
|
|
485
508
|
</span>
|
|
486
|
-
</
|
|
509
|
+
</Button>
|
|
487
510
|
)
|
|
488
511
|
}
|
|
489
512
|
|
|
@@ -491,6 +514,7 @@ const radiusEntry: GalleryEntry = {
|
|
|
491
514
|
id: 'corner-radius',
|
|
492
515
|
title: 'Corner radius',
|
|
493
516
|
importPath: TOKENS_IMPORT,
|
|
517
|
+
figmaNodeId: '553:14961',
|
|
494
518
|
keywords: ['radius', 'rounded', 'border-radius', 'corners'],
|
|
495
519
|
usage: {
|
|
496
520
|
do: [
|
|
@@ -504,6 +528,14 @@ const radiusEntry: GalleryEntry = {
|
|
|
504
528
|
],
|
|
505
529
|
},
|
|
506
530
|
variants: [
|
|
531
|
+
{
|
|
532
|
+
id: 'source-radius',
|
|
533
|
+
title: 'Complete radius scale',
|
|
534
|
+
render: () => <SourceRadius />,
|
|
535
|
+
code: `import { SourceRadius } from '@open-mercato/core/modules/design_system/gallery/demos/foundation-references'
|
|
536
|
+
|
|
537
|
+
<SourceRadius />`,
|
|
538
|
+
},
|
|
507
539
|
{
|
|
508
540
|
id: 'scale',
|
|
509
541
|
title: 'scale',
|
|
@@ -519,6 +551,313 @@ const radiusEntry: GalleryEntry = {
|
|
|
519
551
|
],
|
|
520
552
|
}
|
|
521
553
|
|
|
554
|
+
const TYPOGRAPHY_ROLES = [
|
|
555
|
+
{ id: 'page', className: 'text-2xl font-bold tracking-tight', metrics: '24 / 32 px' },
|
|
556
|
+
{ id: 'section', className: 'text-xl font-semibold', metrics: '20 / 28 px' },
|
|
557
|
+
{ id: 'body', className: 'text-sm', metrics: '14 / 20 px' },
|
|
558
|
+
{ id: 'label', className: 'text-sm font-medium', metrics: '14 / 20 px' },
|
|
559
|
+
{ id: 'helper', className: 'text-xs text-muted-foreground', metrics: '12 / 16 px' },
|
|
560
|
+
] as const
|
|
561
|
+
|
|
562
|
+
function TypographyRolesPreview() {
|
|
563
|
+
const t = useT()
|
|
564
|
+
return <div className="space-y-6">
|
|
565
|
+
<p className="max-w-3xl text-sm leading-relaxed text-muted-foreground">{t('design_system.foundations.typography.guide.intro')}</p>
|
|
566
|
+
<div className="divide-y divide-border border-y border-border">
|
|
567
|
+
{TYPOGRAPHY_ROLES.map(role => <article key={role.id} className="grid min-w-0 gap-4 py-6 md:grid-cols-3 md:gap-8" data-typography-role={role.id}>
|
|
568
|
+
<div className="space-y-2">
|
|
569
|
+
<h4 className="text-sm font-medium">{t(`design_system.foundations.typography.guide.${role.id}.title`)}</h4>
|
|
570
|
+
<p className="text-xs text-muted-foreground">{role.metrics}</p>
|
|
571
|
+
</div>
|
|
572
|
+
<div className="min-w-0 space-y-3 md:col-span-2">
|
|
573
|
+
<p className={`${role.className} break-words`}>{t(`design_system.foundations.typography.guide.${role.id}.example`)}</p>
|
|
574
|
+
<p className="max-w-prose text-sm leading-relaxed text-muted-foreground">{t(`design_system.foundations.typography.guide.${role.id}.usage`)}</p>
|
|
575
|
+
</div>
|
|
576
|
+
</article>)}
|
|
577
|
+
</div>
|
|
578
|
+
<p className="max-w-3xl text-sm leading-relaxed text-muted-foreground">{t('design_system.foundations.typography.guide.fonts')}</p>
|
|
579
|
+
</div>
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
function TypographyReferencePreview() {
|
|
583
|
+
const t = useT()
|
|
584
|
+
return <section className="rounded-lg border border-border">
|
|
585
|
+
<h3 className="p-4 text-sm font-medium">{t('design_system.foundations.typography.guide.reference')}</h3>
|
|
586
|
+
<div className="space-y-8 border-t border-border p-4 sm:p-6">
|
|
587
|
+
<div className="space-y-3">
|
|
588
|
+
<h4 className="text-sm font-medium">{t('design_system.foundations.typography.guide.classes')}</h4>
|
|
589
|
+
<dl className="divide-y divide-border">
|
|
590
|
+
{TYPOGRAPHY_ROLES.map(role => <div key={role.id} className="flex flex-wrap justify-between gap-2 py-3 text-sm">
|
|
591
|
+
<dt>{t(`design_system.foundations.typography.guide.${role.id}.title`)}</dt>
|
|
592
|
+
<dd><code className="break-words text-xs text-muted-foreground">{role.className}</code></dd>
|
|
593
|
+
</div>)}
|
|
594
|
+
</dl>
|
|
595
|
+
</div>
|
|
596
|
+
<SourceTypography />
|
|
597
|
+
</div>
|
|
598
|
+
</section>
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
const typographyEntry: GalleryEntry = {
|
|
602
|
+
id: 'typography',
|
|
603
|
+
title: 'Typography',
|
|
604
|
+
importPath: TOKENS_IMPORT,
|
|
605
|
+
figmaNodeId: '553:14957',
|
|
606
|
+
keywords: ['font', 'type', 'heading', 'body', 'line-height', 'Geist', 'Inter'],
|
|
607
|
+
usage: {
|
|
608
|
+
do: [
|
|
609
|
+
'Use font-sans for the interface and font-mono for code and identifiers. Both resolve through the host application font tokens, with system fallbacks in globals.css.',
|
|
610
|
+
'Use text-2xl for backend page titles and text-sm for body text. Scale measurements assume a 16px root font size.',
|
|
611
|
+
'The Figma reference uses Inter / Inter Display; these specimens show the shipped font tokens rather than claiming font parity.',
|
|
612
|
+
],
|
|
613
|
+
dont: ['Do not copy marketing display sizes into dense backend pages.', 'Do not set inline font families or arbitrary text sizes.'],
|
|
614
|
+
},
|
|
615
|
+
variants: [
|
|
616
|
+
{
|
|
617
|
+
id: 'roles',
|
|
618
|
+
title: 'Text hierarchy',
|
|
619
|
+
render: () => <TypographyRolesPreview />,
|
|
620
|
+
code: `import { Label } from '@open-mercato/ui/primitives/label'
|
|
621
|
+
import { Input } from '@open-mercato/ui/primitives/input'
|
|
622
|
+
|
|
623
|
+
<h1 className="text-2xl font-bold tracking-tight">{t('design_system.foundations.typography.guide.page.example')}</h1>
|
|
624
|
+
<h2 className="text-xl font-semibold">{t('design_system.foundations.typography.guide.section.example')}</h2>
|
|
625
|
+
<p className="text-sm">{t('design_system.foundations.typography.guide.body.example')}</p>
|
|
626
|
+
<Label htmlFor="name">{t('design_system.foundations.typography.guide.label.example')}</Label>
|
|
627
|
+
<Input id="name" aria-describedby="name-hint" />
|
|
628
|
+
<p id="name-hint" className="text-xs text-muted-foreground">{t('design_system.foundations.typography.guide.helper.example')}</p>`,
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
id: 'source-typography',
|
|
632
|
+
title: 'Complete typography scale',
|
|
633
|
+
render: () => <TypographyReferencePreview />,
|
|
634
|
+
code: `import { SourceTypography } from '@open-mercato/core/modules/design_system/gallery/demos/foundation-references'
|
|
635
|
+
|
|
636
|
+
<SourceTypography />`,
|
|
637
|
+
},
|
|
638
|
+
],
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
const SPACING_SCALE = [
|
|
642
|
+
{ token: '1', className: 'w-1', pixels: 4 },
|
|
643
|
+
{ token: '2', className: 'w-2', pixels: 8 },
|
|
644
|
+
{ token: '3', className: 'w-3', pixels: 12 },
|
|
645
|
+
{ token: '4', className: 'w-4', pixels: 16 },
|
|
646
|
+
{ token: '6', className: 'w-6', pixels: 24 },
|
|
647
|
+
{ token: '8', className: 'w-8', pixels: 32 },
|
|
648
|
+
{ token: '12', className: 'w-12', pixels: 48 },
|
|
649
|
+
]
|
|
650
|
+
|
|
651
|
+
function SpacingScalePreview() {
|
|
652
|
+
const t = useT()
|
|
653
|
+
return (
|
|
654
|
+
<div className="w-full space-y-6">
|
|
655
|
+
<p className="text-sm text-muted-foreground">{t('design_system.foundations.spacing.scaleHint')}</p>
|
|
656
|
+
{SPACING_SCALE.map((item) => (
|
|
657
|
+
<div key={item.token} className="flex items-center gap-4 py-2">
|
|
658
|
+
<code className="w-12 shrink-0 text-sm text-muted-foreground">p-{item.token}</code>
|
|
659
|
+
<div className="min-w-0 flex-1"><span aria-hidden className="block h-8 rounded-sm border-l-4 border-primary bg-muted" style={{ width: `${item.pixels / 48 * 100}%` }} /></div>
|
|
660
|
+
<span className="w-28 shrink-0 font-mono text-xs"><span>{item.pixels / 16} rem</span><span className="ml-3 text-muted-foreground">{item.pixels} px</span></span>
|
|
661
|
+
</div>
|
|
662
|
+
))}
|
|
663
|
+
</div>
|
|
664
|
+
)
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
function SpacingRhythmPreview() {
|
|
668
|
+
return (
|
|
669
|
+
<div className="grid w-full gap-6 md:grid-cols-2">
|
|
670
|
+
{[
|
|
671
|
+
{ padding: 'p-4', gap: 'gap-2' },
|
|
672
|
+
{ padding: 'p-6', gap: 'gap-4' },
|
|
673
|
+
].map((item) => (
|
|
674
|
+
<div key={item.padding} className={`space-y-4 rounded-lg border border-border bg-muted/30 ${item.padding}`}>
|
|
675
|
+
<code className="text-xs text-muted-foreground">{item.padding} / {item.gap}</code>
|
|
676
|
+
<div aria-hidden className={`flex ${item.gap}`}>
|
|
677
|
+
<span className="h-12 flex-1 rounded-md border border-border bg-background" />
|
|
678
|
+
<span className="h-12 flex-1 rounded-md border border-border bg-background" />
|
|
679
|
+
<span className="h-12 flex-1 rounded-md border border-border bg-background" />
|
|
680
|
+
</div>
|
|
681
|
+
</div>
|
|
682
|
+
))}
|
|
683
|
+
</div>
|
|
684
|
+
)
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
const spacingEntry: GalleryEntry = {
|
|
688
|
+
id: 'spacing',
|
|
689
|
+
title: 'Spacing',
|
|
690
|
+
importPath: TOKENS_IMPORT,
|
|
691
|
+
figmaNodeId: '553:14958',
|
|
692
|
+
keywords: ['padding', 'gap', 'margin', 'grid', 'rhythm'],
|
|
693
|
+
usage: {
|
|
694
|
+
do: ['Use the 4px spacing grid. Start with gap-2 between controls, p-4 within containers and p-6 for larger panels.'],
|
|
695
|
+
dont: ['Do not invent arbitrary spacing values or compensate for layout problems with negative margins.'],
|
|
696
|
+
},
|
|
697
|
+
variants: [
|
|
698
|
+
{
|
|
699
|
+
id: 'source-grids',
|
|
700
|
+
title: 'Layout grids',
|
|
701
|
+
render: () => <SourceGrids />,
|
|
702
|
+
code: `import { SourceGrids } from '@open-mercato/core/modules/design_system/gallery/demos/foundation-references'
|
|
703
|
+
|
|
704
|
+
<SourceGrids />`,
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
id: 'scale',
|
|
708
|
+
title: 'Spacing scale',
|
|
709
|
+
render: () => <SpacingScalePreview />,
|
|
710
|
+
code: `<div className="flex gap-2 p-4">{children}</div>
|
|
711
|
+
<section className="space-y-6 p-6">{children}</section>`,
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
id: 'rhythm',
|
|
715
|
+
title: 'Container rhythm',
|
|
716
|
+
render: () => <SpacingRhythmPreview />,
|
|
717
|
+
code: `<div className="p-4">
|
|
718
|
+
<div className="flex gap-2">{children}</div>
|
|
719
|
+
</div>
|
|
720
|
+
<div className="p-6">
|
|
721
|
+
<div className="flex gap-4">{children}</div>
|
|
722
|
+
</div>`,
|
|
723
|
+
},
|
|
724
|
+
],
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
const SHADOW_SCALE = ['shadow-none', 'shadow-xs', 'shadow-sm', 'shadow-md', 'shadow-lg', 'shadow-xl', 'shadow-2xl']
|
|
728
|
+
|
|
729
|
+
function ShadowScalePreview() {
|
|
730
|
+
return (
|
|
731
|
+
<div className="grid w-full grid-cols-2 gap-6 p-4 md:grid-cols-3 lg:grid-cols-4">
|
|
732
|
+
{SHADOW_SCALE.map((className) => (
|
|
733
|
+
<div key={className} className={`flex h-24 items-center justify-center rounded-lg border border-border bg-card p-4 ${className}`}>
|
|
734
|
+
<code className="text-xs text-card-foreground">{className}</code>
|
|
735
|
+
</div>
|
|
736
|
+
))}
|
|
737
|
+
</div>
|
|
738
|
+
)
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
function FocusPreview() {
|
|
742
|
+
const t = useT()
|
|
743
|
+
return (
|
|
744
|
+
<div className="space-y-4 p-2">
|
|
745
|
+
<p className="text-sm text-muted-foreground">{t('design_system.gallery.samples.focusHint')}</p>
|
|
746
|
+
<div className="flex flex-wrap items-center gap-6">
|
|
747
|
+
<Button type="button" variant="outline">{t('design_system.gallery.samples.focusAction')}</Button>
|
|
748
|
+
<span aria-hidden className="rounded-md border border-border bg-background px-4 py-2 text-sm shadow-focus">shadow-focus</span>
|
|
749
|
+
</div>
|
|
750
|
+
</div>
|
|
751
|
+
)
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
const shadowsEntry: GalleryEntry = {
|
|
755
|
+
id: 'shadows',
|
|
756
|
+
title: 'Shadows & focus',
|
|
757
|
+
importPath: TOKENS_IMPORT,
|
|
758
|
+
figmaNodeId: '553:14959',
|
|
759
|
+
keywords: ['elevation', 'depth', 'focus', 'keyboard'],
|
|
760
|
+
usage: {
|
|
761
|
+
do: ['Use shadow-xs for controls, shadow-sm for cards and higher elevations for overlays.', 'Keep the visible keyboard focus supplied by DS primitives. Shadow tokens adapt to the active theme.'],
|
|
762
|
+
dont: ['Do not draw custom colored glows or arbitrary box shadows.', 'Do not remove focus feedback without an equivalent visible indicator.'],
|
|
763
|
+
},
|
|
764
|
+
variants: [
|
|
765
|
+
{
|
|
766
|
+
id: 'source-shadows',
|
|
767
|
+
title: 'Complete shadow collection',
|
|
768
|
+
render: () => <SourceShadows />,
|
|
769
|
+
code: `import { SourceShadows } from '@open-mercato/core/modules/design_system/gallery/demos/foundation-references'
|
|
770
|
+
|
|
771
|
+
<SourceShadows />`,
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
id: 'elevation',
|
|
775
|
+
title: 'Elevation scale',
|
|
776
|
+
render: () => <ShadowScalePreview />,
|
|
777
|
+
code: `<div className="rounded-lg border border-border bg-card p-4 shadow-sm">{children}</div>
|
|
778
|
+
<div className="rounded-lg border border-border bg-popover p-4 shadow-lg">{children}</div>`,
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
id: 'focus',
|
|
782
|
+
title: 'Keyboard focus',
|
|
783
|
+
render: () => <FocusPreview />,
|
|
784
|
+
code: `import { Button } from '@open-mercato/ui/primitives/button'
|
|
785
|
+
|
|
786
|
+
<Button type="button" variant="outline">{t('design_system.gallery.samples.focusAction')}</Button>`,
|
|
787
|
+
},
|
|
788
|
+
],
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
function MotionPreview() {
|
|
792
|
+
const t = useT()
|
|
793
|
+
const [active, setActive] = React.useState(false)
|
|
794
|
+
return (
|
|
795
|
+
<div className="w-full space-y-4">
|
|
796
|
+
<Button type="button" variant="outline" aria-pressed={active} onClick={() => setActive((value) => !value)}>
|
|
797
|
+
{t('design_system.gallery.samples.toggleMotion')}
|
|
798
|
+
</Button>
|
|
799
|
+
<div className="grid gap-4 md:grid-cols-3">
|
|
800
|
+
<div className="space-y-3 rounded-lg border border-border p-4">
|
|
801
|
+
<code className="text-xs text-muted-foreground">transition-colors / 150 ms</code>
|
|
802
|
+
<div aria-hidden className={`h-12 rounded-md transition-colors duration-150 motion-reduce:transition-none ${active ? 'bg-primary' : 'bg-muted'}`} />
|
|
803
|
+
</div>
|
|
804
|
+
<div className="space-y-3 rounded-lg border border-border p-4">
|
|
805
|
+
<code className="text-xs text-muted-foreground">transition-opacity / 200 ms</code>
|
|
806
|
+
<div aria-hidden className={`h-12 rounded-md bg-primary transition-opacity duration-200 ease-out motion-reduce:transition-none ${active ? 'opacity-100' : 'opacity-30'}`} />
|
|
807
|
+
</div>
|
|
808
|
+
<div className="space-y-3 rounded-lg border border-border p-4">
|
|
809
|
+
<code className="text-xs text-muted-foreground">transition-transform / 300 ms</code>
|
|
810
|
+
<div aria-hidden className="flex h-12 items-center">
|
|
811
|
+
<ArrowRight className={`size-6 text-foreground transition-transform duration-300 ease-out motion-reduce:transition-none ${active ? 'translate-x-8' : 'translate-x-0'}`} />
|
|
812
|
+
</div>
|
|
813
|
+
</div>
|
|
814
|
+
<div className="space-y-3 rounded-lg border border-border p-4">
|
|
815
|
+
<code className="text-xs text-muted-foreground">transition-opacity / 400 ms</code>
|
|
816
|
+
<div aria-hidden className={`h-12 rounded-md bg-primary transition-opacity duration-400 ease-out motion-reduce:transition-none ${active ? 'opacity-100' : 'opacity-30'}`} />
|
|
817
|
+
</div>
|
|
818
|
+
<div className="space-y-3 rounded-lg border border-border p-4">
|
|
819
|
+
<code className="text-xs text-muted-foreground">transition-opacity / 500 ms</code>
|
|
820
|
+
<div aria-hidden className={`h-12 rounded-md bg-primary transition-opacity duration-500 ease-out motion-reduce:transition-none ${active ? 'opacity-100' : 'opacity-30'}`} />
|
|
821
|
+
</div>
|
|
822
|
+
</div>
|
|
823
|
+
<p className="text-xs text-muted-foreground">{t('design_system.gallery.samples.reducedMotion')}</p>
|
|
824
|
+
</div>
|
|
825
|
+
)
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
const motionEntry: GalleryEntry = {
|
|
829
|
+
id: 'motion',
|
|
830
|
+
title: 'Motion',
|
|
831
|
+
importPath: TOKENS_IMPORT,
|
|
832
|
+
figmaNodeId: '553:14960',
|
|
833
|
+
keywords: ['animation', 'transition', 'duration', 'reduced-motion'],
|
|
834
|
+
usage: {
|
|
835
|
+
do: ['The Figma duration scale is 150, 200, 300, 400 and 500ms; choose timing according to content size and travel distance.', 'Name the changing property and respect reduced-motion preferences.'],
|
|
836
|
+
dont: ['Do not use animation as the only feedback for a state change.', 'Do not use transition-all when only one property changes.'],
|
|
837
|
+
},
|
|
838
|
+
variants: [
|
|
839
|
+
{
|
|
840
|
+
id: 'durations',
|
|
841
|
+
title: 'Interactive duration scale',
|
|
842
|
+
render: () => <MotionPreview />,
|
|
843
|
+
code: `import * as React from 'react'
|
|
844
|
+
import { ArrowRight } from 'lucide-react'
|
|
845
|
+
import { Button } from '@open-mercato/ui/primitives/button'
|
|
846
|
+
|
|
847
|
+
const [active, setActive] = React.useState(false)
|
|
848
|
+
|
|
849
|
+
<Button type="button" variant="outline" aria-pressed={active} onClick={() => setActive((value) => !value)}>
|
|
850
|
+
{t('design_system.gallery.samples.toggleMotion')}
|
|
851
|
+
</Button>
|
|
852
|
+
<div aria-hidden className={['h-12 rounded-md transition-colors duration-150 motion-reduce:transition-none', active ? 'bg-primary' : 'bg-muted'].join(' ')} />
|
|
853
|
+
<div aria-hidden className={['h-12 rounded-md bg-primary transition-opacity duration-200 ease-out motion-reduce:transition-none', active ? 'opacity-100' : 'opacity-30'].join(' ')} />
|
|
854
|
+
<ArrowRight aria-hidden className={['size-6 transition-transform duration-300 ease-out motion-reduce:transition-none', active ? 'translate-x-8' : 'translate-x-0'].join(' ')} />
|
|
855
|
+
<div aria-hidden className={['h-12 rounded-md bg-primary transition-opacity duration-400 ease-out motion-reduce:transition-none', active ? 'opacity-100' : 'opacity-30'].join(' ')} />
|
|
856
|
+
<div aria-hidden className={['h-12 rounded-md bg-primary transition-opacity duration-500 ease-out motion-reduce:transition-none', active ? 'opacity-100' : 'opacity-30'].join(' ')} />`,
|
|
857
|
+
},
|
|
858
|
+
],
|
|
859
|
+
}
|
|
860
|
+
|
|
522
861
|
export const entries: GalleryEntry[] = [
|
|
523
862
|
brandColorsEntry,
|
|
524
863
|
colorRolesEntry,
|
|
@@ -526,4 +865,8 @@ export const entries: GalleryEntry[] = [
|
|
|
526
865
|
stateTokensEntry,
|
|
527
866
|
chartPaletteEntry,
|
|
528
867
|
radiusEntry,
|
|
868
|
+
typographyEntry,
|
|
869
|
+
spacingEntry,
|
|
870
|
+
shadowsEntry,
|
|
871
|
+
motionEntry,
|
|
529
872
|
]
|