@open-mercato/core 0.7.1-develop.7203.1.9396450b78 → 0.8.1-develop.7204.1.83330e271e
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 -8
- 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,11 +1,10 @@
|
|
|
1
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
1
2
|
import * as React from 'react'
|
|
3
|
+
import { SourceFilterParts, SourceFilterPanel, SourceFilterToolbar } from '../demos/source-filters'
|
|
4
|
+
import { sourceFilterExampleCode } from '../demos/source-filters-code.generated'
|
|
2
5
|
import { Download } from 'lucide-react'
|
|
3
6
|
import { Button } from '@open-mercato/ui/primitives/button'
|
|
4
|
-
import {
|
|
5
|
-
FilterBar,
|
|
6
|
-
type FilterDef,
|
|
7
|
-
type FilterValues,
|
|
8
|
-
} from '@open-mercato/ui/backend/FilterBar'
|
|
7
|
+
import { FilterBar, type FilterDef, type FilterValues } from '@open-mercato/ui/backend/FilterBar'
|
|
9
8
|
import { QuickFilters, type FilterPreset } from '@open-mercato/ui/backend/filters/QuickFilters'
|
|
10
9
|
import { ActiveFilterChips } from '@open-mercato/ui/backend/filters/ActiveFilterChips'
|
|
11
10
|
import { AdvancedFilterBuilder } from '@open-mercato/ui/backend/filters/AdvancedFilterBuilder'
|
|
@@ -14,11 +13,7 @@ import { ListEmptyState } from '@open-mercato/ui/backend/filters/ListEmptyState'
|
|
|
14
13
|
import { FilteredEmptyResults } from '@open-mercato/ui/backend/filters/FilteredEmptyResults'
|
|
15
14
|
import { SearchEmptyResults } from '@open-mercato/ui/backend/filters/SearchEmptyResults'
|
|
16
15
|
import type { FilterFieldDef } from '@open-mercato/shared/lib/query/advanced-filter'
|
|
17
|
-
import type {
|
|
18
|
-
AdvancedFilterTree,
|
|
19
|
-
FilterGroup,
|
|
20
|
-
FilterRule,
|
|
21
|
-
} from '@open-mercato/shared/lib/query/advanced-filter-tree'
|
|
16
|
+
import type { AdvancedFilterTree, FilterGroup, FilterRule } from '@open-mercato/shared/lib/query/advanced-filter-tree'
|
|
22
17
|
import type { GalleryEntry } from '../types'
|
|
23
18
|
|
|
24
19
|
// Component titles and variant names are proper nouns from the codebase and
|
|
@@ -35,101 +30,231 @@ import type { GalleryEntry } from '../types'
|
|
|
35
30
|
// Inline demo data — no API calls. Field defs and trees mirror what CRM list
|
|
36
31
|
// pages pass to the advanced filter stack.
|
|
37
32
|
// ---------------------------------------------------------------------------
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
33
|
+
function FilterBarEntryTrailingItemsPreview() {
|
|
34
|
+
const t = useT()
|
|
35
|
+
return (
|
|
36
|
+
<DemoFilterBar
|
|
37
|
+
trailingItems={
|
|
38
|
+
<Button variant="outline" size="sm">
|
|
39
|
+
<Download />
|
|
40
|
+
{t('design_system.gallery.samples.content.export')}
|
|
41
|
+
</Button>
|
|
42
|
+
}
|
|
43
|
+
/>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
function ListEmptyStateEntryWithCreateActionPreview() {
|
|
47
|
+
const t = useT()
|
|
48
|
+
return (
|
|
49
|
+
<div className="w-full max-w-xl">
|
|
50
|
+
<ListEmptyState
|
|
51
|
+
entityName={t('design_system.gallery.samples.content.companies')}
|
|
52
|
+
onCreate={() => {}}
|
|
53
|
+
createLabel={t('design_system.gallery.samples.content.addCompany')}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
function ListEmptyStateEntryCustomCopyPreview() {
|
|
59
|
+
const t = useT()
|
|
60
|
+
return (
|
|
61
|
+
<div className="w-full max-w-xl">
|
|
62
|
+
<ListEmptyState
|
|
63
|
+
title={t('design_system.gallery.samples.content.noImportsYet')}
|
|
64
|
+
description={t('design_system.gallery.samples.content.connectASourceOrUploadACsvFileToBringRecordsIn')}
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
function FilteredEmptyResultsEntryFiltersOnlyPreview() {
|
|
70
|
+
const t = useT()
|
|
71
|
+
return (
|
|
72
|
+
<div className="w-full max-w-xl">
|
|
73
|
+
<FilteredEmptyResults
|
|
74
|
+
entityNamePlural={t('design_system.gallery.samples.content.companies')}
|
|
75
|
+
canRemoveLast
|
|
76
|
+
onClearAll={() => {}}
|
|
77
|
+
onRemoveLast={() => {}}
|
|
78
|
+
/>
|
|
79
|
+
</div>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
function FilteredEmptyResultsEntryWithSearchPreview() {
|
|
83
|
+
const t = useT()
|
|
84
|
+
return (
|
|
85
|
+
<div className="w-full max-w-xl">
|
|
86
|
+
<FilteredEmptyResults
|
|
87
|
+
entityNamePlural={t('design_system.gallery.samples.content.companies')}
|
|
88
|
+
canRemoveLast
|
|
89
|
+
onClearAll={() => {}}
|
|
90
|
+
onRemoveLast={() => {}}
|
|
91
|
+
onClearSearch={() => {}}
|
|
92
|
+
/>
|
|
93
|
+
</div>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
function SearchEmptyResultsEntryWithEntityPreview() {
|
|
97
|
+
const t = useT()
|
|
98
|
+
return (
|
|
99
|
+
<div className="flex w-full max-w-xl justify-center">
|
|
100
|
+
<SearchEmptyResults
|
|
101
|
+
query="northwind"
|
|
102
|
+
entityNamePlural={t('design_system.gallery.samples.content.companies')}
|
|
103
|
+
onClearSearch={() => {}}
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
function QuickFiltersEntryPresetsPreview() {
|
|
109
|
+
const t = useT()
|
|
110
|
+
return (
|
|
111
|
+
<div className="w-full max-w-xl">
|
|
112
|
+
<QuickFilters presets={demoPresets(t)} userId="user-1" onApply={() => {}} />
|
|
113
|
+
</div>
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
function QuickFiltersEntryUserScopedPreview() {
|
|
117
|
+
const t = useT()
|
|
118
|
+
return (
|
|
119
|
+
<div className="flex w-full max-w-xl flex-col gap-6">
|
|
120
|
+
<QuickFilters presets={userScopedPresets(t)} userId="user-1" onApply={() => {}} />
|
|
121
|
+
<QuickFilters presets={userScopedPresets(t)} userId="" onApply={() => {}} />
|
|
122
|
+
</div>
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
const demoFilterDefs = (t: ReturnType<typeof useT>): FilterDef[] => [
|
|
126
|
+
{
|
|
127
|
+
id: 'city',
|
|
128
|
+
label: t('design_system.gallery.samples.content.city'),
|
|
129
|
+
type: 'text',
|
|
130
|
+
placeholder: t('design_system.gallery.samples.content.eGBerlin'),
|
|
131
|
+
},
|
|
41
132
|
{
|
|
42
133
|
id: 'status',
|
|
43
|
-
label: '
|
|
134
|
+
label: t('design_system.gallery.samples.content.status'),
|
|
44
135
|
type: 'select',
|
|
45
136
|
options: [
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
137
|
+
{
|
|
138
|
+
value: 'active',
|
|
139
|
+
label: t('design_system.gallery.samples.content.active'),
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
value: 'prospect',
|
|
143
|
+
label: t('design_system.gallery.samples.content.prospect'),
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
value: 'churned',
|
|
147
|
+
label: t('design_system.gallery.samples.content.churned'),
|
|
148
|
+
},
|
|
49
149
|
],
|
|
50
150
|
},
|
|
51
|
-
{
|
|
151
|
+
{
|
|
152
|
+
id: 'hasOpenDeals',
|
|
153
|
+
label: t('design_system.gallery.samples.content.hasOpenDeals'),
|
|
154
|
+
type: 'checkbox',
|
|
155
|
+
},
|
|
52
156
|
]
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
157
|
+
const demoFields = (t: ReturnType<typeof useT>): FilterFieldDef[] => [
|
|
158
|
+
{
|
|
159
|
+
key: 'name',
|
|
160
|
+
label: t('design_system.gallery.samples.content.name'),
|
|
161
|
+
type: 'text',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
key: 'email',
|
|
165
|
+
label: t('design_system.gallery.samples.content.email'),
|
|
166
|
+
type: 'text',
|
|
167
|
+
},
|
|
57
168
|
{
|
|
58
169
|
key: 'status',
|
|
59
|
-
label: '
|
|
170
|
+
label: t('design_system.gallery.samples.content.status'),
|
|
60
171
|
type: 'select',
|
|
61
172
|
options: [
|
|
62
|
-
{
|
|
63
|
-
|
|
64
|
-
|
|
173
|
+
{
|
|
174
|
+
value: 'active',
|
|
175
|
+
label: t('design_system.gallery.samples.content.active'),
|
|
176
|
+
tone: 'success',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
value: 'prospect',
|
|
180
|
+
label: t('design_system.gallery.samples.content.prospect'),
|
|
181
|
+
tone: 'info',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
value: 'churned',
|
|
185
|
+
label: t('design_system.gallery.samples.content.churned'),
|
|
186
|
+
tone: 'error',
|
|
187
|
+
},
|
|
65
188
|
],
|
|
66
189
|
},
|
|
67
|
-
{
|
|
190
|
+
{
|
|
191
|
+
key: 'employees',
|
|
192
|
+
label: t('design_system.gallery.samples.content.employees'),
|
|
193
|
+
type: 'number',
|
|
194
|
+
},
|
|
68
195
|
]
|
|
69
|
-
|
|
70
196
|
function rule(id: string, field: string, operator: FilterRule['operator'], value: unknown): FilterRule {
|
|
71
|
-
return {
|
|
197
|
+
return {
|
|
198
|
+
id,
|
|
199
|
+
type: 'rule',
|
|
200
|
+
field,
|
|
201
|
+
operator,
|
|
202
|
+
value,
|
|
203
|
+
}
|
|
72
204
|
}
|
|
73
|
-
|
|
74
205
|
function tree(children: FilterGroup['children']): AdvancedFilterTree {
|
|
75
|
-
return {
|
|
206
|
+
return {
|
|
207
|
+
root: {
|
|
208
|
+
id: 'root',
|
|
209
|
+
type: 'group',
|
|
210
|
+
combinator: 'and',
|
|
211
|
+
children,
|
|
212
|
+
},
|
|
213
|
+
}
|
|
76
214
|
}
|
|
77
|
-
|
|
78
215
|
const ruleChipsTree = tree([
|
|
79
216
|
rule('r1', 'name', 'contains', 'north'),
|
|
80
217
|
rule('r2', 'status', 'is', 'active'),
|
|
81
218
|
rule('r3', 'employees', 'between', [10, 50]),
|
|
82
219
|
])
|
|
83
|
-
|
|
84
220
|
const groupChipTree = tree([
|
|
85
221
|
{
|
|
86
222
|
id: 'g1',
|
|
87
223
|
type: 'group',
|
|
88
224
|
combinator: 'or',
|
|
89
|
-
children: [
|
|
90
|
-
rule('g1r1', 'status', 'is', 'prospect'),
|
|
91
|
-
rule('g1r2', 'status', 'is', 'churned'),
|
|
92
|
-
],
|
|
225
|
+
children: [rule('g1r1', 'status', 'is', 'prospect'), rule('g1r2', 'status', 'is', 'churned')],
|
|
93
226
|
},
|
|
94
227
|
])
|
|
95
|
-
|
|
96
228
|
const valuelessChipTree = tree([rule('r4', 'email', 'is_empty', null)])
|
|
97
|
-
|
|
98
229
|
const builderSingleRuleTree = tree([rule('b1', 'status', 'is', 'active')])
|
|
99
|
-
|
|
100
230
|
const builderNestedTree = tree([
|
|
101
231
|
rule('b2', 'name', 'contains', 'north'),
|
|
102
232
|
{
|
|
103
233
|
id: 'bg1',
|
|
104
234
|
type: 'group',
|
|
105
235
|
combinator: 'or',
|
|
106
|
-
children: [
|
|
107
|
-
rule('bg1r1', 'status', 'is', 'prospect'),
|
|
108
|
-
rule('bg1r2', 'employees', 'greater_than', 100),
|
|
109
|
-
],
|
|
236
|
+
children: [rule('bg1r1', 'status', 'is', 'prospect'), rule('bg1r2', 'employees', 'greater_than', 100)],
|
|
110
237
|
},
|
|
111
238
|
])
|
|
112
|
-
|
|
113
|
-
const demoPresets: FilterPreset[] = [
|
|
239
|
+
const demoPresets = (t: ReturnType<typeof useT>): FilterPreset[] => [
|
|
114
240
|
{
|
|
115
241
|
id: 'active-accounts',
|
|
116
|
-
labelKey: '
|
|
242
|
+
labelKey: t('design_system.gallery.samples.content.activeAccounts'),
|
|
117
243
|
iconName: 'filter',
|
|
118
244
|
build: () => tree([rule('p1', 'status', 'is', 'active')]),
|
|
119
245
|
},
|
|
120
246
|
{
|
|
121
247
|
id: 'added-this-week',
|
|
122
|
-
labelKey: '
|
|
248
|
+
labelKey: t('design_system.gallery.samples.content.addedThisWeek'),
|
|
123
249
|
iconName: 'clock',
|
|
124
250
|
build: () => tree([rule('p2', 'name', 'is_not_empty', null)]),
|
|
125
251
|
},
|
|
126
252
|
]
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
...demoPresets,
|
|
253
|
+
const userScopedPresets = (t: ReturnType<typeof useT>): FilterPreset[] => [
|
|
254
|
+
...demoPresets(t),
|
|
130
255
|
{
|
|
131
256
|
id: 'my-accounts',
|
|
132
|
-
labelKey: '
|
|
257
|
+
labelKey: t('design_system.gallery.samples.content.myAccounts'),
|
|
133
258
|
requiresUser: true,
|
|
134
259
|
build: ({ userId }) => tree([rule('p3', 'name', 'contains', userId)]),
|
|
135
260
|
},
|
|
@@ -141,21 +266,18 @@ const userScopedPresets: FilterPreset[] = [
|
|
|
141
266
|
// these wrappers.
|
|
142
267
|
// ---------------------------------------------------------------------------
|
|
143
268
|
|
|
144
|
-
function DemoFilterBar({
|
|
145
|
-
|
|
146
|
-
trailingItems,
|
|
147
|
-
}: {
|
|
148
|
-
layout?: 'stacked' | 'inline'
|
|
149
|
-
trailingItems?: React.ReactNode
|
|
150
|
-
}) {
|
|
269
|
+
function DemoFilterBar({ layout, trailingItems }: { layout?: 'stacked' | 'inline'; trailingItems?: React.ReactNode }) {
|
|
270
|
+
const t = useT()
|
|
151
271
|
const [search, setSearch] = React.useState('')
|
|
152
|
-
const [values, setValues] = React.useState<FilterValues>({
|
|
272
|
+
const [values, setValues] = React.useState<FilterValues>({
|
|
273
|
+
status: 'active',
|
|
274
|
+
})
|
|
153
275
|
return (
|
|
154
276
|
<div className="w-full max-w-2xl">
|
|
155
277
|
<FilterBar
|
|
156
278
|
searchValue={search}
|
|
157
279
|
onSearchChange={setSearch}
|
|
158
|
-
filters={demoFilterDefs}
|
|
280
|
+
filters={demoFilterDefs(t)}
|
|
159
281
|
values={values}
|
|
160
282
|
onApply={setValues}
|
|
161
283
|
onClear={() => setValues({})}
|
|
@@ -165,18 +287,21 @@ function DemoFilterBar({
|
|
|
165
287
|
</div>
|
|
166
288
|
)
|
|
167
289
|
}
|
|
168
|
-
|
|
169
290
|
function DemoActiveFilterChips({ initialTree }: { initialTree: AdvancedFilterTree }) {
|
|
291
|
+
const t = useT()
|
|
170
292
|
const [value, setValue] = React.useState(initialTree)
|
|
171
293
|
const removeNode = (id: string) =>
|
|
172
294
|
setValue((prev) => ({
|
|
173
|
-
root: {
|
|
295
|
+
root: {
|
|
296
|
+
...prev.root,
|
|
297
|
+
children: prev.root.children.filter((child) => child.id !== id),
|
|
298
|
+
},
|
|
174
299
|
}))
|
|
175
300
|
return (
|
|
176
301
|
<div className="w-full max-w-2xl">
|
|
177
302
|
<ActiveFilterChips
|
|
178
303
|
tree={value}
|
|
179
|
-
fields={demoFields}
|
|
304
|
+
fields={demoFields(t)}
|
|
180
305
|
popoverOpen={false}
|
|
181
306
|
onRemoveNode={removeNode}
|
|
182
307
|
onOpen={() => {}}
|
|
@@ -184,13 +309,13 @@ function DemoActiveFilterChips({ initialTree }: { initialTree: AdvancedFilterTre
|
|
|
184
309
|
</div>
|
|
185
310
|
)
|
|
186
311
|
}
|
|
187
|
-
|
|
188
312
|
function DemoAdvancedFilterBuilder({ initialTree }: { initialTree: AdvancedFilterTree }) {
|
|
313
|
+
const t = useT()
|
|
189
314
|
const [value, setValue] = React.useState(initialTree)
|
|
190
315
|
return (
|
|
191
316
|
<div className="w-full max-w-2xl rounded-lg border bg-popover p-3">
|
|
192
317
|
<AdvancedFilterBuilder
|
|
193
|
-
fields={demoFields}
|
|
318
|
+
fields={demoFields(t)}
|
|
194
319
|
value={value}
|
|
195
320
|
onChange={setValue}
|
|
196
321
|
onApply={() => {}}
|
|
@@ -199,8 +324,8 @@ function DemoAdvancedFilterBuilder({ initialTree }: { initialTree: AdvancedFilte
|
|
|
199
324
|
</div>
|
|
200
325
|
)
|
|
201
326
|
}
|
|
202
|
-
|
|
203
327
|
function DemoFilterEmptyState({ withQuickFilters }: { withQuickFilters?: boolean }) {
|
|
328
|
+
const t = useT()
|
|
204
329
|
const addConditionRef = React.useRef<HTMLButtonElement | null>(null)
|
|
205
330
|
return (
|
|
206
331
|
<div className="w-full max-w-xl rounded-lg border bg-popover">
|
|
@@ -208,15 +333,12 @@ function DemoFilterEmptyState({ withQuickFilters }: { withQuickFilters?: boolean
|
|
|
208
333
|
onAddCondition={() => {}}
|
|
209
334
|
addConditionRef={addConditionRef}
|
|
210
335
|
quickFilters={
|
|
211
|
-
withQuickFilters ? (
|
|
212
|
-
<QuickFilters presets={demoPresets} userId="user-1" onApply={() => {}} />
|
|
213
|
-
) : undefined
|
|
336
|
+
withQuickFilters ? <QuickFilters presets={demoPresets(t)} userId="user-1" onApply={() => {}} /> : undefined
|
|
214
337
|
}
|
|
215
338
|
/>
|
|
216
339
|
</div>
|
|
217
340
|
)
|
|
218
341
|
}
|
|
219
|
-
|
|
220
342
|
const filterBarEntry: GalleryEntry = {
|
|
221
343
|
id: 'filter-bar',
|
|
222
344
|
title: 'FilterBar',
|
|
@@ -261,16 +383,7 @@ const filters: FilterDef[] = [
|
|
|
261
383
|
{
|
|
262
384
|
id: 'trailing-items',
|
|
263
385
|
title: 'With trailing items',
|
|
264
|
-
render: () =>
|
|
265
|
-
<DemoFilterBar
|
|
266
|
-
trailingItems={
|
|
267
|
-
<Button variant="outline" size="sm">
|
|
268
|
-
<Download />
|
|
269
|
-
Export
|
|
270
|
-
</Button>
|
|
271
|
-
}
|
|
272
|
-
/>
|
|
273
|
-
),
|
|
386
|
+
render: () => <FilterBarEntryTrailingItemsPreview />,
|
|
274
387
|
code: `import { Download } from 'lucide-react'
|
|
275
388
|
import { FilterBar } from '@open-mercato/ui/backend/FilterBar'
|
|
276
389
|
import { Button } from '@open-mercato/ui/primitives/button'
|
|
@@ -286,7 +399,6 @@ import { Button } from '@open-mercato/ui/primitives/button'
|
|
|
286
399
|
},
|
|
287
400
|
],
|
|
288
401
|
}
|
|
289
|
-
|
|
290
402
|
const quickFiltersEntry: GalleryEntry = {
|
|
291
403
|
id: 'quick-filters',
|
|
292
404
|
title: 'QuickFilters',
|
|
@@ -295,11 +407,7 @@ const quickFiltersEntry: GalleryEntry = {
|
|
|
295
407
|
{
|
|
296
408
|
id: 'presets',
|
|
297
409
|
title: 'Presets (used inside AdvancedFilterPanel)',
|
|
298
|
-
render: () =>
|
|
299
|
-
<div className="w-full max-w-xl">
|
|
300
|
-
<QuickFilters presets={demoPresets} userId="user-1" onApply={() => {}} />
|
|
301
|
-
</div>
|
|
302
|
-
),
|
|
410
|
+
render: () => <QuickFiltersEntryPresetsPreview />,
|
|
303
411
|
code: `import { QuickFilters, type FilterPreset } from '@open-mercato/ui/backend/filters/QuickFilters'
|
|
304
412
|
|
|
305
413
|
const presets: FilterPreset[] = [
|
|
@@ -312,12 +420,7 @@ const presets: FilterPreset[] = [
|
|
|
312
420
|
{
|
|
313
421
|
id: 'user-scoped',
|
|
314
422
|
title: 'User-scoped preset (hidden without userId)',
|
|
315
|
-
render: () =>
|
|
316
|
-
<div className="flex w-full max-w-xl flex-col gap-6">
|
|
317
|
-
<QuickFilters presets={userScopedPresets} userId="user-1" onApply={() => {}} />
|
|
318
|
-
<QuickFilters presets={userScopedPresets} userId="" onApply={() => {}} />
|
|
319
|
-
</div>
|
|
320
|
-
),
|
|
423
|
+
render: () => <QuickFiltersEntryUserScopedPreview />,
|
|
321
424
|
code: `import { QuickFilters } from '@open-mercato/ui/backend/filters/QuickFilters'
|
|
322
425
|
|
|
323
426
|
// Presets with requiresUser: true are hidden when userId is empty.
|
|
@@ -325,7 +428,6 @@ const presets: FilterPreset[] = [
|
|
|
325
428
|
},
|
|
326
429
|
],
|
|
327
430
|
}
|
|
328
|
-
|
|
329
431
|
const activeFilterChipsEntry: GalleryEntry = {
|
|
330
432
|
id: 'active-filter-chips',
|
|
331
433
|
title: 'ActiveFilterChips',
|
|
@@ -365,7 +467,6 @@ const activeFilterChipsEntry: GalleryEntry = {
|
|
|
365
467
|
},
|
|
366
468
|
],
|
|
367
469
|
}
|
|
368
|
-
|
|
369
470
|
const advancedFilterBuilderEntry: GalleryEntry = {
|
|
370
471
|
id: 'advanced-filter-builder',
|
|
371
472
|
title: 'AdvancedFilterBuilder',
|
|
@@ -396,7 +497,6 @@ const advancedFilterBuilderEntry: GalleryEntry = {
|
|
|
396
497
|
},
|
|
397
498
|
],
|
|
398
499
|
}
|
|
399
|
-
|
|
400
500
|
const filterEmptyStateEntry: GalleryEntry = {
|
|
401
501
|
id: 'filter-empty-state',
|
|
402
502
|
title: 'FilterEmptyState',
|
|
@@ -425,7 +525,6 @@ import { QuickFilters } from '@open-mercato/ui/backend/filters/QuickFilters'
|
|
|
425
525
|
},
|
|
426
526
|
],
|
|
427
527
|
}
|
|
428
|
-
|
|
429
528
|
const listEmptyStateEntry: GalleryEntry = {
|
|
430
529
|
id: 'list-empty-state',
|
|
431
530
|
title: 'ListEmptyState',
|
|
@@ -434,11 +533,7 @@ const listEmptyStateEntry: GalleryEntry = {
|
|
|
434
533
|
{
|
|
435
534
|
id: 'with-create-action',
|
|
436
535
|
title: 'With create action',
|
|
437
|
-
render: () =>
|
|
438
|
-
<div className="w-full max-w-xl">
|
|
439
|
-
<ListEmptyState entityName="companies" onCreate={() => {}} createLabel="Add company" />
|
|
440
|
-
</div>
|
|
441
|
-
),
|
|
536
|
+
render: () => <ListEmptyStateEntryWithCreateActionPreview />,
|
|
442
537
|
code: `import { ListEmptyState } from '@open-mercato/ui/backend/filters/ListEmptyState'
|
|
443
538
|
|
|
444
539
|
// Pass to DataTable's emptyState for the zero-records case.
|
|
@@ -447,14 +542,7 @@ const listEmptyStateEntry: GalleryEntry = {
|
|
|
447
542
|
{
|
|
448
543
|
id: 'custom-copy',
|
|
449
544
|
title: 'Custom title and description',
|
|
450
|
-
render: () =>
|
|
451
|
-
<div className="w-full max-w-xl">
|
|
452
|
-
<ListEmptyState
|
|
453
|
-
title="No imports yet"
|
|
454
|
-
description="Connect a source or upload a CSV file to bring records in."
|
|
455
|
-
/>
|
|
456
|
-
</div>
|
|
457
|
-
),
|
|
545
|
+
render: () => <ListEmptyStateEntryCustomCopyPreview />,
|
|
458
546
|
code: `import { ListEmptyState } from '@open-mercato/ui/backend/filters/ListEmptyState'
|
|
459
547
|
|
|
460
548
|
<ListEmptyState
|
|
@@ -464,7 +552,6 @@ const listEmptyStateEntry: GalleryEntry = {
|
|
|
464
552
|
},
|
|
465
553
|
],
|
|
466
554
|
}
|
|
467
|
-
|
|
468
555
|
const filteredEmptyResultsEntry: GalleryEntry = {
|
|
469
556
|
id: 'filtered-empty-results',
|
|
470
557
|
title: 'FilteredEmptyResults',
|
|
@@ -473,16 +560,7 @@ const filteredEmptyResultsEntry: GalleryEntry = {
|
|
|
473
560
|
{
|
|
474
561
|
id: 'filters-only',
|
|
475
562
|
title: 'Filters active',
|
|
476
|
-
render: () =>
|
|
477
|
-
<div className="w-full max-w-xl">
|
|
478
|
-
<FilteredEmptyResults
|
|
479
|
-
entityNamePlural="companies"
|
|
480
|
-
canRemoveLast
|
|
481
|
-
onClearAll={() => {}}
|
|
482
|
-
onRemoveLast={() => {}}
|
|
483
|
-
/>
|
|
484
|
-
</div>
|
|
485
|
-
),
|
|
563
|
+
render: () => <FilteredEmptyResultsEntryFiltersOnlyPreview />,
|
|
486
564
|
code: `import { FilteredEmptyResults } from '@open-mercato/ui/backend/filters/FilteredEmptyResults'
|
|
487
565
|
|
|
488
566
|
// DataTable renders this automatically when filters match nothing.
|
|
@@ -496,17 +574,7 @@ const filteredEmptyResultsEntry: GalleryEntry = {
|
|
|
496
574
|
{
|
|
497
575
|
id: 'with-search',
|
|
498
576
|
title: 'Search and filters active',
|
|
499
|
-
render: () =>
|
|
500
|
-
<div className="w-full max-w-xl">
|
|
501
|
-
<FilteredEmptyResults
|
|
502
|
-
entityNamePlural="companies"
|
|
503
|
-
canRemoveLast
|
|
504
|
-
onClearAll={() => {}}
|
|
505
|
-
onRemoveLast={() => {}}
|
|
506
|
-
onClearSearch={() => {}}
|
|
507
|
-
/>
|
|
508
|
-
</div>
|
|
509
|
-
),
|
|
577
|
+
render: () => <FilteredEmptyResultsEntryWithSearchPreview />,
|
|
510
578
|
code: `import { FilteredEmptyResults } from '@open-mercato/ui/backend/filters/FilteredEmptyResults'
|
|
511
579
|
|
|
512
580
|
// Passing onClearSearch switches to combined copy and clears both at once.
|
|
@@ -520,7 +588,6 @@ const filteredEmptyResultsEntry: GalleryEntry = {
|
|
|
520
588
|
},
|
|
521
589
|
],
|
|
522
590
|
}
|
|
523
|
-
|
|
524
591
|
const searchEmptyResultsEntry: GalleryEntry = {
|
|
525
592
|
id: 'search-empty-results',
|
|
526
593
|
title: 'SearchEmptyResults',
|
|
@@ -542,23 +609,51 @@ const searchEmptyResultsEntry: GalleryEntry = {
|
|
|
542
609
|
{
|
|
543
610
|
id: 'with-entity',
|
|
544
611
|
title: 'With entity label',
|
|
545
|
-
render: () =>
|
|
546
|
-
<div className="flex w-full max-w-xl justify-center">
|
|
547
|
-
<SearchEmptyResults
|
|
548
|
-
query="northwind"
|
|
549
|
-
entityNamePlural="companies"
|
|
550
|
-
onClearSearch={() => {}}
|
|
551
|
-
/>
|
|
552
|
-
</div>
|
|
553
|
-
),
|
|
612
|
+
render: () => <SearchEmptyResultsEntryWithEntityPreview />,
|
|
554
613
|
code: `import { SearchEmptyResults } from '@open-mercato/ui/backend/filters/SearchEmptyResults'
|
|
555
614
|
|
|
556
615
|
<SearchEmptyResults query={search} entityNamePlural="companies" onClearSearch={() => setSearch('')} />`,
|
|
557
616
|
},
|
|
558
617
|
],
|
|
559
618
|
}
|
|
560
|
-
|
|
561
619
|
export const entries: GalleryEntry[] = [
|
|
620
|
+
{
|
|
621
|
+
id: 'filter-toolbar',
|
|
622
|
+
title: 'Filter Compositions',
|
|
623
|
+
importPath: '@open-mercato/ui/primitives/filter-toolbar',
|
|
624
|
+
figmaNodeId: '4370:6018',
|
|
625
|
+
descriptionKey: 'design_system.entries.filterToolbar.description',
|
|
626
|
+
variants: [
|
|
627
|
+
{
|
|
628
|
+
id: 'table',
|
|
629
|
+
title: 'Horizontal / table',
|
|
630
|
+
render: () => <SourceFilterToolbar type="table" />,
|
|
631
|
+
code: sourceFilterExampleCode('<SourceFilterToolbar type="table" />'),
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
id: 'calendar',
|
|
635
|
+
title: 'Horizontal / calendar',
|
|
636
|
+
render: () => <SourceFilterToolbar type="calendar" />,
|
|
637
|
+
code: sourceFilterExampleCode('<SourceFilterToolbar type="calendar" />'),
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
id: 'vertical-parts',
|
|
641
|
+
title: 'Vertical / items, header and footer',
|
|
642
|
+
render: () => <SourceFilterParts />,
|
|
643
|
+
code: sourceFilterExampleCode('<SourceFilterParts />'),
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
id: 'vertical-panel',
|
|
647
|
+
title: 'Vertical / apply draft filters',
|
|
648
|
+
render: () => (
|
|
649
|
+
<div className="w-[640px] max-w-full rounded-lg border border-border">
|
|
650
|
+
<SourceFilterPanel />
|
|
651
|
+
</div>
|
|
652
|
+
),
|
|
653
|
+
code: sourceFilterExampleCode('<SourceFilterPanel />'),
|
|
654
|
+
},
|
|
655
|
+
],
|
|
656
|
+
},
|
|
562
657
|
filterBarEntry,
|
|
563
658
|
quickFiltersEntry,
|
|
564
659
|
activeFilterChipsEntry,
|