@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.
Files changed (416) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/build.mjs +11 -0
  3. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +23 -0
  4. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  5. package/dist/modules/customers/backend/customers/companies/[id]/page.js +2 -1
  6. package/dist/modules/customers/backend/customers/companies/[id]/page.js.map +2 -2
  7. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +2 -1
  8. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +2 -2
  9. package/dist/modules/customers/backend/customers/people/[id]/page.js +2 -2
  10. package/dist/modules/customers/backend/customers/people/[id]/page.js.map +2 -2
  11. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +2 -1
  12. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +2 -2
  13. package/dist/modules/customers/lib/detailHelpers.js +4 -0
  14. package/dist/modules/customers/lib/detailHelpers.js.map +2 -2
  15. package/dist/modules/customers/lib/todoCompatibility.js +5 -0
  16. package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
  17. package/dist/modules/design_system/backend/design-system/page.meta.js +3 -2
  18. package/dist/modules/design_system/backend/design-system/page.meta.js.map +2 -2
  19. package/dist/modules/design_system/gallery/assets/ai-prompt-image.png +0 -0
  20. package/dist/modules/design_system/gallery/assets/avatar-illustration.png +0 -0
  21. package/dist/modules/design_system/gallery/assets/avatar-memoji.png +0 -0
  22. package/dist/modules/design_system/gallery/assets/avatar-photo.png +0 -0
  23. package/dist/modules/design_system/gallery/assets/blog-photo-0.png +0 -0
  24. package/dist/modules/design_system/gallery/assets/contact-support-portrait.png +0 -0
  25. package/dist/modules/design_system/gallery/assets/crypto-ada.png +0 -0
  26. package/dist/modules/design_system/gallery/assets/crypto-avax.png +0 -0
  27. package/dist/modules/design_system/gallery/assets/crypto-bnb.png +0 -0
  28. package/dist/modules/design_system/gallery/assets/crypto-brand.png +0 -0
  29. package/dist/modules/design_system/gallery/assets/crypto-btc.png +0 -0
  30. package/dist/modules/design_system/gallery/assets/crypto-clock.svg +3 -0
  31. package/dist/modules/design_system/gallery/assets/crypto-crown.svg +3 -0
  32. package/dist/modules/design_system/gallery/assets/crypto-dot.png +0 -0
  33. package/dist/modules/design_system/gallery/assets/crypto-eth.png +0 -0
  34. package/dist/modules/design_system/gallery/assets/crypto-hbar.png +0 -0
  35. package/dist/modules/design_system/gallery/assets/crypto-history.svg +3 -0
  36. package/dist/modules/design_system/gallery/assets/crypto-link.svg +3 -0
  37. package/dist/modules/design_system/gallery/assets/crypto-menu.svg +3 -0
  38. package/dist/modules/design_system/gallery/assets/crypto-metamask.png +0 -0
  39. package/dist/modules/design_system/gallery/assets/crypto-more.svg +3 -0
  40. package/dist/modules/design_system/gallery/assets/crypto-phantom.png +0 -0
  41. package/dist/modules/design_system/gallery/assets/crypto-rewards.svg +3 -0
  42. package/dist/modules/design_system/gallery/assets/crypto-sad-face.png +0 -0
  43. package/dist/modules/design_system/gallery/assets/crypto-sol.png +0 -0
  44. package/dist/modules/design_system/gallery/assets/crypto-star.svg +3 -0
  45. package/dist/modules/design_system/gallery/assets/crypto-status-cancelled.svg +3 -0
  46. package/dist/modules/design_system/gallery/assets/crypto-status-pending.svg +3 -0
  47. package/dist/modules/design_system/gallery/assets/crypto-status-success.svg +3 -0
  48. package/dist/modules/design_system/gallery/assets/crypto-status-warning.svg +3 -0
  49. package/dist/modules/design_system/gallery/assets/crypto-trx.png +0 -0
  50. package/dist/modules/design_system/gallery/assets/crypto-usdc.png +0 -0
  51. package/dist/modules/design_system/gallery/assets/crypto-usdt.png +0 -0
  52. package/dist/modules/design_system/gallery/assets/crypto-walletconnect.png +0 -0
  53. package/dist/modules/design_system/gallery/assets/crypto-wei.png +0 -0
  54. package/dist/modules/design_system/gallery/assets/crypto-xrp.png +0 -0
  55. package/dist/modules/design_system/gallery/assets/cryptocurrency-artwork.js +67 -0
  56. package/dist/modules/design_system/gallery/assets/cryptocurrency-artwork.js.map +7 -0
  57. package/dist/modules/design_system/gallery/assets/github-logo.png +0 -0
  58. package/dist/modules/design_system/gallery/assets/images.d.js +1 -0
  59. package/dist/modules/design_system/gallery/assets/images.d.js.map +7 -0
  60. package/dist/modules/design_system/gallery/assets/input-european-union.svg +18 -0
  61. package/dist/modules/design_system/gallery/assets/landing-teams-01.png +0 -0
  62. package/dist/modules/design_system/gallery/assets/marketing-artwork.js +83 -0
  63. package/dist/modules/design_system/gallery/assets/marketing-artwork.js.map +7 -0
  64. package/dist/modules/design_system/gallery/assets/menu-apex.svg +18 -0
  65. package/dist/modules/design_system/gallery/assets/menu-mastercard.svg +7 -0
  66. package/dist/modules/design_system/gallery/assets/menu-spotify.svg +4 -0
  67. package/dist/modules/design_system/gallery/assets/menu-united-states.svg +16 -0
  68. package/dist/modules/design_system/gallery/assets/select-google.png +0 -0
  69. package/dist/modules/design_system/gallery/assets/select-poland.png +0 -0
  70. package/dist/modules/design_system/gallery/assets/selection-artwork.js +5 -0
  71. package/dist/modules/design_system/gallery/assets/selection-artwork.js.map +7 -0
  72. package/dist/modules/design_system/gallery/assets/social-apple-filled.svg +4 -0
  73. package/dist/modules/design_system/gallery/assets/social-apple-stroke.svg +4 -0
  74. package/dist/modules/design_system/gallery/assets/social-dropbox-filled.svg +5 -0
  75. package/dist/modules/design_system/gallery/assets/social-dropbox-stroke.svg +5 -0
  76. package/dist/modules/design_system/gallery/assets/social-facebook-filled.svg +4 -0
  77. package/dist/modules/design_system/gallery/assets/social-facebook-stroke.svg +10 -0
  78. package/dist/modules/design_system/gallery/assets/social-github-filled.svg +4 -0
  79. package/dist/modules/design_system/gallery/assets/social-github-stroke.svg +4 -0
  80. package/dist/modules/design_system/gallery/assets/social-google-filled.svg +7 -0
  81. package/dist/modules/design_system/gallery/assets/social-google-stroke.svg +7 -0
  82. package/dist/modules/design_system/gallery/assets/social-linkedin-filled.svg +4 -0
  83. package/dist/modules/design_system/gallery/assets/social-linkedin-stroke.svg +4 -0
  84. package/dist/modules/design_system/gallery/assets/social-x-filled.svg +4 -0
  85. package/dist/modules/design_system/gallery/assets/social-x-stroke.svg +4 -0
  86. package/dist/modules/design_system/gallery/assets/style-studio-product.png +0 -0
  87. package/dist/modules/design_system/gallery/assets/upload-images.js +8 -0
  88. package/dist/modules/design_system/gallery/assets/upload-images.js.map +7 -0
  89. package/dist/modules/design_system/gallery/components/BrandStylePreview.js +74 -0
  90. package/dist/modules/design_system/gallery/components/BrandStylePreview.js.map +7 -0
  91. package/dist/modules/design_system/gallery/components/CodeSnippet.js +31 -31
  92. package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +2 -2
  93. package/dist/modules/design_system/gallery/components/ColorPlayground.js +408 -0
  94. package/dist/modules/design_system/gallery/components/ColorPlayground.js.map +7 -0
  95. package/dist/modules/design_system/gallery/components/ColorStudioCompositions.js +166 -0
  96. package/dist/modules/design_system/gallery/components/ColorStudioCompositions.js.map +7 -0
  97. package/dist/modules/design_system/gallery/components/ColorStudioSpecimen.js +182 -0
  98. package/dist/modules/design_system/gallery/components/ColorStudioSpecimen.js.map +7 -0
  99. package/dist/modules/design_system/gallery/components/CompactEntrySpecimen.js +80 -0
  100. package/dist/modules/design_system/gallery/components/CompactEntrySpecimen.js.map +7 -0
  101. package/dist/modules/design_system/gallery/components/ComponentIndex.js +42 -0
  102. package/dist/modules/design_system/gallery/components/ComponentIndex.js.map +7 -0
  103. package/dist/modules/design_system/gallery/components/DesignSystemHome.js +69 -0
  104. package/dist/modules/design_system/gallery/components/DesignSystemHome.js.map +7 -0
  105. package/dist/modules/design_system/gallery/components/EntryCard.js +47 -41
  106. package/dist/modules/design_system/gallery/components/EntryCard.js.map +2 -2
  107. package/dist/modules/design_system/gallery/components/EntryHeader.js +68 -0
  108. package/dist/modules/design_system/gallery/components/EntryHeader.js.map +7 -0
  109. package/dist/modules/design_system/gallery/components/FamilyEntryPreview.js +19 -0
  110. package/dist/modules/design_system/gallery/components/FamilyEntryPreview.js.map +7 -0
  111. package/dist/modules/design_system/gallery/components/FoundationGuide.js +46 -0
  112. package/dist/modules/design_system/gallery/components/FoundationGuide.js.map +7 -0
  113. package/dist/modules/design_system/gallery/components/GalleryLink.js +21 -0
  114. package/dist/modules/design_system/gallery/components/GalleryLink.js.map +7 -0
  115. package/dist/modules/design_system/gallery/components/GalleryNavigation.js +82 -0
  116. package/dist/modules/design_system/gallery/components/GalleryNavigation.js.map +7 -0
  117. package/dist/modules/design_system/gallery/components/GalleryShell.js +147 -67
  118. package/dist/modules/design_system/gallery/components/GalleryShell.js.map +3 -3
  119. package/dist/modules/design_system/gallery/components/IconsBrowser.js +33 -0
  120. package/dist/modules/design_system/gallery/components/IconsBrowser.js.map +7 -0
  121. package/dist/modules/design_system/gallery/components/SourceLibrary.js +93 -0
  122. package/dist/modules/design_system/gallery/components/SourceLibrary.js.map +7 -0
  123. package/dist/modules/design_system/gallery/components/StyleAgents.js +139 -0
  124. package/dist/modules/design_system/gallery/components/StyleAgents.js.map +7 -0
  125. package/dist/modules/design_system/gallery/components/ThemeTokenReference.js +101 -0
  126. package/dist/modules/design_system/gallery/components/ThemeTokenReference.js.map +7 -0
  127. package/dist/modules/design_system/gallery/components/VariantPreview.js +2 -2
  128. package/dist/modules/design_system/gallery/components/VariantPreview.js.map +2 -2
  129. package/dist/modules/design_system/gallery/components/colorPreview.js +58 -0
  130. package/dist/modules/design_system/gallery/components/colorPreview.js.map +7 -0
  131. package/dist/modules/design_system/gallery/components/colorStudio.js +218 -0
  132. package/dist/modules/design_system/gallery/components/colorStudio.js.map +7 -0
  133. package/dist/modules/design_system/gallery/components/styleAgentBranding.js +46 -0
  134. package/dist/modules/design_system/gallery/components/styleAgentBranding.js.map +7 -0
  135. package/dist/modules/design_system/gallery/components/themeTokens.js +32 -0
  136. package/dist/modules/design_system/gallery/components/themeTokens.js.map +7 -0
  137. package/dist/modules/design_system/gallery/demos/ai-product-code.generated.js +194 -0
  138. package/dist/modules/design_system/gallery/demos/ai-product-code.generated.js.map +7 -0
  139. package/dist/modules/design_system/gallery/demos/ai-product.js +423 -0
  140. package/dist/modules/design_system/gallery/demos/ai-product.js.map +7 -0
  141. package/dist/modules/design_system/gallery/demos/buttons.js +289 -0
  142. package/dist/modules/design_system/gallery/demos/buttons.js.map +7 -0
  143. package/dist/modules/design_system/gallery/demos/cryptocurrency.js +1708 -0
  144. package/dist/modules/design_system/gallery/demos/cryptocurrency.js.map +7 -0
  145. package/dist/modules/design_system/gallery/demos/feeds-code.generated.js +92 -0
  146. package/dist/modules/design_system/gallery/demos/feeds-code.generated.js.map +7 -0
  147. package/dist/modules/design_system/gallery/demos/feeds.js +148 -0
  148. package/dist/modules/design_system/gallery/demos/feeds.js.map +7 -0
  149. package/dist/modules/design_system/gallery/demos/file-upload.js +72 -0
  150. package/dist/modules/design_system/gallery/demos/file-upload.js.map +7 -0
  151. package/dist/modules/design_system/gallery/demos/foundation-reference-data.js +4875 -0
  152. package/dist/modules/design_system/gallery/demos/foundation-reference-data.js.map +7 -0
  153. package/dist/modules/design_system/gallery/demos/foundation-references.js +188 -0
  154. package/dist/modules/design_system/gallery/demos/foundation-references.js.map +7 -0
  155. package/dist/modules/design_system/gallery/demos/key-components-code.generated.js +6 -0
  156. package/dist/modules/design_system/gallery/demos/key-components-code.generated.js.map +7 -0
  157. package/dist/modules/design_system/gallery/demos/key-components.js +127 -0
  158. package/dist/modules/design_system/gallery/demos/key-components.js.map +7 -0
  159. package/dist/modules/design_system/gallery/demos/marketing-controls-code.generated.js +98 -0
  160. package/dist/modules/design_system/gallery/demos/marketing-controls-code.generated.js.map +7 -0
  161. package/dist/modules/design_system/gallery/demos/marketing-controls.js +134 -0
  162. package/dist/modules/design_system/gallery/demos/marketing-controls.js.map +7 -0
  163. package/dist/modules/design_system/gallery/demos/marketing-widgets-code.generated.js +195 -0
  164. package/dist/modules/design_system/gallery/demos/marketing-widgets-code.generated.js.map +7 -0
  165. package/dist/modules/design_system/gallery/demos/marketing-widgets.js +586 -0
  166. package/dist/modules/design_system/gallery/demos/marketing-widgets.js.map +7 -0
  167. package/dist/modules/design_system/gallery/demos/menu-fixtures.js +40 -0
  168. package/dist/modules/design_system/gallery/demos/menu-fixtures.js.map +7 -0
  169. package/dist/modules/design_system/gallery/demos/menu-sources.js +295 -0
  170. package/dist/modules/design_system/gallery/demos/menu-sources.js.map +7 -0
  171. package/dist/modules/design_system/gallery/demos/menus.js +150 -0
  172. package/dist/modules/design_system/gallery/demos/menus.js.map +7 -0
  173. package/dist/modules/design_system/gallery/demos/rating-reviews.js +53 -0
  174. package/dist/modules/design_system/gallery/demos/rating-reviews.js.map +7 -0
  175. package/dist/modules/design_system/gallery/demos/registered-icons.js +104 -0
  176. package/dist/modules/design_system/gallery/demos/registered-icons.js.map +7 -0
  177. package/dist/modules/design_system/gallery/demos/selection-cards.js +99 -0
  178. package/dist/modules/design_system/gallery/demos/selection-cards.js.map +7 -0
  179. package/dist/modules/design_system/gallery/demos/shell-code.generated.js +189 -0
  180. package/dist/modules/design_system/gallery/demos/shell-code.generated.js.map +7 -0
  181. package/dist/modules/design_system/gallery/demos/shell.js +330 -0
  182. package/dist/modules/design_system/gallery/demos/shell.js.map +7 -0
  183. package/dist/modules/design_system/gallery/demos/source-artwork.js +120 -0
  184. package/dist/modules/design_system/gallery/demos/source-artwork.js.map +7 -0
  185. package/dist/modules/design_system/gallery/demos/source-filters-code.generated.js +125 -0
  186. package/dist/modules/design_system/gallery/demos/source-filters-code.generated.js.map +7 -0
  187. package/dist/modules/design_system/gallery/demos/source-filters.js +185 -0
  188. package/dist/modules/design_system/gallery/demos/source-filters.js.map +7 -0
  189. package/dist/modules/design_system/gallery/demos/source-icons.js +69 -0
  190. package/dist/modules/design_system/gallery/demos/source-icons.js.map +7 -0
  191. package/dist/modules/design_system/gallery/demos/table-cells-code.generated.js +150 -0
  192. package/dist/modules/design_system/gallery/demos/table-cells-code.generated.js.map +7 -0
  193. package/dist/modules/design_system/gallery/demos/table-cells.js +181 -0
  194. package/dist/modules/design_system/gallery/demos/table-cells.js.map +7 -0
  195. package/dist/modules/design_system/gallery/demos/text-inputs.js +113 -0
  196. package/dist/modules/design_system/gallery/demos/text-inputs.js.map +7 -0
  197. package/dist/modules/design_system/gallery/demos/time-picker-code.generated.js +41 -0
  198. package/dist/modules/design_system/gallery/demos/time-picker-code.generated.js.map +7 -0
  199. package/dist/modules/design_system/gallery/demos/time-picker.js +41 -0
  200. package/dist/modules/design_system/gallery/demos/time-picker.js.map +7 -0
  201. package/dist/modules/design_system/gallery/entries/banners.js +123 -60
  202. package/dist/modules/design_system/gallery/entries/banners.js.map +2 -2
  203. package/dist/modules/design_system/gallery/entries/buttons-snippets.js +433 -0
  204. package/dist/modules/design_system/gallery/entries/buttons-snippets.js.map +7 -0
  205. package/dist/modules/design_system/gallery/entries/buttons.js +127 -148
  206. package/dist/modules/design_system/gallery/entries/buttons.js.map +2 -2
  207. package/dist/modules/design_system/gallery/entries/charts.js +532 -186
  208. package/dist/modules/design_system/gallery/entries/charts.js.map +2 -2
  209. package/dist/modules/design_system/gallery/entries/dates.js +191 -3
  210. package/dist/modules/design_system/gallery/entries/dates.js.map +2 -2
  211. package/dist/modules/design_system/gallery/entries/detail.js +118 -77
  212. package/dist/modules/design_system/gallery/entries/detail.js.map +2 -2
  213. package/dist/modules/design_system/gallery/entries/display.js +1449 -240
  214. package/dist/modules/design_system/gallery/entries/display.js.map +2 -2
  215. package/dist/modules/design_system/gallery/entries/feedback.js +1058 -132
  216. package/dist/modules/design_system/gallery/entries/feedback.js.map +2 -2
  217. package/dist/modules/design_system/gallery/entries/filters.js +231 -103
  218. package/dist/modules/design_system/gallery/entries/filters.js.map +2 -2
  219. package/dist/modules/design_system/gallery/entries/foundations.js +368 -57
  220. package/dist/modules/design_system/gallery/entries/foundations.js.map +2 -2
  221. package/dist/modules/design_system/gallery/entries/icons.js +29 -91
  222. package/dist/modules/design_system/gallery/entries/icons.js.map +2 -2
  223. package/dist/modules/design_system/gallery/entries/inputs-snippets.js +154 -0
  224. package/dist/modules/design_system/gallery/entries/inputs-snippets.js.map +7 -0
  225. package/dist/modules/design_system/gallery/entries/inputs.js +2043 -306
  226. package/dist/modules/design_system/gallery/entries/inputs.js.map +2 -2
  227. package/dist/modules/design_system/gallery/entries/library.js +20 -0
  228. package/dist/modules/design_system/gallery/entries/library.js.map +7 -0
  229. package/dist/modules/design_system/gallery/entries/messages.js +121 -103
  230. package/dist/modules/design_system/gallery/entries/messages.js.map +2 -2
  231. package/dist/modules/design_system/gallery/entries/navigation.js +676 -103
  232. package/dist/modules/design_system/gallery/entries/navigation.js.map +2 -2
  233. package/dist/modules/design_system/gallery/entries/notifications.js +131 -78
  234. package/dist/modules/design_system/gallery/entries/notifications.js.map +2 -2
  235. package/dist/modules/design_system/gallery/entries/overlays.js +611 -203
  236. package/dist/modules/design_system/gallery/entries/overlays.js.map +2 -2
  237. package/dist/modules/design_system/gallery/entries/scaffolding.js +1175 -120
  238. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +2 -2
  239. package/dist/modules/design_system/gallery/entries/schedule.js +79 -54
  240. package/dist/modules/design_system/gallery/entries/schedule.js.map +2 -2
  241. package/dist/modules/design_system/gallery/presentation.js +108 -0
  242. package/dist/modules/design_system/gallery/presentation.js.map +7 -0
  243. package/dist/modules/design_system/gallery/registry.js +8 -5
  244. package/dist/modules/design_system/gallery/registry.js.map +2 -2
  245. package/dist/modules/design_system/gallery/source-library.generated.js +5 -0
  246. package/dist/modules/design_system/gallery/source-library.generated.js.map +7 -0
  247. package/dist/modules/design_system/i18n/de.json +7167 -0
  248. package/dist/modules/design_system/i18n/en.json +7167 -0
  249. package/dist/modules/design_system/i18n/es.json +7167 -0
  250. package/dist/modules/design_system/i18n/ko.json +7167 -0
  251. package/dist/modules/design_system/i18n/pl.json +7167 -0
  252. package/dist/modules/push_notifications/lib/queue.js +1 -31
  253. package/dist/modules/push_notifications/lib/queue.js.map +2 -2
  254. package/jest.config.cjs +1 -0
  255. package/jest.mocks/image.js +1 -0
  256. package/package.json +8 -8
  257. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +50 -0
  258. package/src/modules/customers/backend/customers/companies/[id]/page.tsx +2 -1
  259. package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +2 -1
  260. package/src/modules/customers/backend/customers/people/[id]/page.tsx +2 -2
  261. package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +2 -1
  262. package/src/modules/customers/lib/detailHelpers.ts +4 -0
  263. package/src/modules/customers/lib/todoCompatibility.ts +10 -0
  264. package/src/modules/design_system/backend/design-system/page.meta.ts +3 -2
  265. package/src/modules/design_system/gallery/assets/README.md +30 -0
  266. package/src/modules/design_system/gallery/assets/ai-prompt-image.png +0 -0
  267. package/src/modules/design_system/gallery/assets/avatar-illustration.png +0 -0
  268. package/src/modules/design_system/gallery/assets/avatar-memoji.png +0 -0
  269. package/src/modules/design_system/gallery/assets/avatar-photo.png +0 -0
  270. package/src/modules/design_system/gallery/assets/blog-photo-0.png +0 -0
  271. package/src/modules/design_system/gallery/assets/contact-support-portrait.png +0 -0
  272. package/src/modules/design_system/gallery/assets/crypto-ada.png +0 -0
  273. package/src/modules/design_system/gallery/assets/crypto-avax.png +0 -0
  274. package/src/modules/design_system/gallery/assets/crypto-bnb.png +0 -0
  275. package/src/modules/design_system/gallery/assets/crypto-brand.png +0 -0
  276. package/src/modules/design_system/gallery/assets/crypto-btc.png +0 -0
  277. package/src/modules/design_system/gallery/assets/crypto-clock.svg +3 -0
  278. package/src/modules/design_system/gallery/assets/crypto-crown.svg +3 -0
  279. package/src/modules/design_system/gallery/assets/crypto-dot.png +0 -0
  280. package/src/modules/design_system/gallery/assets/crypto-eth.png +0 -0
  281. package/src/modules/design_system/gallery/assets/crypto-hbar.png +0 -0
  282. package/src/modules/design_system/gallery/assets/crypto-history.svg +3 -0
  283. package/src/modules/design_system/gallery/assets/crypto-link.svg +3 -0
  284. package/src/modules/design_system/gallery/assets/crypto-menu.svg +3 -0
  285. package/src/modules/design_system/gallery/assets/crypto-metamask.png +0 -0
  286. package/src/modules/design_system/gallery/assets/crypto-more.svg +3 -0
  287. package/src/modules/design_system/gallery/assets/crypto-phantom.png +0 -0
  288. package/src/modules/design_system/gallery/assets/crypto-rewards.svg +3 -0
  289. package/src/modules/design_system/gallery/assets/crypto-sad-face.png +0 -0
  290. package/src/modules/design_system/gallery/assets/crypto-sol.png +0 -0
  291. package/src/modules/design_system/gallery/assets/crypto-star.svg +3 -0
  292. package/src/modules/design_system/gallery/assets/crypto-status-cancelled.svg +3 -0
  293. package/src/modules/design_system/gallery/assets/crypto-status-pending.svg +3 -0
  294. package/src/modules/design_system/gallery/assets/crypto-status-success.svg +3 -0
  295. package/src/modules/design_system/gallery/assets/crypto-status-warning.svg +3 -0
  296. package/src/modules/design_system/gallery/assets/crypto-trx.png +0 -0
  297. package/src/modules/design_system/gallery/assets/crypto-usdc.png +0 -0
  298. package/src/modules/design_system/gallery/assets/crypto-usdt.png +0 -0
  299. package/src/modules/design_system/gallery/assets/crypto-walletconnect.png +0 -0
  300. package/src/modules/design_system/gallery/assets/crypto-wei.png +0 -0
  301. package/src/modules/design_system/gallery/assets/crypto-xrp.png +0 -0
  302. package/src/modules/design_system/gallery/assets/cryptocurrency-artwork.ts +63 -0
  303. package/src/modules/design_system/gallery/assets/github-logo.png +0 -0
  304. package/src/modules/design_system/gallery/assets/images.d.ts +9 -0
  305. package/src/modules/design_system/gallery/assets/input-european-union.svg +18 -0
  306. package/src/modules/design_system/gallery/assets/landing-teams-01.png +0 -0
  307. package/src/modules/design_system/gallery/assets/marketing-artwork.ts +79 -0
  308. package/src/modules/design_system/gallery/assets/menu-apex.svg +18 -0
  309. package/src/modules/design_system/gallery/assets/menu-mastercard.svg +7 -0
  310. package/src/modules/design_system/gallery/assets/menu-spotify.svg +4 -0
  311. package/src/modules/design_system/gallery/assets/menu-united-states.svg +16 -0
  312. package/src/modules/design_system/gallery/assets/select-google.png +0 -0
  313. package/src/modules/design_system/gallery/assets/select-poland.png +0 -0
  314. package/src/modules/design_system/gallery/assets/selection-artwork.ts +1 -0
  315. package/src/modules/design_system/gallery/assets/social-apple-filled.svg +4 -0
  316. package/src/modules/design_system/gallery/assets/social-apple-stroke.svg +4 -0
  317. package/src/modules/design_system/gallery/assets/social-dropbox-filled.svg +5 -0
  318. package/src/modules/design_system/gallery/assets/social-dropbox-stroke.svg +5 -0
  319. package/src/modules/design_system/gallery/assets/social-facebook-filled.svg +4 -0
  320. package/src/modules/design_system/gallery/assets/social-facebook-stroke.svg +10 -0
  321. package/src/modules/design_system/gallery/assets/social-github-filled.svg +4 -0
  322. package/src/modules/design_system/gallery/assets/social-github-stroke.svg +4 -0
  323. package/src/modules/design_system/gallery/assets/social-google-filled.svg +7 -0
  324. package/src/modules/design_system/gallery/assets/social-google-stroke.svg +7 -0
  325. package/src/modules/design_system/gallery/assets/social-linkedin-filled.svg +4 -0
  326. package/src/modules/design_system/gallery/assets/social-linkedin-stroke.svg +4 -0
  327. package/src/modules/design_system/gallery/assets/social-x-filled.svg +4 -0
  328. package/src/modules/design_system/gallery/assets/social-x-stroke.svg +4 -0
  329. package/src/modules/design_system/gallery/assets/style-studio-product.png +0 -0
  330. package/src/modules/design_system/gallery/assets/upload-images.ts +5 -0
  331. package/src/modules/design_system/gallery/components/BrandStylePreview.tsx +94 -0
  332. package/src/modules/design_system/gallery/components/CodeSnippet.tsx +34 -34
  333. package/src/modules/design_system/gallery/components/ColorPlayground.tsx +324 -0
  334. package/src/modules/design_system/gallery/components/ColorStudioCompositions.tsx +96 -0
  335. package/src/modules/design_system/gallery/components/ColorStudioSpecimen.tsx +164 -0
  336. package/src/modules/design_system/gallery/components/CompactEntrySpecimen.tsx +65 -0
  337. package/src/modules/design_system/gallery/components/ComponentIndex.tsx +47 -0
  338. package/src/modules/design_system/gallery/components/DesignSystemHome.tsx +66 -0
  339. package/src/modules/design_system/gallery/components/EntryCard.tsx +52 -37
  340. package/src/modules/design_system/gallery/components/EntryHeader.tsx +80 -0
  341. package/src/modules/design_system/gallery/components/FamilyEntryPreview.tsx +22 -0
  342. package/src/modules/design_system/gallery/components/FoundationGuide.tsx +43 -0
  343. package/src/modules/design_system/gallery/components/GalleryLink.tsx +19 -0
  344. package/src/modules/design_system/gallery/components/GalleryNavigation.tsx +86 -0
  345. package/src/modules/design_system/gallery/components/GalleryShell.tsx +149 -63
  346. package/src/modules/design_system/gallery/components/IconsBrowser.tsx +40 -0
  347. package/src/modules/design_system/gallery/components/SourceLibrary.tsx +90 -0
  348. package/src/modules/design_system/gallery/components/StyleAgents.tsx +115 -0
  349. package/src/modules/design_system/gallery/components/ThemeTokenReference.tsx +76 -0
  350. package/src/modules/design_system/gallery/components/VariantPreview.tsx +2 -2
  351. package/src/modules/design_system/gallery/components/colorPreview.ts +63 -0
  352. package/src/modules/design_system/gallery/components/colorStudio.ts +260 -0
  353. package/src/modules/design_system/gallery/components/styleAgentBranding.ts +42 -0
  354. package/src/modules/design_system/gallery/components/themeTokens.ts +26 -0
  355. package/src/modules/design_system/gallery/demos/ai-product-code.generated.ts +3 -0
  356. package/src/modules/design_system/gallery/demos/ai-product.tsx +188 -0
  357. package/src/modules/design_system/gallery/demos/buttons.tsx +331 -0
  358. package/src/modules/design_system/gallery/demos/cryptocurrency.tsx +1943 -0
  359. package/src/modules/design_system/gallery/demos/feeds-code.generated.ts +4 -0
  360. package/src/modules/design_system/gallery/demos/feeds.tsx +82 -0
  361. package/src/modules/design_system/gallery/demos/file-upload.tsx +61 -0
  362. package/src/modules/design_system/gallery/demos/foundation-reference-data.ts +4872 -0
  363. package/src/modules/design_system/gallery/demos/foundation-references.tsx +140 -0
  364. package/src/modules/design_system/gallery/demos/key-components-code.generated.ts +3 -0
  365. package/src/modules/design_system/gallery/demos/key-components.tsx +106 -0
  366. package/src/modules/design_system/gallery/demos/marketing-controls-code.generated.ts +3 -0
  367. package/src/modules/design_system/gallery/demos/marketing-controls.tsx +92 -0
  368. package/src/modules/design_system/gallery/demos/marketing-widgets-code.generated.ts +3 -0
  369. package/src/modules/design_system/gallery/demos/marketing-widgets.tsx +189 -0
  370. package/src/modules/design_system/gallery/demos/menu-fixtures.tsx +48 -0
  371. package/src/modules/design_system/gallery/demos/menu-sources.ts +5 -0
  372. package/src/modules/design_system/gallery/demos/menus.tsx +122 -0
  373. package/src/modules/design_system/gallery/demos/rating-reviews.tsx +44 -0
  374. package/src/modules/design_system/gallery/demos/registered-icons.tsx +117 -0
  375. package/src/modules/design_system/gallery/demos/selection-cards.tsx +97 -0
  376. package/src/modules/design_system/gallery/demos/shell-code.generated.ts +3 -0
  377. package/src/modules/design_system/gallery/demos/shell.tsx +183 -0
  378. package/src/modules/design_system/gallery/demos/source-artwork.tsx +88 -0
  379. package/src/modules/design_system/gallery/demos/source-filters-code.generated.ts +3 -0
  380. package/src/modules/design_system/gallery/demos/source-filters.tsx +119 -0
  381. package/src/modules/design_system/gallery/demos/source-icons.tsx +62 -0
  382. package/src/modules/design_system/gallery/demos/table-cells-code.generated.ts +3 -0
  383. package/src/modules/design_system/gallery/demos/table-cells.tsx +144 -0
  384. package/src/modules/design_system/gallery/demos/text-inputs.tsx +90 -0
  385. package/src/modules/design_system/gallery/demos/time-picker-code.generated.ts +5 -0
  386. package/src/modules/design_system/gallery/demos/time-picker.tsx +31 -0
  387. package/src/modules/design_system/gallery/entries/banners.tsx +143 -94
  388. package/src/modules/design_system/gallery/entries/buttons-snippets.ts +432 -0
  389. package/src/modules/design_system/gallery/entries/buttons.tsx +125 -196
  390. package/src/modules/design_system/gallery/entries/charts.tsx +545 -233
  391. package/src/modules/design_system/gallery/entries/dates.tsx +171 -3
  392. package/src/modules/design_system/gallery/entries/detail.tsx +142 -115
  393. package/src/modules/design_system/gallery/entries/display.tsx +1691 -319
  394. package/src/modules/design_system/gallery/entries/feedback.tsx +1082 -169
  395. package/src/modules/design_system/gallery/entries/filters.tsx +238 -143
  396. package/src/modules/design_system/gallery/entries/foundations.tsx +404 -61
  397. package/src/modules/design_system/gallery/entries/icons.tsx +31 -117
  398. package/src/modules/design_system/gallery/entries/inputs-snippets.ts +156 -0
  399. package/src/modules/design_system/gallery/entries/inputs.tsx +2146 -503
  400. package/src/modules/design_system/gallery/entries/library.tsx +16 -0
  401. package/src/modules/design_system/gallery/entries/messages.tsx +114 -106
  402. package/src/modules/design_system/gallery/entries/navigation.tsx +782 -192
  403. package/src/modules/design_system/gallery/entries/notifications.tsx +145 -120
  404. package/src/modules/design_system/gallery/entries/overlays.tsx +696 -280
  405. package/src/modules/design_system/gallery/entries/scaffolding.tsx +1192 -158
  406. package/src/modules/design_system/gallery/entries/schedule.tsx +72 -58
  407. package/src/modules/design_system/gallery/presentation.ts +106 -0
  408. package/src/modules/design_system/gallery/registry.ts +8 -6
  409. package/src/modules/design_system/gallery/source-library.generated.ts +2 -0
  410. package/src/modules/design_system/i18n/de.json +7112 -3
  411. package/src/modules/design_system/i18n/en.json +7112 -3
  412. package/src/modules/design_system/i18n/es.json +7112 -3
  413. package/src/modules/design_system/i18n/ko.json +7112 -3
  414. package/src/modules/design_system/i18n/pl.json +7112 -3
  415. package/src/modules/push_notifications/AGENTS.md +9 -5
  416. 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
+ }