@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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/design_system/gallery/demos/ai-product.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport { ArrowLeft, BookOpen, ChevronDown, ChevronRight, Folder, Mail, Menu, MoreHorizontal, MoreVertical, PanelLeft, Plus, Search, User, X, Zap } from 'lucide-react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { SearchInput } from '@open-mercato/ui/primitives/search-input'\nimport { FieldLabel } from '@open-mercato/ui/primitives/label'\nimport { HintText } from '@open-mercato/ui/primitives/hint-text'\nimport { KeyIconGlyph } from '@open-mercato/ui/primitives/key-icon'\nimport { DigitInput } from '@open-mercato/ui/primitives/digit-input'\nimport { CounterInput } from '@open-mercato/ui/primitives/counter-input'\nimport { Select, SelectTrigger, SelectContent, SelectItem, SelectValue } from '@open-mercato/ui/primitives/select'\nimport { Popover, PopoverTrigger, PopoverContent } from '@open-mercato/ui/primitives/popover'\nimport { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\nimport { SocialButton } from '@open-mercato/ui/primitives/social-button'\nimport { Avatar } from '@open-mercato/ui/primitives/avatar'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { Sidebar } from '@open-mercato/ui/primitives/sidebar'\nimport { PromptArea } from '@open-mercato/ui/primitives/prompt-area'\nimport { FileFormatIcon } from '@open-mercato/ui/primitives/file-format-icon'\nimport { aiProductArtwork } from '@open-mercato/ui/assets/ai-product-artwork'\nimport promptImage from '../assets/ai-prompt-image.png'\nimport avatarPhoto from '../assets/avatar-photo.png'\nimport googleIcon from '../assets/select-google.png'\n\ntype ButtonProps = React.ComponentProps<typeof Button>\n\nconst prefix = 'design_system.gallery.examples.aiProduct.'\nconst source = (asset: string | { readonly src: string }) => typeof asset === 'string' ? asset : asset.src\n\nfunction AiIconButton({ size = 32, tone = 'default', appearance = 'plain', className, children, ...props }: Omit<ButtonProps, 'size'> & { size?: 20 | 24 | 28 | 32; tone?: 'default' | 'error'; appearance?: 'plain' | 'stroke' | 'lighter' }) {\n const content = React.isValidElement<{ className?: string }>(children) && children.type !== 'img'\n ? React.cloneElement(children, { className: cn(children.props.className, size === 24 ? 'size-4.5' : 'size-5') })\n : children\n return <Button type=\"button\" variant=\"ghost\" size=\"icon\" data-slot=\"ai-icon-button\" data-size={size} data-tone={tone} data-appearance={appearance} className={cn(\n 'shrink-0 p-0',\n size === 32 ? 'size-8 rounded-md' : size === 28 ? 'size-7 rounded-md' : size === 24 ? 'size-6 rounded-sm' : 'size-5 rounded-sm',\n appearance !== 'plain' && 'rounded-ai-control',\n appearance === 'stroke' ? 'bg-background shadow-xs ring-1 ring-inset ring-border' : appearance === 'lighter' ? 'bg-muted' : 'bg-background',\n tone === 'error' ? 'text-status-error-text hover:bg-status-error-bg hover:text-status-error-text aria-pressed:bg-status-error-bg aria-pressed:text-status-error-text' : 'text-muted-foreground hover:bg-muted hover:text-foreground aria-pressed:bg-muted aria-pressed:text-foreground',\n appearance !== 'plain' && 'aria-pressed:bg-primary aria-pressed:text-primary-foreground',\n className,\n )} {...props}>{content}</Button>\n}\n\nfunction AiModelSelect({ value, onChange, compact = false, className }: { value: string; onChange: (value: string) => void; compact?: boolean; className?: string }) {\n const t = useT()\n return <Select value={value} onValueChange={onChange}><SelectTrigger aria-label={t(`${prefix}model`)} data-slot=\"ai-model-select\" className={cn('h-7 w-auto min-w-19.75 gap-1 rounded-ai-control border-0 bg-muted py-1 pl-2 pr-1 text-sm leading-5 shadow-none hover:bg-accent [&>svg]:size-5', compact && 'h-5 bg-transparent p-0', className)}><SelectValue /></SelectTrigger><SelectContent>{['GPT-4', 'GPT-3.5'].map(model => <SelectItem key={model} value={model}>{model}</SelectItem>)}</SelectContent></Select>\n}\n\ntype PromptAttachment = { id: string; name: string; image?: string; objectUrl?: boolean }\n\nexport function AiPromptExample({ compact = false, attachment = 'none' }: { compact?: boolean; attachment?: 'none' | 'file' | 'image' }) {\n const t = useT()\n const [value, setValue] = React.useState('')\n const [model, setModel] = React.useState('GPT-4')\n const [lastPrompt, setLastPrompt] = React.useState('')\n const [files, setFiles] = React.useState<PromptAttachment[]>(attachment === 'none' ? [] : [{ id: 'source', name: t(`${prefix}${attachment === 'image' ? 'imageName' : 'fileName'}`), image: attachment === 'image' ? source(promptImage) : undefined }])\n const upload = React.useRef<HTMLInputElement>(null)\n const attachmentId = React.useRef(0)\n const objectUrls = React.useRef(new Set<string>())\n React.useEffect(() => () => { for (const url of objectUrls.current) URL.revokeObjectURL(url) }, [])\n const remove = (id: string) => setFiles(current => current.filter(file => {\n if (file.id !== id) return true\n if (file.objectUrl && file.image) { URL.revokeObjectURL(file.image); objectUrls.current.delete(file.image) }\n return false\n }))\n const submit = (message: string) => { setLastPrompt(`${model}: ${message}`); setValue('') }\n return <div className={cn('grid max-w-full gap-4', compact ? 'w-93.5' : 'w-175')}>\n <PromptArea compact={compact} value={value} onValueChange={setValue} onSubmit={submit} inputLabel={t(`${prefix}prompt`)} submitLabel={t(`${prefix}saveDraft`)} placeholder={t(`${prefix}placeholder`)} information={<><Zap aria-hidden=\"true\" className=\"size-4 shrink-0\" /><span>{t(`${prefix}premium`)}</span><span aria-hidden=\"true\">\u00B7</span><Popover><PopoverTrigger asChild><Button type=\"button\" variant=\"ghost\" className=\"h-4 rounded-sm p-0 text-xs font-medium leading-4\">{t(`${prefix}upgrade`)}</Button></PopoverTrigger><PopoverContent className=\"text-sm\">{t(`${prefix}localOnly`)}</PopoverContent></Popover></>}\n toolbar={<><AiIconButton size={28} appearance=\"lighter\" aria-label={t(`${prefix}addFile`)} onClick={() => upload.current?.click()}><Plus aria-hidden=\"true\" /></AiIconButton><AiModelSelect value={model} onChange={setModel} /></>}\n attachments={files.length ? files.map(file => file.image ? <div key={file.id} className=\"relative size-24 shrink-0\"><img src={file.image} alt={file.name} className=\"size-24 rounded-xl object-cover\" /><AiIconButton size={20} aria-label={`${t(`${prefix}remove`)} ${file.name}`} className=\"absolute right-1.5 top-1.5 rounded-full bg-primary text-primary-foreground hover:bg-primary-hover hover:text-primary-foreground\" onClick={() => remove(file.id)}><X aria-hidden=\"true\" /></AiIconButton></div> : <div key={file.id} className=\"flex h-15 max-w-full items-center gap-3 rounded-xl bg-muted py-2.5 pl-3 pr-4\"><FileFormatIcon format={file.name.includes('.') ? file.name.split('.').pop()?.toUpperCase().slice(0, 5) ?? 'FILE' : 'FILE'} /><div className=\"grid min-w-0 gap-1\"><span className=\"truncate text-sm font-medium\">{file.name}</span><span className=\"text-xs text-muted-foreground\">{t(`${prefix}localFile`)}</span></div><AiIconButton size={20} aria-label={`${t(`${prefix}remove`)} ${file.name}`} onClick={() => remove(file.id)}><X aria-hidden=\"true\" /></AiIconButton></div>) : undefined} />\n <input ref={upload} type=\"file\" className=\"sr-only\" tabIndex={-1} aria-label={t(`${prefix}attachmentInput`)} multiple onChange={event => { const selected = Array.from(event.target.files ?? []); setFiles(current => [...current, ...selected.map(file => { const image = file.type.startsWith('image/') ? URL.createObjectURL(file) : undefined; if (image) objectUrls.current.add(image); return { id: `attachment-${attachmentId.current++}`, name: file.name, image, objectUrl: Boolean(image) } })]); event.target.value = '' }} />\n <p className=\"text-xs leading-4 text-muted-foreground\">{t(`${prefix}localOnly`)}</p>\n {lastPrompt ? <output className=\"rounded-md border border-border p-3 text-sm\">{t(`${prefix}saved`)} {lastPrompt}</output> : null}\n </div>\n}\n\nexport function AiIconButtonExamples({ chat = false }: { chat?: boolean }) {\n const t = useT()\n const [active, setActive] = React.useState<string[]>([])\n const toggle = (key: string) => setActive(items => items.includes(key) ? items.filter(item => item !== key) : [...items, key])\n return <div className=\"grid gap-5\">{chat ? <div className=\"flex gap-5\">{(['stroke', 'lighter'] as const).map(appearance => <AiIconButton key={appearance} size={28} appearance={appearance} aria-label={`${t(`${prefix}toggleControl`)} ${appearance}`} aria-pressed={active.includes(appearance)} onClick={() => toggle(appearance)}><Plus aria-hidden=\"true\" /></AiIconButton>)}</div> : (['default', 'error'] as const).map(tone => <div key={tone} className=\"flex items-center gap-5\">{([32, 28, 24, 20] as const).map(size => <AiIconButton key={size} size={size} tone={tone} aria-label={`${t(`${prefix}${tone}`)} ${size}`} aria-pressed={active.includes(`${tone}-${size}`)} onClick={() => toggle(`${tone}-${size}`)}><ChevronDown aria-hidden=\"true\" /></AiIconButton>)}</div>)}</div>\n}\n\nfunction AiNavItem({ children, icon = true, leading, mobile = false, active = false, className, ...props }: ButtonProps & { icon?: boolean; leading?: React.ReactNode; mobile?: boolean; active?: boolean }) {\n return <Button type=\"button\" variant=\"ghost\" size=\"sm\" data-slot=\"ai-nav-item\" data-mobile={mobile} data-leading={icon} aria-current={active ? 'page' : undefined} className={cn('group h-8 w-61 max-w-full justify-start gap-2 rounded-md bg-background py-1.5 pl-1.5 pr-2 text-sm font-medium leading-5 text-muted-foreground hover:bg-muted hover:text-foreground', active && 'bg-muted text-foreground', !icon && 'hover:pl-2.5', !icon && active && 'pl-2.5', className)} {...props}>\n {icon ? leading ?? <Folder aria-hidden=\"true\" className=\"size-5\" /> : null}<span className=\"min-w-0 flex-1 truncate text-left\">{children}</span>{icon ? <ChevronRight aria-hidden=\"true\" className={cn('size-4.5 shrink-0', !mobile && !active && 'hidden group-hover:block group-focus-visible:block')} /> : <MoreVertical aria-hidden=\"true\" className={cn('size-4.5 shrink-0', !mobile && (active ? 'hidden' : 'hidden group-hover:block group-focus-visible:block'))} />}\n </Button>\n}\n\nexport function AiNavigationExamples() {\n const t = useT()\n const [active, setActive] = React.useState<string[]>([])\n return <div className=\"grid gap-4\">{[false, true].flatMap(mobile => [true, false].map(icon => { const key = `${mobile}-${icon}`; return <AiNavItem key={key} icon={icon} mobile={mobile} active={active.includes(key)} onClick={() => setActive(values => values.includes(key) ? values.filter(value => value !== key) : [...values, key])}>{t(`${prefix}projects`)}</AiNavItem> }))}</div>\n}\n\nexport function AiSearchExamples() {\n const t = useT()\n const [query, setQuery] = React.useState('')\n return <div className=\"grid w-64 max-w-full gap-4\">{(['default', 'sm'] as const).map(size => <SearchInput key={size} size={size} value={query} onChange={setQuery} clearable={false} aria-label={`${t(`${prefix}search`)} ${size}`} placeholder={t(`${prefix}searchPlaceholder`)} className={cn('rounded-lg border-0 px-2 shadow-none focus-within:bg-background [&>svg]:size-5', size === 'sm' ? 'bg-background hover:bg-muted' : 'bg-muted')} />)}<output className=\"text-xs text-muted-foreground\">{t(`${prefix}query`)} {query}</output></div>\n}\n\nexport function AiAuthExamples({ kind = 'icons' }: { kind?: 'icons' | 'social' | 'text' | 'digits' }) {\n const t = useT()\n const [value, setValue] = React.useState('')\n const [clicked, setClicked] = React.useState(false)\n const id = React.useId()\n if (kind === 'icons') return <div className=\"grid w-full max-w-lg grid-cols-2 gap-6 sm:grid-cols-4\">{(['signIn', 'signUp', 'reset', 'verification', 'signInGray', 'signUpGray', 'resetGray', 'verificationGray'] as const).map(key => <div key={key} className=\"grid justify-items-center gap-2\"><span className=\"flex size-14 items-center justify-center rounded-full border border-status-neutral-bg bg-background\"><img src={aiProductArtwork[key]} alt=\"\" className=\"size-8\" /></span><span className=\"text-xs text-muted-foreground\">{t(`${prefix}${key.replace('Gray', '')}`)}{key.endsWith('Gray') ? ` \u00B7 ${t(`${prefix}gray`)}` : ''}</span></div>)}</div>\n if (kind === 'social') return <div className=\"grid gap-3\"><SocialButton type=\"button\" brand=\"google\" appearance=\"stroke\" className=\"h-auto min-h-10 w-fit max-w-full whitespace-normal py-2 text-left\" onClick={() => setClicked(true)}><img src={source(googleIcon)} alt=\"\" className=\"size-5 shrink-0\" /><span className=\"min-w-0\">{t(`${prefix}google`)}</span></SocialButton>{clicked ? <output className=\"max-w-sm text-xs text-muted-foreground\">{t(`${prefix}localOnly`)}</output> : null}</div>\n if (kind === 'digits') return <div className=\"grid gap-4\">{[false, true].map(disabled => <DigitInput key={String(disabled)} length={4} value={disabled ? '1234' : value} onChange={setValue} disabled={disabled} aria-label={`${t(`${prefix}verification`)} ${disabled ? t(`${prefix}disabled`) : t(`${prefix}editable`)}`} cellClassName=\"size-12 sm:w-12 rounded-ai-input px-2 py-2.5 text-lg leading-6\" />)}<output className=\"text-xs text-muted-foreground\">{value}</output></div>\n return <div className=\"grid w-83 max-w-full gap-5\">{[false, true].map(disabled => <div key={String(disabled)} data-slot=\"ai-text-input\" className=\"grid gap-1\"><FieldLabel htmlFor={`${id}-${disabled}`} disabled={disabled} required>{t(`${prefix}email`)}</FieldLabel><Input id={`${id}-${disabled}`} type=\"email\" value={disabled ? 'james@example.com' : value} onChange={event => setValue(event.target.value)} disabled={disabled} aria-required aria-describedby={`${id}-${disabled}-hint`} placeholder=\"hello@alignui.com\" leading={<Mail aria-hidden=\"true\" className=\"size-5 text-muted-foreground\" />} size=\"lg\" className=\"rounded-ai-input\" /><HintText id={`${id}-${disabled}-hint`} state={disabled ? 'disabled' : 'default'} leading={<KeyIconGlyph name=\"information\" />} className=\"pt-1\">{t(`${prefix}hint`)}</HintText></div>)}</div>\n}\n\nexport function AiSettingsExamples() {\n const t = useT()\n const [tab, setTab] = React.useState('people')\n const [size, setSize] = React.useState('medium')\n const [count, setCount] = React.useState<number | null>(30)\n const [model, setModel] = React.useState('GPT-4')\n return <div className=\"grid gap-6\"><div className=\"grid gap-2\">{(['people', 'profile'] as const).map(value => <Button key={value} type=\"button\" variant=\"ghost\" data-slot=\"ai-settings-item\" aria-pressed={tab === value} className=\"h-auto min-h-10 w-56 max-w-full justify-start gap-2 rounded-lg bg-background px-3 py-2 text-sm text-muted-foreground hover:bg-muted aria-pressed:bg-muted aria-pressed:text-foreground\" onClick={() => setTab(value)}>{value === 'profile' ? <span aria-hidden=\"true\"><Avatar size={20} label=\"James Brown\" src={source(avatarPhoto)} /></span> : <User aria-hidden=\"true\" className=\"size-5\" />}<span className=\"min-w-0 flex-1 whitespace-normal text-left\">{value === 'profile' ? 'James Brown' : t(`${prefix}people`)}</span>{tab === value ? <ChevronRight aria-hidden=\"true\" className=\"size-4.5\" /> : null}</Button>)}</div><output className=\"text-sm text-muted-foreground\">{t(`${prefix}${tab}`)}</output>\n <div className=\"flex flex-wrap items-center gap-5\"><Select value={size} onValueChange={setSize}><SelectTrigger data-slot=\"ai-size-select\" aria-label={t(`${prefix}responseLength`)} className=\"w-auto min-w-28 gap-2 rounded-lg [&>svg]:size-5\"><SelectValue /></SelectTrigger><SelectContent>{['small', 'medium', 'large'].map(value => <SelectItem key={value} value={value}>{t(`${prefix}${value}`)}</SelectItem>)}</SelectContent></Select><CounterInput data-slot=\"ai-counter\" value={count} min={0} max={99} onChange={setCount} size=\"default\" aria-label={t(`${prefix}historyLimit`)} decrementAriaLabel={t(`${prefix}decrease`)} incrementAriaLabel={t(`${prefix}increase`)} className=\"w-28 rounded-lg\" inputClassName=\"text-sm\" /><AiModelSelect value={model} onChange={setModel} className=\"h-9 px-3 py-2\" /></div>\n </div>\n}\n\nfunction AiNewChatButton({ onClick }: { onClick: () => void }) {\n const t = useT()\n return <Button type=\"button\" variant=\"ghost\" data-slot=\"ai-new-chat\" className=\"h-auto min-h-8 w-61 max-w-full justify-start gap-2 rounded-md p-1.5 text-sm text-status-success-text hover:bg-status-success-bg hover:text-status-success-text\" onClick={onClick}><span aria-hidden=\"true\" className=\"flex size-5 items-center justify-center rounded-full bg-status-success-solid text-status-success-solid-foreground\"><Plus className=\"size-3.5\" /></span><span className=\"min-w-0 whitespace-normal text-left\">{t(`${prefix}newChat`)}</span></Button>\n}\n\nexport function AiNewChatExample() {\n const t = useT()\n const [draft, setDraft] = React.useState(0)\n return <div className=\"grid gap-3\"><AiNewChatButton onClick={() => setDraft(value => value + 1)} /><output className=\"text-xs text-muted-foreground\">{t(`${prefix}draftNumber`, { number: draft })}</output></div>\n}\n\nfunction AiDivider() {\n return <div role=\"separator\" className=\"flex h-1 shrink-0 items-center px-1.5\"><span className=\"h-px w-full bg-border\" /></div>\n}\n\nexport function AiSidebarExample({ search = '01', initialCollapsed = false }: { search?: '01' | '02' | '03'; initialCollapsed?: boolean }) {\n const t = useT()\n const [collapsed, setCollapsed] = React.useState(initialCollapsed)\n const [query, setQuery] = React.useState('')\n const [active, setActive] = React.useState('projects')\n const [draft, setDraft] = React.useState(0)\n const newChat = () => { setDraft(value => value + 1); setActive('newChat') }\n const searchControl = <SearchInput value={query} onChange={setQuery} clearable={false} aria-label={t(`${prefix}search`)} placeholder={t(`${prefix}searchPlaceholder`)} className=\"h-9 w-61 max-w-full rounded-lg border-0 bg-muted px-2 shadow-none [&>svg]:size-5\" />\n const searchPopover = <Popover><PopoverTrigger asChild><AiIconButton aria-label={t(`${prefix}search`)}><Search aria-hidden=\"true\" /></AiIconButton></PopoverTrigger><PopoverContent className=\"w-auto p-3\">{searchControl}<p className=\"mt-2 text-xs text-muted-foreground\">{t(`${prefix}query`)} {query}</p></PopoverContent></Popover>\n const groups = [\n { label: 'pinned', items: ['launchPlan', 'researchNotes', 'contentIdeas'], icon: true },\n { label: 'recent', items: ['quarterlyReport', 'emailDraft', 'meetingNotes'], icon: false },\n { label: 'yesterday', items: ['campaignIdeas', 'productBrief', 'supportReply', 'weeklyPlan', 'projectSummary'], icon: false },\n ]\n return <div className=\"flex max-w-full flex-wrap items-start gap-5\">\n <Sidebar collapsed={collapsed} aria-label={t(`${prefix}sidebar`)} className={cn('max-w-full rounded-lg border border-border', collapsed ? 'w-18 gap-5 border-0 p-5' : 'w-68 gap-4 border-0 px-3.5 pb-3.5 pt-5')}>\n <div className=\"flex shrink-0 flex-col gap-5\"><div className=\"flex h-8 items-center justify-between\">\n {collapsed ? <AiIconButton aria-label={t(`${prefix}expand`)} onClick={() => setCollapsed(false)}><img src={aiProductArtwork.logo} alt=\"\" className=\"size-8\" /></AiIconButton> : <><img src={aiProductArtwork.logo} alt={t(`${prefix}brand`)} className=\"size-8\" /><div className=\"flex gap-1\">{search === '02' ? searchPopover : null}<AiIconButton aria-label={t(`${prefix}collapse`)} onClick={() => setCollapsed(true)}><PanelLeft aria-hidden=\"true\" /></AiIconButton></div></>}\n </div>{!collapsed && search === '01' ? searchControl : null}</div>\n {collapsed ? <><AiDivider /><div className=\"flex flex-1 flex-col gap-3\"><AiIconButton aria-label={t(`${prefix}newChat`)} onClick={newChat}><Plus aria-hidden=\"true\" /></AiIconButton><AiIconButton aria-label={t(`${prefix}projects`)} aria-pressed={active === 'projects'} onClick={() => setActive('projects')}><Folder aria-hidden=\"true\" /></AiIconButton><AiIconButton aria-label={t(`${prefix}library`)} aria-pressed={active === 'library'} onClick={() => setActive('library')}><BookOpen aria-hidden=\"true\" /></AiIconButton>{searchPopover}</div><AiDivider /></> : <>\n <div className=\"grid shrink-0 gap-1\"><AiNewChatButton onClick={newChat} /><AiNavItem active={active === 'projects'} onClick={() => setActive('projects')}>{t(`${prefix}projects`)}</AiNavItem><AiNavItem leading={<BookOpen aria-hidden=\"true\" className=\"size-5\" />} active={active === 'library'} onClick={() => setActive('library')}>{t(`${prefix}library`)}</AiNavItem>{search === '03' ? <Popover><PopoverTrigger asChild><Button type=\"button\" variant=\"ghost\" className=\"h-8 justify-start gap-2 rounded-md p-1.5 text-sm text-muted-foreground\"><Search aria-hidden=\"true\" className=\"size-5\" />{t(`${prefix}search`)}</Button></PopoverTrigger><PopoverContent className=\"w-auto p-3\">{searchControl}</PopoverContent></Popover> : null}</div>\n <AiDivider /><div className=\"flex min-h-0 flex-1 flex-col gap-4 overflow-auto\">\n {groups.map((group, groupIndex) => <React.Fragment key={group.label}>{groupIndex === 1 ? <AiDivider /> : null}<div className=\"grid shrink-0 gap-2\"><h3 className=\"px-1.5 text-xs font-medium leading-4 text-muted-foreground\">{t(`${prefix}${group.label}`)}</h3><div className=\"grid gap-1\">{group.items.filter(item => t(`${prefix}${item}`).toLocaleLowerCase().includes(query.toLocaleLowerCase())).map(item => <AiNavItem key={item} icon={group.icon} active={active === item} onClick={() => setActive(item)}>{t(`${prefix}${item}`)}</AiNavItem>)}</div></div></React.Fragment>)}\n </div><AiDivider />\n </>}\n <Popover><PopoverTrigger asChild><Button type=\"button\" variant=\"ghost\" aria-label={t(`${prefix}profile`)} data-slot=\"ai-sidebar-profile\" className={cn('shrink-0 justify-start rounded-md text-left', collapsed ? 'size-8 p-0' : 'h-13 gap-3 p-1.5')}><Avatar label=\"James Brown\" size={collapsed ? 32 : 40} />{!collapsed ? <><span className=\"flex min-w-0 flex-1 flex-col gap-1\"><span className=\"flex items-center gap-1 text-sm font-medium leading-5\">James Brown <Badge size={16} appearance=\"light\">Pro</Badge></span><span className=\"truncate text-xs font-normal leading-4 text-muted-foreground\">james@example.com</span></span><MoreVertical aria-hidden=\"true\" className=\"size-4.5\" /></> : null}</Button></PopoverTrigger><PopoverContent className=\"w-64 text-sm\"><p className=\"font-medium\">James Brown</p><p className=\"mt-2 text-muted-foreground\">{t(`${prefix}localOnly`)}</p></PopoverContent></Popover>\n </Sidebar><output aria-live=\"polite\" className=\"grid max-w-xs gap-2 text-sm text-muted-foreground\"><span>{t(`${prefix}selected`)} {t(`${prefix}${active}`)}</span><span>{t(`${prefix}draftNumber`, { number: draft })}</span>{query ? <span>{t(`${prefix}query`)} {query}</span> : null}</output>\n </div>\n}\n\nexport function AiMobileNavigationExample({ kind = 'default' }: { kind?: 'default' | 'in-projects' | 'projects' | 'project-details' }) {\n const t = useT()\n const [model, setModel] = React.useState('GPT-4')\n const [selected, setSelected] = React.useState('projects')\n const [draft, setDraft] = React.useState(0)\n const [project, setProject] = React.useState('')\n const [name, setName] = React.useState('')\n const [createOpen, setCreateOpen] = React.useState(false)\n const [pinned, setPinned] = React.useState(false)\n const id = React.useId()\n const menu = <Popover><PopoverTrigger asChild><AiIconButton aria-label={t(`${prefix}menu`)}><Menu aria-hidden=\"true\" /></AiIconButton></PopoverTrigger><PopoverContent className=\"grid w-auto gap-1 p-2\">{['projects', 'library'].map(item => <AiNavItem key={item} mobile active={selected === item} onClick={() => setSelected(item)}>{t(`${prefix}${item}`)}</AiNavItem>)}</PopoverContent></Popover>\n const more = <Popover><PopoverTrigger asChild><AiIconButton size={kind === 'project-details' ? 24 : 32} aria-label={t(`${prefix}more`)}><MoreHorizontal aria-hidden=\"true\" /></AiIconButton></PopoverTrigger><PopoverContent className=\"w-64\"><CheckboxField checked={pinned} onCheckedChange={value => setPinned(value === true)} label={t(`${prefix}pinProject`)} /></PopoverContent></Popover>\n const create = () => { if (!name.trim()) return; setProject(name.trim()); setName(''); setCreateOpen(false) }\n return <div className=\"grid w-full min-w-0 max-w-sm grid-cols-1 gap-4\"><header data-slot=\"ai-mobile-navigation\" data-kind={kind} className={cn('flex h-16 w-full min-w-0 items-center gap-2 bg-background px-2 py-3 sm:px-4', kind === 'project-details' ? 'sm:gap-2.5' : 'sm:gap-3.5')}>\n {kind === 'project-details' ? <><AiIconButton size={20} aria-label={t(`${prefix}allProjects`)} onClick={() => setSelected('projects')}><ArrowLeft aria-hidden=\"true\" /></AiIconButton><span className=\"flex-1 text-sm font-medium\">{t(`${prefix}allProjects`)}</span><div className=\"flex gap-2\"><AiIconButton size={24} aria-label={t(`${prefix}newChat`)} onClick={() => setDraft(value => value + 1)}><Plus aria-hidden=\"true\" /></AiIconButton>{more}</div></> : <>{menu}{kind === 'projects' ? <div className=\"flex flex-1 justify-end\"><Popover open={createOpen} onOpenChange={setCreateOpen}><PopoverTrigger asChild><Button type=\"button\" size=\"sm\" variant=\"outline\" className=\"w-auto shrink-0 gap-2 rounded-lg\"><Plus aria-hidden=\"true\" className=\"size-5\" />{t(`${prefix}addProject`)}</Button></PopoverTrigger><PopoverContent className=\"w-72\"><form className=\"grid gap-3\" onSubmit={event => { event.preventDefault(); create() }} onKeyDown={event => { if (event.key === 'Enter' && (event.ctrlKey || event.metaKey)) { event.preventDefault(); create() } }}><FieldLabel htmlFor={id} required>{t(`${prefix}projectName`)}</FieldLabel><Input id={id} value={name} onChange={event => setName(event.target.value)} autoFocus /><Button type=\"submit\" size=\"sm\" disabled={!name.trim()}>{t(`${prefix}addProject`)}</Button></form></PopoverContent></Popover></div> : <><div className=\"flex min-w-0 flex-1 flex-col gap-1\"><AiModelSelect value={model} onChange={setModel} compact />{kind === 'in-projects' ? <span className=\"truncate text-xs leading-4 text-muted-foreground\">{t(`${prefix}launchPlan`)}</span> : null}</div><AiIconButton aria-label={t(`${prefix}newChat`)} onClick={() => setDraft(value => value + 1)}><Plus aria-hidden=\"true\" /></AiIconButton>{more}</>}</>}\n </header><output aria-live=\"polite\" className=\"grid gap-1 text-xs text-muted-foreground\"><span>{t(`${prefix}selected`)} {t(`${prefix}${selected}`)}</span><span>{t(`${prefix}draftNumber`, { number: draft })}</span>{project ? <span>{t(`${prefix}createdProject`)} {project}</span> : null}{pinned ? <span>{t(`${prefix}pinProject`)}</span> : null}</output></div>\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { MoreHorizontal, Pencil, Plus, Trash2 } from "lucide-react";
|
|
5
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
6
|
+
import { Button } from "@open-mercato/ui/primitives/button";
|
|
7
|
+
import { IconButton } from "@open-mercato/ui/primitives/icon-button";
|
|
8
|
+
import { CompactButton } from "@open-mercato/ui/primitives/compact-button";
|
|
9
|
+
import { LinkButton } from "@open-mercato/ui/primitives/link-button";
|
|
10
|
+
import { SocialButton } from "@open-mercato/ui/primitives/social-button";
|
|
11
|
+
import { FancyButton } from "@open-mercato/ui/primitives/fancy-button";
|
|
12
|
+
import { ButtonGroup } from "@open-mercato/ui/primitives/button-group";
|
|
13
|
+
import { Spinner } from "@open-mercato/ui/primitives/spinner";
|
|
14
|
+
import appleFilled from "../assets/social-apple-filled.svg";
|
|
15
|
+
import githubFilled from "../assets/social-github-filled.svg";
|
|
16
|
+
import xFilled from "../assets/social-x-filled.svg";
|
|
17
|
+
import googleFilled from "../assets/social-google-filled.svg";
|
|
18
|
+
import facebookFilled from "../assets/social-facebook-filled.svg";
|
|
19
|
+
import dropboxFilled from "../assets/social-dropbox-filled.svg";
|
|
20
|
+
import linkedinFilled from "../assets/social-linkedin-filled.svg";
|
|
21
|
+
import appleStroke from "../assets/social-apple-stroke.svg";
|
|
22
|
+
import githubStroke from "../assets/social-github-stroke.svg";
|
|
23
|
+
import xStroke from "../assets/social-x-stroke.svg";
|
|
24
|
+
import googleStroke from "../assets/social-google-stroke.svg";
|
|
25
|
+
import facebookStroke from "../assets/social-facebook-stroke.svg";
|
|
26
|
+
import dropboxStroke from "../assets/social-dropbox-stroke.svg";
|
|
27
|
+
import linkedinStroke from "../assets/social-linkedin-stroke.svg";
|
|
28
|
+
const socialProviders = [
|
|
29
|
+
{ brand: "apple", name: "Apple", filled: appleFilled, stroke: appleStroke },
|
|
30
|
+
{ brand: "github", name: "GitHub", filled: githubFilled, stroke: githubStroke },
|
|
31
|
+
{ brand: "x", name: "X", filled: xFilled, stroke: xStroke },
|
|
32
|
+
{ brand: "google", name: "Google", filled: googleFilled, stroke: googleStroke },
|
|
33
|
+
{ brand: "facebook", name: "Facebook", filled: facebookFilled, stroke: facebookStroke },
|
|
34
|
+
{ brand: "dropbox", name: "Dropbox", filled: dropboxFilled, stroke: dropboxStroke },
|
|
35
|
+
{ brand: "linkedin", name: "LinkedIn", filled: linkedinFilled, stroke: linkedinStroke }
|
|
36
|
+
];
|
|
37
|
+
function SocialButtonsDemo({ appearance, iconOnly = false }) {
|
|
38
|
+
const t = useT();
|
|
39
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3 p-1", children: socialProviders.map((provider) => {
|
|
40
|
+
const asset = provider[appearance];
|
|
41
|
+
const source = typeof asset === "string" ? asset : asset.src;
|
|
42
|
+
const label = t("design_system.gallery.examples.buttons.provider", { brand: provider.name });
|
|
43
|
+
const useForeground = appearance === "stroke" && ["apple", "github", "x"].includes(provider.brand);
|
|
44
|
+
return /* @__PURE__ */ jsxs(SocialButton, { brand: provider.brand, appearance, iconOnly, "aria-label": iconOnly ? label : void 0, children: [
|
|
45
|
+
useForeground ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "size-5 shrink-0 bg-current", style: { maskImage: `url("${source}")`, maskSize: "contain", maskPosition: "center", maskRepeat: "no-repeat" } }) : /* @__PURE__ */ jsx("img", { src: source, alt: "", "aria-hidden": "true", className: "size-5 shrink-0" }),
|
|
46
|
+
!iconOnly && label
|
|
47
|
+
] }, provider.brand);
|
|
48
|
+
}) });
|
|
49
|
+
}
|
|
50
|
+
function CompactButtonExample({ appearance, size, fullRadius, initialPressed, disabled }) {
|
|
51
|
+
const t = useT();
|
|
52
|
+
const [pressed, setPressed] = React.useState(initialPressed);
|
|
53
|
+
return /* @__PURE__ */ jsx(
|
|
54
|
+
CompactButton,
|
|
55
|
+
{
|
|
56
|
+
appearance,
|
|
57
|
+
size,
|
|
58
|
+
fullRadius,
|
|
59
|
+
disabled,
|
|
60
|
+
"aria-label": t("design_system.gallery.examples.buttons.compactAction"),
|
|
61
|
+
"aria-pressed": disabled ? void 0 : pressed,
|
|
62
|
+
onClick: () => setPressed((value) => !value),
|
|
63
|
+
children: /* @__PURE__ */ jsx(Plus, { "aria-hidden": "true" })
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function CompactButtonMatrix({ initialPressed = false, disabled = false }) {
|
|
68
|
+
return /* @__PURE__ */ jsx("div", { className: "grid w-full gap-4 sm:grid-cols-2", children: ["stroke", "ghost", "white", "modifiable"].map((appearance) => /* @__PURE__ */ jsxs("div", { className: appearance === "modifiable" ? "grid gap-4 rounded-md bg-primary p-4 text-primary-foreground" : appearance === "white" ? "grid gap-4 rounded-md border border-border bg-muted p-4" : "grid gap-4 rounded-md border border-border p-4", children: [
|
|
69
|
+
/* @__PURE__ */ jsx("code", { className: "text-xs", children: appearance }),
|
|
70
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-6", children: [20, 24].flatMap((size) => [false, true].map((fullRadius) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
71
|
+
/* @__PURE__ */ jsx(CompactButtonExample, { appearance, size, fullRadius, initialPressed, disabled }),
|
|
72
|
+
/* @__PURE__ */ jsxs("code", { className: "text-xs", children: [
|
|
73
|
+
size,
|
|
74
|
+
"px \xB7 ",
|
|
75
|
+
fullRadius ? "full" : "6px"
|
|
76
|
+
] })
|
|
77
|
+
] }, `${size}-${fullRadius}`))) })
|
|
78
|
+
] }, appearance)) });
|
|
79
|
+
}
|
|
80
|
+
function CompactButtonDisabledPreview() {
|
|
81
|
+
const t = useT();
|
|
82
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid w-full gap-4", children: [
|
|
83
|
+
/* @__PURE__ */ jsx("p", { className: "max-w-prose text-sm text-muted-foreground", children: t("design_system.gallery.examples.buttons.compactDisabledNote") }),
|
|
84
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-4 sm:grid-cols-2", children: ["stroke", "modifiable"].map((appearance) => /* @__PURE__ */ jsxs("div", { className: appearance === "modifiable" ? "grid gap-4 rounded-md bg-primary p-4 text-primary-foreground" : "grid gap-4 rounded-md border border-border p-4", children: [
|
|
85
|
+
/* @__PURE__ */ jsx("code", { className: "text-xs", children: appearance === "modifiable" ? "modifiable" : "stroke \xB7 ghost \xB7 white" }),
|
|
86
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-6", children: [20, 24].flatMap((size) => [false, true].map((fullRadius) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
87
|
+
/* @__PURE__ */ jsx(
|
|
88
|
+
CompactButton,
|
|
89
|
+
{
|
|
90
|
+
appearance,
|
|
91
|
+
size,
|
|
92
|
+
fullRadius,
|
|
93
|
+
disabled: true,
|
|
94
|
+
"aria-label": t("design_system.gallery.examples.buttons.compactAction"),
|
|
95
|
+
children: /* @__PURE__ */ jsx(Plus, { "aria-hidden": "true" })
|
|
96
|
+
}
|
|
97
|
+
),
|
|
98
|
+
/* @__PURE__ */ jsxs("code", { className: "text-xs", children: [
|
|
99
|
+
size,
|
|
100
|
+
"px \xB7 ",
|
|
101
|
+
fullRadius ? "full" : "6px"
|
|
102
|
+
] })
|
|
103
|
+
] }, `${size}-${fullRadius}`))) })
|
|
104
|
+
] }, appearance)) })
|
|
105
|
+
] });
|
|
106
|
+
}
|
|
107
|
+
function ButtonGroupMatrix({ content = false }) {
|
|
108
|
+
const t = useT();
|
|
109
|
+
return /* @__PURE__ */ jsx("div", { className: "grid w-full min-w-0 gap-6", children: [24, 32, 36].flatMap((size) => (content ? [5] : [2, 3, 4, 5, 6]).map((count) => /* @__PURE__ */ jsxs("div", { className: "grid min-w-0 gap-2", children: [
|
|
110
|
+
/* @__PURE__ */ jsxs("code", { className: "text-xs text-muted-foreground", children: [
|
|
111
|
+
size,
|
|
112
|
+
"px \xB7 ",
|
|
113
|
+
count
|
|
114
|
+
] }),
|
|
115
|
+
/* @__PURE__ */ jsx("div", { className: "max-w-full overflow-x-auto p-1", children: /* @__PURE__ */ jsx(ButtonGroup, { size, "aria-label": t("design_system.gallery.examples.buttons.groupActions"), children: content ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
116
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", children: t("design_system.gallery.examples.buttons.groupItem", { number: 1 }) }),
|
|
117
|
+
/* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", children: [
|
|
118
|
+
/* @__PURE__ */ jsx(Pencil, { "aria-hidden": "true" }),
|
|
119
|
+
t("design_system.gallery.examples.buttons.groupItem", { number: 2 })
|
|
120
|
+
] }),
|
|
121
|
+
/* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", children: [
|
|
122
|
+
t("design_system.gallery.examples.buttons.groupItem", { number: 3 }),
|
|
123
|
+
/* @__PURE__ */ jsx(Plus, { "aria-hidden": "true" })
|
|
124
|
+
] }),
|
|
125
|
+
/* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", children: [
|
|
126
|
+
/* @__PURE__ */ jsx(Pencil, { "aria-hidden": "true" }),
|
|
127
|
+
t("design_system.gallery.examples.buttons.groupItem", { number: 4 }),
|
|
128
|
+
/* @__PURE__ */ jsx(Plus, { "aria-hidden": "true" })
|
|
129
|
+
] }),
|
|
130
|
+
/* @__PURE__ */ jsx(IconButton, { "aria-label": t("design_system.gallery.examples.buttons.moreActions"), children: /* @__PURE__ */ jsx(MoreHorizontal, { "aria-hidden": "true" }) })
|
|
131
|
+
] }) : Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", children: t("design_system.gallery.examples.buttons.groupItem", { number: index + 1 }) }, index)) }) })
|
|
132
|
+
] }, `${size}-${count}`))) });
|
|
133
|
+
}
|
|
134
|
+
function ButtonStatePreview({ loading = false }) {
|
|
135
|
+
const t = useT();
|
|
136
|
+
return /* @__PURE__ */ jsxs(Button, { type: "button", disabled: true, "aria-busy": loading || void 0, children: [
|
|
137
|
+
loading ? /* @__PURE__ */ jsx(Spinner, { size: "sm", className: "motion-reduce:animate-none" }) : null,
|
|
138
|
+
t(loading ? "design_system.gallery.samples.states.saving" : "design_system.gallery.samples.primaryAction")
|
|
139
|
+
] });
|
|
140
|
+
}
|
|
141
|
+
function PrimaryButtonPreview() {
|
|
142
|
+
const t = useT();
|
|
143
|
+
return /* @__PURE__ */ jsx(Button, { type: "button", variant: "primary-filled", children: t("design_system.gallery.samples.primaryAction") });
|
|
144
|
+
}
|
|
145
|
+
function DisabledIconButtonPreview() {
|
|
146
|
+
const t = useT();
|
|
147
|
+
return /* @__PURE__ */ jsx(IconButton, { type: "button", variant: "outline", disabled: true, "aria-label": t("design_system.gallery.samples.states.edit"), children: /* @__PURE__ */ jsx(Pencil, { "aria-hidden": "true" }) });
|
|
148
|
+
}
|
|
149
|
+
function ButtonButtonsDefaultSample() {
|
|
150
|
+
const t = useT();
|
|
151
|
+
return /* @__PURE__ */ jsx(Button, { children: t("design_system.gallery.samples.primaryAction") });
|
|
152
|
+
}
|
|
153
|
+
function ButtonButtonsDestructiveSample() {
|
|
154
|
+
const t = useT();
|
|
155
|
+
return /* @__PURE__ */ jsx(Button, { variant: "destructive", children: t("design_system.gallery.sampleCopy.delete") });
|
|
156
|
+
}
|
|
157
|
+
function ButtonButtonsDestructiveOutlineSample() {
|
|
158
|
+
const t = useT();
|
|
159
|
+
return /* @__PURE__ */ jsx(Button, { variant: "destructive-outline", children: t("design_system.gallery.sampleCopy.delete") });
|
|
160
|
+
}
|
|
161
|
+
function ButtonButtonsDestructiveSoftSample() {
|
|
162
|
+
const t = useT();
|
|
163
|
+
return /* @__PURE__ */ jsx(Button, { variant: "destructive-soft", children: t("design_system.gallery.sampleCopy.deleteDraft") });
|
|
164
|
+
}
|
|
165
|
+
function ButtonButtonsDestructiveGhostSample() {
|
|
166
|
+
const t = useT();
|
|
167
|
+
return /* @__PURE__ */ jsx(Button, { variant: "destructive-ghost", children: t("design_system.gallery.samples.hr.remove") });
|
|
168
|
+
}
|
|
169
|
+
function ButtonButtonsOutlineSample() {
|
|
170
|
+
const t = useT();
|
|
171
|
+
return /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") });
|
|
172
|
+
}
|
|
173
|
+
function ButtonButtonsSecondarySample() {
|
|
174
|
+
const t = useT();
|
|
175
|
+
return /* @__PURE__ */ jsx(Button, { variant: "secondary", children: t("design_system.gallery.sampleCopy.duplicate") });
|
|
176
|
+
}
|
|
177
|
+
function ButtonButtonsGhostSample() {
|
|
178
|
+
const t = useT();
|
|
179
|
+
return /* @__PURE__ */ jsx(Button, { variant: "ghost", children: t("design_system.gallery.sampleCopy.dismiss") });
|
|
180
|
+
}
|
|
181
|
+
function ButtonButtonsMutedSample() {
|
|
182
|
+
const t = useT();
|
|
183
|
+
return /* @__PURE__ */ jsx(Button, { variant: "muted", children: t("design_system.gallery.sampleCopy.showMore") });
|
|
184
|
+
}
|
|
185
|
+
function ButtonButtonsLinkSample() {
|
|
186
|
+
const t = useT();
|
|
187
|
+
return /* @__PURE__ */ jsx(Button, { variant: "link", children: t("design_system.gallery.samples.banner.details") });
|
|
188
|
+
}
|
|
189
|
+
function ButtonButtonsSizesSample() {
|
|
190
|
+
const t = useT();
|
|
191
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
192
|
+
/* @__PURE__ */ jsx(Button, { size: "lg", children: t("design_system.gallery.sampleCopy.large") }),
|
|
193
|
+
/* @__PURE__ */ jsx(Button, { size: "default", children: t("design_system.gallery.examples.aiProduct.default") }),
|
|
194
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", children: t("design_system.gallery.sampleCopy.small") }),
|
|
195
|
+
/* @__PURE__ */ jsx(Button, { size: "2xs", children: t("design_system.gallery.sampleCopy.2xsmall") }),
|
|
196
|
+
/* @__PURE__ */ jsx(Button, { size: "icon", "aria-label": t("design_system.gallery.examples.separator.add"), children: /* @__PURE__ */ jsx(Plus, {}) })
|
|
197
|
+
] });
|
|
198
|
+
}
|
|
199
|
+
function IconButtonButtonsVariantsSample() {
|
|
200
|
+
const t = useT();
|
|
201
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
202
|
+
/* @__PURE__ */ jsx(IconButton, { variant: "primary", "aria-label": t("design_system.gallery.examples.separator.add"), children: /* @__PURE__ */ jsx(Plus, {}) }),
|
|
203
|
+
/* @__PURE__ */ jsx(IconButton, { variant: "outline", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) }),
|
|
204
|
+
/* @__PURE__ */ jsx(IconButton, { variant: "ghost", "aria-label": t("design_system.gallery.samples.richEditor.labels.more"), children: /* @__PURE__ */ jsx(MoreHorizontal, {}) }),
|
|
205
|
+
/* @__PURE__ */ jsx(IconButton, { variant: "white", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) }),
|
|
206
|
+
/* @__PURE__ */ jsx(IconButton, { variant: "destructive", "aria-label": t("design_system.gallery.sampleCopy.delete"), children: /* @__PURE__ */ jsx(Trash2, {}) })
|
|
207
|
+
] });
|
|
208
|
+
}
|
|
209
|
+
function IconButtonButtonsSizesSample() {
|
|
210
|
+
const t = useT();
|
|
211
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
212
|
+
/* @__PURE__ */ jsx(IconButton, { size: "lg", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) }),
|
|
213
|
+
/* @__PURE__ */ jsx(IconButton, { size: "default", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) }),
|
|
214
|
+
/* @__PURE__ */ jsx(IconButton, { size: "sm", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) }),
|
|
215
|
+
/* @__PURE__ */ jsx(IconButton, { size: "xs", "aria-label": t("design_system.gallery.sampleCopy.edit"), children: /* @__PURE__ */ jsx(Pencil, {}) })
|
|
216
|
+
] });
|
|
217
|
+
}
|
|
218
|
+
function IconButtonButtonsFullRadiusSample() {
|
|
219
|
+
const t = useT();
|
|
220
|
+
return /* @__PURE__ */ jsx(IconButton, { fullRadius: true, "aria-label": t("design_system.gallery.examples.separator.add"), children: /* @__PURE__ */ jsx(Plus, {}) });
|
|
221
|
+
}
|
|
222
|
+
function LinkButtonButtonsAsAnchorSample() {
|
|
223
|
+
const t = useT();
|
|
224
|
+
return /* @__PURE__ */ jsx(LinkButton, { asChild: true, children: /* @__PURE__ */ jsx("a", { href: "#gallery-entry-link-button", children: t("design_system.gallery.sampleCopy.openLink") }) });
|
|
225
|
+
}
|
|
226
|
+
function FancyButtonButtonsIntentsSample() {
|
|
227
|
+
const t = useT();
|
|
228
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
229
|
+
/* @__PURE__ */ jsx(FancyButton, { intent: "neutral", children: t("design_system.gallery.sampleCopy.neutral") }),
|
|
230
|
+
/* @__PURE__ */ jsx(FancyButton, { intent: "basic", children: t("design_system.gallery.sampleCopy.basic") }),
|
|
231
|
+
/* @__PURE__ */ jsx(FancyButton, { intent: "primary", children: t("design_system.gallery.sampleCopy.primary") }),
|
|
232
|
+
/* @__PURE__ */ jsx(FancyButton, { intent: "destructive", children: t("design_system.gallery.sampleCopy.destructive") })
|
|
233
|
+
] });
|
|
234
|
+
}
|
|
235
|
+
function FancyButtonButtonsSizesSample() {
|
|
236
|
+
const t = useT();
|
|
237
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
238
|
+
/* @__PURE__ */ jsx(FancyButton, { size: "default", children: t("design_system.gallery.examples.aiProduct.default") }),
|
|
239
|
+
/* @__PURE__ */ jsx(FancyButton, { size: "sm", children: t("design_system.gallery.sampleCopy.small") }),
|
|
240
|
+
/* @__PURE__ */ jsx(FancyButton, { size: "xs", children: t("design_system.gallery.sampleCopy.xsmall") })
|
|
241
|
+
] });
|
|
242
|
+
}
|
|
243
|
+
function ButtonGroupButtonsHorizontalSample() {
|
|
244
|
+
const t = useT();
|
|
245
|
+
return /* @__PURE__ */ jsxs(ButtonGroup, { children: [
|
|
246
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.hr.save") }),
|
|
247
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.saveNew") }),
|
|
248
|
+
/* @__PURE__ */ jsx(IconButton, { size: "lg", "aria-label": t("design_system.gallery.samples.richEditor.labels.more"), children: /* @__PURE__ */ jsx(MoreHorizontal, {}) })
|
|
249
|
+
] });
|
|
250
|
+
}
|
|
251
|
+
function ButtonGroupButtonsVerticalSample() {
|
|
252
|
+
const t = useT();
|
|
253
|
+
return /* @__PURE__ */ jsxs(ButtonGroup, { orientation: "vertical", size: "sm", children: [
|
|
254
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: t("design_system.gallery.sampleCopy.top") }),
|
|
255
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: t("design_system.gallery.sampleCopy.middle") }),
|
|
256
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: t("design_system.gallery.sampleCopy.bottom") })
|
|
257
|
+
] });
|
|
258
|
+
}
|
|
259
|
+
export {
|
|
260
|
+
ButtonButtonsDefaultSample,
|
|
261
|
+
ButtonButtonsDestructiveGhostSample,
|
|
262
|
+
ButtonButtonsDestructiveOutlineSample,
|
|
263
|
+
ButtonButtonsDestructiveSample,
|
|
264
|
+
ButtonButtonsDestructiveSoftSample,
|
|
265
|
+
ButtonButtonsGhostSample,
|
|
266
|
+
ButtonButtonsLinkSample,
|
|
267
|
+
ButtonButtonsMutedSample,
|
|
268
|
+
ButtonButtonsOutlineSample,
|
|
269
|
+
ButtonButtonsSecondarySample,
|
|
270
|
+
ButtonButtonsSizesSample,
|
|
271
|
+
ButtonGroupButtonsHorizontalSample,
|
|
272
|
+
ButtonGroupButtonsVerticalSample,
|
|
273
|
+
ButtonGroupMatrix,
|
|
274
|
+
ButtonStatePreview,
|
|
275
|
+
CompactButtonDisabledPreview,
|
|
276
|
+
CompactButtonExample,
|
|
277
|
+
CompactButtonMatrix,
|
|
278
|
+
DisabledIconButtonPreview,
|
|
279
|
+
FancyButtonButtonsIntentsSample,
|
|
280
|
+
FancyButtonButtonsSizesSample,
|
|
281
|
+
IconButtonButtonsFullRadiusSample,
|
|
282
|
+
IconButtonButtonsSizesSample,
|
|
283
|
+
IconButtonButtonsVariantsSample,
|
|
284
|
+
LinkButtonButtonsAsAnchorSample,
|
|
285
|
+
PrimaryButtonPreview,
|
|
286
|
+
SocialButtonsDemo,
|
|
287
|
+
socialProviders
|
|
288
|
+
};
|
|
289
|
+
//# sourceMappingURL=buttons.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/design_system/gallery/demos/buttons.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { MoreHorizontal, Pencil, Plus, Trash2 } from 'lucide-react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { IconButton } from '@open-mercato/ui/primitives/icon-button'\nimport { CompactButton } from '@open-mercato/ui/primitives/compact-button'\nimport { LinkButton } from '@open-mercato/ui/primitives/link-button'\nimport { SocialButton } from '@open-mercato/ui/primitives/social-button'\nimport { FancyButton } from '@open-mercato/ui/primitives/fancy-button'\nimport { ButtonGroup } from '@open-mercato/ui/primitives/button-group'\nimport { Spinner } from '@open-mercato/ui/primitives/spinner'\nimport appleFilled from '../assets/social-apple-filled.svg'\nimport githubFilled from '../assets/social-github-filled.svg'\nimport xFilled from '../assets/social-x-filled.svg'\nimport googleFilled from '../assets/social-google-filled.svg'\nimport facebookFilled from '../assets/social-facebook-filled.svg'\nimport dropboxFilled from '../assets/social-dropbox-filled.svg'\nimport linkedinFilled from '../assets/social-linkedin-filled.svg'\nimport appleStroke from '../assets/social-apple-stroke.svg'\nimport githubStroke from '../assets/social-github-stroke.svg'\nimport xStroke from '../assets/social-x-stroke.svg'\nimport googleStroke from '../assets/social-google-stroke.svg'\nimport facebookStroke from '../assets/social-facebook-stroke.svg'\nimport dropboxStroke from '../assets/social-dropbox-stroke.svg'\nimport linkedinStroke from '../assets/social-linkedin-stroke.svg'\n\nexport const socialProviders = [\n { brand: 'apple', name: 'Apple', filled: appleFilled, stroke: appleStroke },\n { brand: 'github', name: 'GitHub', filled: githubFilled, stroke: githubStroke },\n { brand: 'x', name: 'X', filled: xFilled, stroke: xStroke },\n { brand: 'google', name: 'Google', filled: googleFilled, stroke: googleStroke },\n { brand: 'facebook', name: 'Facebook', filled: facebookFilled, stroke: facebookStroke },\n { brand: 'dropbox', name: 'Dropbox', filled: dropboxFilled, stroke: dropboxStroke },\n { brand: 'linkedin', name: 'LinkedIn', filled: linkedinFilled, stroke: linkedinStroke },\n] as const\n\nexport function SocialButtonsDemo({ appearance, iconOnly = false }: { appearance: 'filled' | 'stroke'; iconOnly?: boolean }) {\n const t = useT()\n return (\n <div className=\"flex flex-wrap gap-3 p-1\">\n {socialProviders.map((provider) => {\n const asset = provider[appearance]\n const source = typeof asset === 'string' ? asset : asset.src\n const label = t('design_system.gallery.examples.buttons.provider', { brand: provider.name })\n const useForeground = appearance === 'stroke' && ['apple', 'github', 'x'].includes(provider.brand)\n return (\n <SocialButton key={provider.brand} brand={provider.brand} appearance={appearance} iconOnly={iconOnly} aria-label={iconOnly ? label : undefined}>\n {useForeground ? (\n <span aria-hidden=\"true\" className=\"size-5 shrink-0 bg-current\" style={{ maskImage: `url(\"${source}\")`, maskSize: 'contain', maskPosition: 'center', maskRepeat: 'no-repeat' }} />\n ) : <img src={source} alt=\"\" aria-hidden=\"true\" className=\"size-5 shrink-0\" />}\n {!iconOnly && label}\n </SocialButton>\n )\n })}\n </div>\n )\n}\n\nexport function CompactButtonExample({ appearance, size, fullRadius, initialPressed, disabled }: {\n appearance: 'stroke' | 'ghost' | 'white' | 'modifiable'\n size: 20 | 24\n fullRadius: boolean\n initialPressed: boolean\n disabled: boolean\n}) {\n const t = useT()\n const [pressed, setPressed] = React.useState(initialPressed)\n return (\n <CompactButton appearance={appearance} size={size} fullRadius={fullRadius} disabled={disabled}\n aria-label={t('design_system.gallery.examples.buttons.compactAction')}\n aria-pressed={disabled ? undefined : pressed} onClick={() => setPressed((value) => !value)}>\n <Plus aria-hidden=\"true\" />\n </CompactButton>\n )\n}\n\nexport function CompactButtonMatrix({ initialPressed = false, disabled = false }: { initialPressed?: boolean; disabled?: boolean }) {\n return (\n <div className=\"grid w-full gap-4 sm:grid-cols-2\">\n {(['stroke', 'ghost', 'white', 'modifiable'] as const).map((appearance) => (\n <div key={appearance} className={appearance === 'modifiable' ? 'grid gap-4 rounded-md bg-primary p-4 text-primary-foreground' : appearance === 'white' ? 'grid gap-4 rounded-md border border-border bg-muted p-4' : 'grid gap-4 rounded-md border border-border p-4'}>\n <code className=\"text-xs\">{appearance}</code>\n <div className=\"flex flex-wrap gap-6\">\n {([20, 24] as const).flatMap((size) => [false, true].map((fullRadius) => (\n <div key={`${size}-${fullRadius}`} className=\"flex flex-col items-center gap-2\">\n <CompactButtonExample appearance={appearance} size={size} fullRadius={fullRadius} initialPressed={initialPressed} disabled={disabled} />\n <code className=\"text-xs\">{size}px \u00B7 {fullRadius ? 'full' : '6px'}</code>\n </div>\n )))}\n </div>\n </div>\n ))}\n </div>\n )\n}\n\nexport function CompactButtonDisabledPreview() {\n const t = useT()\n return (\n <div className=\"grid w-full gap-4\">\n <p className=\"max-w-prose text-sm text-muted-foreground\">{t('design_system.gallery.examples.buttons.compactDisabledNote')}</p>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {(['stroke', 'modifiable'] as const).map((appearance) => (\n <div key={appearance} className={appearance === 'modifiable' ? 'grid gap-4 rounded-md bg-primary p-4 text-primary-foreground' : 'grid gap-4 rounded-md border border-border p-4'}>\n <code className=\"text-xs\">{appearance === 'modifiable' ? 'modifiable' : 'stroke \u00B7 ghost \u00B7 white'}</code>\n <div className=\"flex flex-wrap gap-6\">\n {([20, 24] as const).flatMap((size) => [false, true].map((fullRadius) => (\n <div key={`${size}-${fullRadius}`} className=\"flex flex-col items-center gap-2\">\n <CompactButton appearance={appearance} size={size} fullRadius={fullRadius} disabled\n aria-label={t('design_system.gallery.examples.buttons.compactAction')}>\n <Plus aria-hidden=\"true\" />\n </CompactButton>\n <code className=\"text-xs\">{size}px \u00B7 {fullRadius ? 'full' : '6px'}</code>\n </div>\n )))}\n </div>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport function ButtonGroupMatrix({ content = false }: { content?: boolean }) {\n const t = useT()\n return (\n <div className=\"grid w-full min-w-0 gap-6\">\n {([24, 32, 36] as const).flatMap((size) => (content ? [5] : [2, 3, 4, 5, 6]).map((count) => (\n <div key={`${size}-${count}`} className=\"grid min-w-0 gap-2\">\n <code className=\"text-xs text-muted-foreground\">{size}px \u00B7 {count}</code>\n <div className=\"max-w-full overflow-x-auto p-1\">\n <ButtonGroup size={size} aria-label={t('design_system.gallery.examples.buttons.groupActions')}>\n {content ? (\n <>\n <Button type=\"button\" variant=\"outline\">{t('design_system.gallery.examples.buttons.groupItem', { number: 1 })}</Button>\n <Button type=\"button\" variant=\"outline\"><Pencil aria-hidden=\"true\" />{t('design_system.gallery.examples.buttons.groupItem', { number: 2 })}</Button>\n <Button type=\"button\" variant=\"outline\">{t('design_system.gallery.examples.buttons.groupItem', { number: 3 })}<Plus aria-hidden=\"true\" /></Button>\n <Button type=\"button\" variant=\"outline\"><Pencil aria-hidden=\"true\" />{t('design_system.gallery.examples.buttons.groupItem', { number: 4 })}<Plus aria-hidden=\"true\" /></Button>\n <IconButton aria-label={t('design_system.gallery.examples.buttons.moreActions')}><MoreHorizontal aria-hidden=\"true\" /></IconButton>\n </>\n ) : Array.from({ length: count }, (_, index) => (\n <Button key={index} type=\"button\" variant=\"outline\">{t('design_system.gallery.examples.buttons.groupItem', { number: index + 1 })}</Button>\n ))}\n </ButtonGroup>\n </div>\n </div>\n )))}\n </div>\n )\n}\n\nexport function ButtonStatePreview({ loading = false }: { loading?: boolean }) {\n const t = useT()\n return (\n <Button type=\"button\" disabled aria-busy={loading || undefined}>\n {loading ? <Spinner size=\"sm\" className=\"motion-reduce:animate-none\" /> : null}\n {t(loading ? 'design_system.gallery.samples.states.saving' : 'design_system.gallery.samples.primaryAction')}\n </Button>\n )\n}\n\nexport function PrimaryButtonPreview() {\n const t = useT()\n return <Button type=\"button\" variant=\"primary-filled\">{t('design_system.gallery.samples.primaryAction')}</Button>\n}\n\nexport function DisabledIconButtonPreview() {\n const t = useT()\n return (\n <IconButton type=\"button\" variant=\"outline\" disabled aria-label={t('design_system.gallery.samples.states.edit')}>\n <Pencil aria-hidden=\"true\" />\n </IconButton>\n )\n}\n\nexport function ButtonButtonsDefaultSample() {\n const t = useT()\n return (<Button>{t('design_system.gallery.samples.primaryAction')}</Button>)\n}\n\nexport function ButtonButtonsDestructiveSample() {\n const t = useT()\n return (<Button variant=\"destructive\">{t('design_system.gallery.sampleCopy.delete')}</Button>)\n}\n\nexport function ButtonButtonsDestructiveOutlineSample() {\n const t = useT()\n return (<Button variant=\"destructive-outline\">{t('design_system.gallery.sampleCopy.delete')}</Button>)\n}\n\nexport function ButtonButtonsDestructiveSoftSample() {\n const t = useT()\n return (<Button variant=\"destructive-soft\">{t('design_system.gallery.sampleCopy.deleteDraft')}</Button>)\n}\n\nexport function ButtonButtonsDestructiveGhostSample() {\n const t = useT()\n return (<Button variant=\"destructive-ghost\">{t('design_system.gallery.samples.hr.remove')}</Button>)\n}\n\nexport function ButtonButtonsOutlineSample() {\n const t = useT()\n return (<Button variant=\"outline\">{t('design_system.gallery.samples.overlay.cancel')}</Button>)\n}\n\nexport function ButtonButtonsSecondarySample() {\n const t = useT()\n return (<Button variant=\"secondary\">{t('design_system.gallery.sampleCopy.duplicate')}</Button>)\n}\n\nexport function ButtonButtonsGhostSample() {\n const t = useT()\n return (<Button variant=\"ghost\">{t('design_system.gallery.sampleCopy.dismiss')}</Button>)\n}\n\nexport function ButtonButtonsMutedSample() {\n const t = useT()\n return (<Button variant=\"muted\">{t('design_system.gallery.sampleCopy.showMore')}</Button>)\n}\n\nexport function ButtonButtonsLinkSample() {\n const t = useT()\n return (<Button variant=\"link\">{t('design_system.gallery.samples.banner.details')}</Button>)\n}\n\nexport function ButtonButtonsSizesSample() {\n const t = useT()\n return (<>\n <Button size=\"lg\">{t('design_system.gallery.sampleCopy.large')}</Button>\n <Button size=\"default\">{t('design_system.gallery.examples.aiProduct.default')}</Button>\n <Button size=\"sm\">{t('design_system.gallery.sampleCopy.small')}</Button>\n <Button size=\"2xs\">{t('design_system.gallery.sampleCopy.2xsmall')}</Button>\n <Button size=\"icon\" aria-label={t('design_system.gallery.examples.separator.add')}>\n <Plus />\n </Button>\n </>)\n}\n\nexport function IconButtonButtonsVariantsSample() {\n const t = useT()\n return (<>\n <IconButton variant=\"primary\" aria-label={t('design_system.gallery.examples.separator.add')}>\n <Plus />\n </IconButton>\n <IconButton variant=\"outline\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n <IconButton variant=\"ghost\" aria-label={t('design_system.gallery.samples.richEditor.labels.more')}>\n <MoreHorizontal />\n </IconButton>\n <IconButton variant=\"white\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n <IconButton variant=\"destructive\" aria-label={t('design_system.gallery.sampleCopy.delete')}>\n <Trash2 />\n </IconButton>\n </>)\n}\n\nexport function IconButtonButtonsSizesSample() {\n const t = useT()\n return (<>\n <IconButton size=\"lg\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n <IconButton size=\"default\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n <IconButton size=\"sm\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n <IconButton size=\"xs\" aria-label={t('design_system.gallery.sampleCopy.edit')}>\n <Pencil />\n </IconButton>\n </>)\n}\n\nexport function IconButtonButtonsFullRadiusSample() {\n const t = useT()\n return (<IconButton fullRadius aria-label={t('design_system.gallery.examples.separator.add')}>\n <Plus />\n </IconButton>)\n}\n\nexport function LinkButtonButtonsAsAnchorSample() {\n const t = useT()\n return (<LinkButton asChild>\n <a href=\"#gallery-entry-link-button\">{t('design_system.gallery.sampleCopy.openLink')}</a>\n </LinkButton>)\n}\n\nexport function FancyButtonButtonsIntentsSample() {\n const t = useT()\n return (<>\n <FancyButton intent=\"neutral\">{t('design_system.gallery.sampleCopy.neutral')}</FancyButton>\n <FancyButton intent=\"basic\">{t('design_system.gallery.sampleCopy.basic')}</FancyButton>\n <FancyButton intent=\"primary\">{t('design_system.gallery.sampleCopy.primary')}</FancyButton>\n <FancyButton intent=\"destructive\">{t('design_system.gallery.sampleCopy.destructive')}</FancyButton>\n </>)\n}\n\nexport function FancyButtonButtonsSizesSample() {\n const t = useT()\n return (<>\n <FancyButton size=\"default\">{t('design_system.gallery.examples.aiProduct.default')}</FancyButton>\n <FancyButton size=\"sm\">{t('design_system.gallery.sampleCopy.small')}</FancyButton>\n <FancyButton size=\"xs\">{t('design_system.gallery.sampleCopy.xsmall')}</FancyButton>\n </>)\n}\n\nexport function ButtonGroupButtonsHorizontalSample() {\n const t = useT()\n return (<ButtonGroup>\n <Button variant=\"outline\">{t('design_system.gallery.samples.hr.save')}</Button>\n <Button variant=\"outline\">{t('design_system.gallery.sampleCopy.saveNew')}</Button>\n <IconButton size=\"lg\" aria-label={t('design_system.gallery.samples.richEditor.labels.more')}>\n <MoreHorizontal />\n </IconButton>\n </ButtonGroup>)\n}\n\nexport function ButtonGroupButtonsVerticalSample() {\n const t = useT()\n return (<ButtonGroup orientation=\"vertical\" size=\"sm\">\n <Button variant=\"outline\" size=\"sm\">{t('design_system.gallery.sampleCopy.top')}</Button>\n <Button variant=\"outline\" size=\"sm\">{t('design_system.gallery.sampleCopy.middle')}</Button>\n <Button variant=\"outline\" size=\"sm\">{t('design_system.gallery.sampleCopy.bottom')}</Button>\n </ButtonGroup>)\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|