@open-mercato/core 0.7.1-develop.7203.1.9396450b78 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 -9
  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
@@ -1,13 +1,19 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
2
3
  import {
3
- FilePlus2,
4
+ CircleAlert,
5
+ CircleCheck,
6
+ Globe,
4
7
  Info,
5
- LayoutDashboard,
6
8
  Settings,
7
9
  TriangleAlert,
8
10
  UserRound,
9
- Users
11
+ X
10
12
  } from "lucide-react";
13
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
14
+ import { CheckboxField } from "@open-mercato/ui/primitives/checkbox-field";
15
+ import { SwitchField } from "@open-mercato/ui/primitives/switch-field";
16
+ import { StepperDots } from "@open-mercato/ui/primitives/step-indicator";
11
17
  import { Button } from "@open-mercato/ui/primitives/button";
12
18
  import {
13
19
  Dialog,
@@ -41,45 +47,427 @@ import {
41
47
  } from "@open-mercato/ui/primitives/sheet";
42
48
  import {
43
49
  Popover,
50
+ PopoverArrow,
51
+ PopoverClose,
44
52
  PopoverContent,
45
53
  PopoverTrigger
46
54
  } from "@open-mercato/ui/primitives/popover";
47
- import { SimpleTooltip } from "@open-mercato/ui/primitives/tooltip";
48
- import {
49
- CommandMenu,
50
- CommandMenuContent,
51
- CommandMenuEmpty,
52
- CommandMenuFooter,
53
- CommandMenuGroup,
54
- CommandMenuInput,
55
- CommandMenuItem,
56
- CommandMenuList,
57
- CommandMenuSeparator,
58
- CommandMenuTrigger
59
- } from "@open-mercato/ui/primitives/command-menu";
55
+ import { SimpleTooltip, TooltipCard } from "@open-mercato/ui/primitives/tooltip";
56
+ import { CommandSourceExample } from "../demos/menus.js";
57
+ import { commandSourceCode } from "../demos/menu-sources.js";
58
+ const headerIcons = { default: Settings, error: CircleAlert, warning: TriangleAlert, success: CircleCheck, info: Info };
59
+ function FooterLeading({ kind }) {
60
+ const t = useT();
61
+ if (kind === "checkbox") return /* @__PURE__ */ jsx(CheckboxField, { label: t("design_system.gallery.samples.overlay.remember") });
62
+ if (kind === "toggle") return /* @__PURE__ */ jsx(SwitchField, { label: t("design_system.gallery.samples.overlay.remember") });
63
+ if (kind === "stepper") return /* @__PURE__ */ jsx(StepperDots, { count: 3, activeStep: 0, size: "sm", "aria-label": t("design_system.gallery.samples.overlay.steps") });
64
+ if (kind === "link") return /* @__PURE__ */ jsx(Button, { variant: "link", size: "sm", children: t("design_system.gallery.samples.overlay.help") });
65
+ if (kind === "information") return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
66
+ /* @__PURE__ */ jsx(Info, { "aria-hidden": "true", className: "size-4" }),
67
+ t("design_system.gallery.samples.overlay.information")
68
+ ] });
69
+ return null;
70
+ }
71
+ function DialogExample({ header = "basic", compact = false, footer = "basic", alignment = "horizontal", status = false }) {
72
+ const t = useT();
73
+ const Icon = header === "basic" ? void 0 : headerIcons[header];
74
+ return /* @__PURE__ */ jsx(Dialog, { children: /* @__PURE__ */ jsxs("section", { "data-dialog-preview": "", "aria-label": t("design_system.gallery.samples.overlay.title"), className: "relative w-full max-w-md overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-sm", children: [
75
+ !status ? /* @__PURE__ */ jsx(X, { "aria-hidden": "true", className: "absolute right-4 top-4 size-4 text-muted-foreground" }) : null,
76
+ /* @__PURE__ */ jsxs(DialogHeader, { className: status ? "p-6" : "p-4 pr-12", compact, alignment, leadingTone: header === "basic" ? "default" : header, leading: Icon ? /* @__PURE__ */ jsx(Icon, { className: compact || status ? "size-6" : "size-5" }) : void 0, children: [
77
+ /* @__PURE__ */ jsx(DialogTitle, { className: status ? "text-base font-medium leading-6 tracking-normal" : "text-sm font-medium leading-5 tracking-normal", children: t("design_system.gallery.samples.overlay.title") }),
78
+ /* @__PURE__ */ jsx(DialogDescription, { className: compact ? "sr-only" : void 0, children: t("design_system.gallery.samples.overlay.description") })
79
+ ] }),
80
+ !status ? /* @__PURE__ */ jsx("div", { className: "px-4 py-6 text-sm text-muted-foreground", children: t("design_system.gallery.samples.overlay.body") }) : null,
81
+ /* @__PURE__ */ jsxs(DialogFooter, { layout: footer === "equal" ? "equal" : "default", leading: footer === "basic" || footer === "equal" ? void 0 : /* @__PURE__ */ jsx(FooterLeading, { kind: footer }), className: "mx-0 gap-3 px-4 py-4", children: [
82
+ /* @__PURE__ */ jsx(Button, { asChild: true, variant: "outline", size: "default", children: /* @__PURE__ */ jsx("span", { children: t("design_system.gallery.samples.overlay.cancel") }) }),
83
+ /* @__PURE__ */ jsx(Button, { asChild: true, variant: "primary-filled", size: "default", children: /* @__PURE__ */ jsx("span", { children: t("design_system.gallery.samples.overlay.continue") }) })
84
+ ] })
85
+ ] }) });
86
+ }
87
+ function DrawerExample({ header = "basic", compact = false, footer = "basic" }) {
88
+ const t = useT();
89
+ return /* @__PURE__ */ jsxs(Drawer, { children: [
90
+ /* @__PURE__ */ jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.openDrawer") }) }),
91
+ /* @__PURE__ */ jsxs(DrawerContent, { closeAriaLabel: t("design_system.gallery.samples.overlay.close"), children: [
92
+ /* @__PURE__ */ jsxs(DrawerHeader, { compact, leading: header === "default" ? /* @__PURE__ */ jsx(Settings, { className: compact ? "size-6" : "size-5" }) : void 0, children: [
93
+ /* @__PURE__ */ jsx(DrawerTitle, { className: "text-sm font-medium leading-5", children: t("design_system.gallery.samples.overlay.title") }),
94
+ /* @__PURE__ */ jsx(DrawerDescription, { className: compact ? "sr-only" : void 0, children: t("design_system.gallery.samples.overlay.description") })
95
+ ] }),
96
+ /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsx("p", { className: "py-6 text-sm text-muted-foreground", children: t("design_system.gallery.samples.overlay.body") }) }),
97
+ /* @__PURE__ */ jsxs(DrawerFooter, { layout: footer === "equal" ? "equal" : "default", leading: footer === "basic" || footer === "equal" ? void 0 : /* @__PURE__ */ jsx(FooterLeading, { kind: footer }), className: "flex-wrap [&_[data-slot=drawer-footer-trailing]]:ml-auto", children: [
98
+ /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") }) }),
99
+ /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "primary-filled", children: t("design_system.gallery.samples.overlay.continue") }) })
100
+ ] })
101
+ ] })
102
+ ] });
103
+ }
104
+ function overlayExampleCode(kind, example) {
105
+ const header = example.header ?? "basic";
106
+ const icon = header === "basic" ? null : { default: "Settings", error: "CircleAlert", warning: "TriangleAlert", success: "CircleCheck", info: "Info" }[header];
107
+ const footer = example.footer ?? "basic";
108
+ const leading = footer === "checkbox" ? '<CheckboxField label="Don\u2019t show again" />' : footer === "toggle" ? '<SwitchField label="Don\u2019t show again" />' : footer === "stepper" ? '<StepperDots count={3} activeStep={0} size="sm" aria-label="Step 1 of 3" />' : footer === "link" ? '<Button variant="link" size="sm">Help</Button>' : footer === "information" ? '<span className="text-xs text-muted-foreground">Changes apply immediately</span>' : null;
109
+ if (kind === "Dialog") return `${icon ? `import { ${icon}, X } from 'lucide-react'
110
+ ` : "import { X } from 'lucide-react'\n"}${footer === "checkbox" ? "import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n" : ""}${footer === "toggle" ? "import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n" : ""}${footer === "stepper" ? "import { StepperDots } from '@open-mercato/ui/primitives/step-indicator'\n" : ""}import { Button } from '@open-mercato/ui/primitives/button'
111
+ import { Dialog, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from '@open-mercato/ui/primitives/dialog'
112
+
113
+ <Dialog>
114
+ <section aria-label="Workspace settings" className="relative w-full max-w-md overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-sm">
115
+ ${example.status ? "" : '<X aria-hidden="true" className="absolute right-4 top-4 size-4 text-muted-foreground" />'}
116
+ <DialogHeader className="${example.status ? "p-6" : "p-4 pr-12"}" alignment="${example.alignment ?? "horizontal"}" leadingTone="${header === "basic" ? "default" : header}"${example.compact ? " compact" : ""}${icon ? ` leading={<${icon} className="${example.compact || example.status ? "size-6" : "size-5"}" />}` : ""}>
117
+ <DialogTitle className="${example.status ? "text-base font-medium leading-6 tracking-normal" : "text-sm font-medium leading-5 tracking-normal"}">Workspace settings</DialogTitle>
118
+ <DialogDescription${example.compact ? ' className="sr-only"' : ""}>Choose how these changes apply to your workspace.</DialogDescription>
119
+ </DialogHeader>
120
+ ${example.status ? "" : '<div className="px-4 py-6 text-sm text-muted-foreground">Review your settings before continuing.</div>'}
121
+ <DialogFooter layout="${footer === "equal" ? "equal" : "default"}"${leading ? ` leading={${leading}}` : ""} className="mx-0 gap-3 px-4 py-4">
122
+ <Button asChild variant="outline" size="default"><span>Cancel</span></Button>
123
+ <Button asChild variant="primary-filled" size="default"><span>Continue</span></Button>
124
+ </DialogFooter>
125
+ </section>
126
+ </Dialog>`;
127
+ return `${icon ? `import { ${icon} } from 'lucide-react'
128
+ ` : ""}${footer === "checkbox" ? "import { CheckboxField } from '@open-mercato/ui/primitives/checkbox-field'\n" : ""}${footer === "toggle" ? "import { SwitchField } from '@open-mercato/ui/primitives/switch-field'\n" : ""}${footer === "stepper" ? "import { StepperDots } from '@open-mercato/ui/primitives/step-indicator'\n" : ""}import { Button } from '@open-mercato/ui/primitives/button'
129
+ import { ${kind}, ${kind}Trigger, ${kind}Content, ${kind}Header, ${kind}Title, ${kind}Description, ${kind}Footer, ${kind}Close, DrawerBody } from '@open-mercato/ui/primitives/${kind.toLowerCase()}'
130
+
131
+ <${kind}>
132
+ <${kind}Trigger asChild><Button variant="outline">Open ${kind.toLowerCase()}</Button></${kind}Trigger>
133
+ <${kind}Content>
134
+ <${kind}Header${example.compact ? " compact" : ""}${icon ? ` leading={<${icon} className="${example.compact || example.status ? "size-6" : "size-5"}" />}` : ""}>
135
+ <${kind}Title className="${example.status ? "text-base font-medium leading-6 tracking-normal" : "text-sm font-medium leading-5 tracking-normal"}">Workspace settings</${kind}Title>
136
+ <${kind}Description${example.compact ? ' className="sr-only"' : ""}>Choose how these changes apply to your workspace.</${kind}Description>
137
+ </${kind}Header>
138
+ <DrawerBody><p className="py-6 text-sm text-muted-foreground">Review your settings before continuing.</p></DrawerBody>
139
+ <${kind}Footer layout="${footer === "equal" ? "equal" : "default"}"${leading ? ` leading={${leading}}` : ""} className="flex-wrap [&_[data-slot=drawer-footer-trailing]]:ml-auto">
140
+ <${kind}Close asChild><Button variant="outline">Cancel</Button></${kind}Close>
141
+ <${kind}Close asChild><Button variant="primary-filled">Continue</Button></${kind}Close>
142
+ </${kind}Footer>
143
+ </${kind}Content>
144
+ </${kind}>`;
145
+ }
146
+ const overlayPlacements = [
147
+ { label: "Top left", side: "bottom", align: "start" },
148
+ { label: "Top center", side: "bottom", align: "center" },
149
+ { label: "Top right", side: "bottom", align: "end" },
150
+ { label: "Bottom left", side: "top", align: "start" },
151
+ { label: "Bottom center", side: "top", align: "center" },
152
+ { label: "Bottom right", side: "top", align: "end" },
153
+ { label: "Left", side: "right", align: "center" },
154
+ { label: "Right", side: "left", align: "center" },
155
+ { label: "Left top", side: "right", align: "start" },
156
+ { label: "Left bottom", side: "right", align: "end" },
157
+ { label: "Right top", side: "left", align: "start" },
158
+ { label: "Right bottom", side: "left", align: "end" }
159
+ ];
160
+ function TooltipPlacements({ size, variant }) {
161
+ const t = useT();
162
+ return /* @__PURE__ */ jsx("div", { className: "grid w-full grid-cols-2 gap-3 sm:grid-cols-4", children: overlayPlacements.slice(0, 8).map(({ label, side, align }) => size === "lg" ? /* @__PURE__ */ jsx(TooltipCard, { title: t("design_system.gallery.samples.overlay.tooltip"), description: t("design_system.gallery.samples.overlay.description"), leading: /* @__PURE__ */ jsx(Globe, { className: "size-5" }), variant, side, align, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", className: "justify-self-center", children: label }) }, label) : /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.samples.overlay.tooltip"), size, variant, side, align, delayDuration: 0, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", className: "justify-self-center", children: label }) }, label)) });
163
+ }
164
+ function tooltipPlacementCode({ size, variant }) {
165
+ const component = size === "lg" ? "TooltipCard" : "SimpleTooltip";
166
+ return `import { ${component} } from '@open-mercato/ui/primitives/tooltip'
167
+ import { Button } from '@open-mercato/ui/primitives/button'
168
+ ${size === "lg" ? "import { Globe } from 'lucide-react'\n" : ""}
169
+ // Figma's arrow edge is opposite Radix's content side. Collision handling stays enabled.
170
+ <div className="grid w-full grid-cols-2 gap-3 sm:grid-cols-4">
171
+ ${overlayPlacements.slice(0, 8).map(({ label, side, align }) => ` <${component} ${size === "lg" ? 'title="Workspace settings" description="Choose how these changes apply to your workspace." leading={<Globe className="size-5" />}' : `content="Workspace settings" size="${size}"`} variant="${variant}" side="${side}" align="${align}"${size === "lg" ? "" : " delayDuration={0}"}>
172
+ <Button variant="outline" size="sm" className="justify-self-center">${label}</Button>
173
+ </${component}>`).join("\n")}
174
+ </div>`;
175
+ }
176
+ function PopoverExample({ placements = false, footer = "equal" }) {
177
+ const t = useT();
178
+ const [step, setStep] = React.useState(0);
179
+ const options = placements ? overlayPlacements : [overlayPlacements[0]];
180
+ return /* @__PURE__ */ jsx("div", { className: "grid w-full grid-cols-2 gap-3 sm:grid-cols-4", children: options.map(({ label, side, align }) => /* @__PURE__ */ jsxs(Popover, { children: [
181
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", className: "justify-self-center", children: placements ? label : t("design_system.gallery.samples.overlay.openPopover") }) }),
182
+ /* @__PURE__ */ jsxs(PopoverContent, { side, align, sideOffset: 6, role: "dialog", "aria-label": t("design_system.gallery.samples.overlay.title"), className: "w-[312px] max-w-[calc(100vw-24px)] min-w-0 overflow-visible rounded-xl", children: [
183
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1 p-5 pb-0", children: [
184
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: t("design_system.gallery.samples.overlay.title") }),
185
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.samples.overlay.description") })
186
+ ] }),
187
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3 px-5 py-4", children: [
188
+ footer === "stepper" ? /* @__PURE__ */ jsx(StepperDots, { count: 3, activeStep: step, size: "sm", "aria-label": t("design_system.gallery.samples.overlay.steps") }) : null,
189
+ footer === "text" ? /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
190
+ step + 1,
191
+ " / 3"
192
+ ] }) : null,
193
+ /* @__PURE__ */ jsxs("div", { className: footer === "equal" ? "flex w-full gap-3 [&>*]:flex-1" : "ml-auto flex gap-3", children: [
194
+ /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", disabled: step === 0, onClick: () => setStep((previous) => Math.max(0, previous - 1)), children: t("design_system.gallery.samples.overlay.back") }),
195
+ step === 2 ? /* @__PURE__ */ jsx(PopoverClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "primary-filled", size: "sm", children: t("design_system.gallery.samples.overlay.done") }) }) : /* @__PURE__ */ jsx(Button, { variant: "primary-filled", size: "sm", onClick: () => setStep((previous) => Math.min(2, previous + 1)), children: t("design_system.gallery.samples.overlay.next") })
196
+ ] })
197
+ ] }),
198
+ /* @__PURE__ */ jsx(PopoverArrow, {})
199
+ ] })
200
+ ] }, label)) });
201
+ }
202
+ function popoverExampleCode(footer) {
203
+ return `import * as React from 'react'
204
+ import { Button } from '@open-mercato/ui/primitives/button'
205
+ import { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverClose } from '@open-mercato/ui/primitives/popover'
206
+ ${footer === "stepper" ? "import { StepperDots } from '@open-mercato/ui/primitives/step-indicator'\n" : ""}
207
+ function Example() {
208
+ const [step, setStep] = React.useState(0)
209
+ return <Popover>
210
+ <PopoverTrigger asChild><Button variant="outline">Open popover</Button></PopoverTrigger>
211
+ <PopoverContent side="bottom" align="start" sideOffset={6} role="dialog" aria-label="Workspace settings" className="w-[312px] max-w-[calc(100vw-24px)] min-w-0 rounded-xl">
212
+ <div className="space-y-1 p-5 pb-0"><p className="text-sm font-medium">Workspace settings</p><p className="text-sm text-muted-foreground">Choose how these changes apply to your workspace.</p></div>
213
+ <div className="flex flex-wrap items-center gap-3 px-5 py-4">
214
+ ${footer === "stepper" ? '<StepperDots count={3} activeStep={step} size="sm" aria-label="Progress" />' : footer === "text" ? '<span className="text-xs text-muted-foreground">{step + 1} / 3</span>' : ""}
215
+ <div className="${footer === "equal" ? "flex w-full gap-3 [&>*]:flex-1" : "ml-auto flex gap-3"}">
216
+ <Button variant="outline" size="sm" disabled={step === 0} onClick={() => setStep(value => value - 1)}>Back</Button>
217
+ {step === 2 ? <PopoverClose asChild><Button variant="primary-filled" size="sm">Done</Button></PopoverClose> : <Button variant="primary-filled" size="sm" onClick={() => setStep(value => value + 1)}>Next</Button>}
218
+ </div>
219
+ </div>
220
+ <PopoverArrow />
221
+ </PopoverContent>
222
+ </Popover>
223
+ }`;
224
+ }
225
+ const dialogExamples = [
226
+ {
227
+ "id": "header-small-basic",
228
+ "title": "Header / small / basic",
229
+ "header": "basic",
230
+ "compact": true
231
+ },
232
+ {
233
+ "id": "header-small-default",
234
+ "title": "Header / small / default",
235
+ "header": "default",
236
+ "compact": true
237
+ },
238
+ {
239
+ "id": "header-small-error",
240
+ "title": "Header / small / error",
241
+ "header": "error",
242
+ "compact": true
243
+ },
244
+ {
245
+ "id": "header-small-warning",
246
+ "title": "Header / small / warning",
247
+ "header": "warning",
248
+ "compact": true
249
+ },
250
+ {
251
+ "id": "header-small-success",
252
+ "title": "Header / small / success",
253
+ "header": "success",
254
+ "compact": true
255
+ },
256
+ {
257
+ "id": "header-small-info",
258
+ "title": "Header / small / info",
259
+ "header": "info",
260
+ "compact": true
261
+ },
262
+ {
263
+ "id": "header-medium-basic",
264
+ "title": "Header / medium / basic",
265
+ "header": "basic",
266
+ "compact": false
267
+ },
268
+ {
269
+ "id": "header-medium-default",
270
+ "title": "Header / medium / default",
271
+ "header": "default",
272
+ "compact": false
273
+ },
274
+ {
275
+ "id": "header-medium-error",
276
+ "title": "Header / medium / error",
277
+ "header": "error",
278
+ "compact": false
279
+ },
280
+ {
281
+ "id": "header-medium-warning",
282
+ "title": "Header / medium / warning",
283
+ "header": "warning",
284
+ "compact": false
285
+ },
286
+ {
287
+ "id": "header-medium-success",
288
+ "title": "Header / medium / success",
289
+ "header": "success",
290
+ "compact": false
291
+ },
292
+ {
293
+ "id": "header-medium-info",
294
+ "title": "Header / medium / info",
295
+ "header": "info",
296
+ "compact": false
297
+ },
298
+ {
299
+ "id": "footer-basic",
300
+ "title": "Footer / basic",
301
+ "footer": "basic"
302
+ },
303
+ {
304
+ "id": "footer-equal",
305
+ "title": "Footer / equal",
306
+ "footer": "equal"
307
+ },
308
+ {
309
+ "id": "footer-checkbox",
310
+ "title": "Footer / checkbox",
311
+ "footer": "checkbox"
312
+ },
313
+ {
314
+ "id": "footer-information",
315
+ "title": "Footer / information",
316
+ "footer": "information"
317
+ },
318
+ {
319
+ "id": "footer-toggle",
320
+ "title": "Footer / toggle",
321
+ "footer": "toggle"
322
+ },
323
+ {
324
+ "id": "footer-stepper",
325
+ "title": "Footer / stepper",
326
+ "footer": "stepper"
327
+ },
328
+ {
329
+ "id": "footer-link",
330
+ "title": "Footer / link",
331
+ "footer": "link"
332
+ },
333
+ {
334
+ "id": "status-horizontal-error",
335
+ "title": "Status / horizontal / error",
336
+ "header": "error",
337
+ "alignment": "horizontal",
338
+ "status": true,
339
+ "footer": "checkbox"
340
+ },
341
+ {
342
+ "id": "status-horizontal-warning",
343
+ "title": "Status / horizontal / warning",
344
+ "header": "warning",
345
+ "alignment": "horizontal",
346
+ "status": true,
347
+ "footer": "checkbox"
348
+ },
349
+ {
350
+ "id": "status-horizontal-success",
351
+ "title": "Status / horizontal / success",
352
+ "header": "success",
353
+ "alignment": "horizontal",
354
+ "status": true,
355
+ "footer": "checkbox"
356
+ },
357
+ {
358
+ "id": "status-horizontal-info",
359
+ "title": "Status / horizontal / info",
360
+ "header": "info",
361
+ "alignment": "horizontal",
362
+ "status": true,
363
+ "footer": "checkbox"
364
+ },
365
+ {
366
+ "id": "status-vertical-error",
367
+ "title": "Status / vertical / error",
368
+ "header": "error",
369
+ "alignment": "vertical",
370
+ "status": true,
371
+ "footer": "checkbox"
372
+ },
373
+ {
374
+ "id": "status-vertical-warning",
375
+ "title": "Status / vertical / warning",
376
+ "header": "warning",
377
+ "alignment": "vertical",
378
+ "status": true,
379
+ "footer": "checkbox"
380
+ },
381
+ {
382
+ "id": "status-vertical-success",
383
+ "title": "Status / vertical / success",
384
+ "header": "success",
385
+ "alignment": "vertical",
386
+ "status": true,
387
+ "footer": "checkbox"
388
+ },
389
+ {
390
+ "id": "status-vertical-info",
391
+ "title": "Status / vertical / info",
392
+ "header": "info",
393
+ "alignment": "vertical",
394
+ "status": true,
395
+ "footer": "checkbox"
396
+ }
397
+ ];
398
+ const drawerExamples = [
399
+ {
400
+ "id": "header-small-basic",
401
+ "title": "Header / small / basic",
402
+ "header": "basic",
403
+ "compact": true
404
+ },
405
+ {
406
+ "id": "header-small-default",
407
+ "title": "Header / small / default",
408
+ "header": "default",
409
+ "compact": true
410
+ },
411
+ {
412
+ "id": "header-large-basic",
413
+ "title": "Header / large / basic",
414
+ "header": "basic",
415
+ "compact": false
416
+ },
417
+ {
418
+ "id": "header-large-default",
419
+ "title": "Header / large / default",
420
+ "header": "default",
421
+ "compact": false
422
+ },
423
+ {
424
+ "id": "footer-equal",
425
+ "title": "Footer / equal",
426
+ "footer": "equal"
427
+ },
428
+ {
429
+ "id": "footer-basic",
430
+ "title": "Footer / basic",
431
+ "footer": "basic"
432
+ },
433
+ {
434
+ "id": "footer-checkbox",
435
+ "title": "Footer / checkbox",
436
+ "footer": "checkbox"
437
+ },
438
+ {
439
+ "id": "footer-toggle",
440
+ "title": "Footer / toggle",
441
+ "footer": "toggle"
442
+ },
443
+ {
444
+ "id": "footer-stepper",
445
+ "title": "Footer / stepper",
446
+ "footer": "stepper"
447
+ },
448
+ {
449
+ "id": "footer-link",
450
+ "title": "Footer / link",
451
+ "footer": "link"
452
+ }
453
+ ];
60
454
  const dialogEntry = {
61
455
  id: "dialog",
456
+ figmaNodeId: "466:4778",
62
457
  title: "Dialog",
63
458
  importPath: "@open-mercato/ui/primitives/dialog",
64
459
  docsAnchor: "#dialog",
65
460
  variants: [
461
+ ...dialogExamples.map((example) => ({
462
+ id: example.id,
463
+ title: example.title,
464
+ render: () => /* @__PURE__ */ jsx(DialogExample, { ...example }),
465
+ code: overlayExampleCode("Dialog", example)
466
+ })),
66
467
  {
67
468
  id: "default",
68
469
  title: "default",
69
- render: () => /* @__PURE__ */ jsxs(Dialog, { children: [
70
- /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open dialog" }) }),
71
- /* @__PURE__ */ jsxs(DialogContent, { children: [
72
- /* @__PURE__ */ jsxs(DialogHeader, { children: [
73
- /* @__PURE__ */ jsx(DialogTitle, { children: "Rename view" }),
74
- /* @__PURE__ */ jsx(DialogDescription, { children: "The new name is visible to everyone in this workspace." })
75
- ] }),
76
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Press Escape or click outside to dismiss." }),
77
- /* @__PURE__ */ jsxs(DialogFooter, { children: [
78
- /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Cancel" }) }),
79
- /* @__PURE__ */ jsx(Button, { children: "Save changes" })
80
- ] })
81
- ] })
82
- ] }),
470
+ render: () => /* @__PURE__ */ jsx(DialogOverlaysDefaultSample, {}),
83
471
  code: `import { Button } from '@open-mercato/ui/primitives/button'
84
472
  import {
85
473
  Dialog,
@@ -115,19 +503,7 @@ import {
115
503
  {
116
504
  id: "status-leading",
117
505
  title: "Status leading badge",
118
- render: () => /* @__PURE__ */ jsxs(Dialog, { children: [
119
- /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "destructive-outline", children: "Delete record" }) }),
120
- /* @__PURE__ */ jsxs(DialogContent, { size: "sm", children: [
121
- /* @__PURE__ */ jsxs(DialogHeader, { leading: /* @__PURE__ */ jsx(TriangleAlert, { className: "size-4" }), leadingTone: "error", children: [
122
- /* @__PURE__ */ jsx(DialogTitle, { children: "Delete this record?" }),
123
- /* @__PURE__ */ jsx(DialogDescription, { children: "This removes the record from every linked view." })
124
- ] }),
125
- /* @__PURE__ */ jsxs(DialogFooter, { layout: "equal", children: [
126
- /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Cancel" }) }),
127
- /* @__PURE__ */ jsx(Button, { variant: "destructive-solid", children: "Delete" })
128
- ] })
129
- ] })
130
- ] }),
506
+ render: () => /* @__PURE__ */ jsx(DialogOverlaysStatusLeadingSample, {}),
131
507
  code: `import { TriangleAlert } from 'lucide-react'
132
508
  import { Button } from '@open-mercato/ui/primitives/button'
133
509
  import {
@@ -170,36 +546,16 @@ const drawerEntry = {
170
546
  docsAnchor: "#drawer",
171
547
  figmaNodeId: "486:7366",
172
548
  variants: [
549
+ ...drawerExamples.map((example) => ({
550
+ id: example.id,
551
+ title: example.title,
552
+ render: () => /* @__PURE__ */ jsx(DrawerExample, { ...example }),
553
+ code: overlayExampleCode("Drawer", example)
554
+ })),
173
555
  {
174
556
  id: "default",
175
557
  title: "default",
176
- render: () => /* @__PURE__ */ jsxs(Drawer, { children: [
177
- /* @__PURE__ */ jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open drawer" }) }),
178
- /* @__PURE__ */ jsxs(DrawerContent, { children: [
179
- /* @__PURE__ */ jsxs(DrawerHeader, { children: [
180
- /* @__PURE__ */ jsx(DrawerTitle, { children: "Edit person" }),
181
- /* @__PURE__ */ jsx(DrawerDescription, { children: "Update the contact details below." })
182
- ] }),
183
- /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsxs("div", { className: "divide-y divide-input text-sm", children: [
184
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
185
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Name" }),
186
- /* @__PURE__ */ jsx("span", { className: "text-foreground", children: "Anna Kowalska" })
187
- ] }),
188
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
189
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Role" }),
190
- /* @__PURE__ */ jsx("span", { className: "text-foreground", children: "Account manager" })
191
- ] }),
192
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
193
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Team" }),
194
- /* @__PURE__ */ jsx("span", { className: "text-foreground", children: "Sales EU" })
195
- ] })
196
- ] }) }),
197
- /* @__PURE__ */ jsxs(DrawerFooter, { layout: "equal", children: [
198
- /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Cancel" }) }),
199
- /* @__PURE__ */ jsx(Button, { children: "Save changes" })
200
- ] })
201
- ] })
202
- ] }),
558
+ render: () => /* @__PURE__ */ jsx(DrawerOverlaysDefaultSample, {}),
203
559
  code: `import { Button } from '@open-mercato/ui/primitives/button'
204
560
  import {
205
561
  Drawer,
@@ -235,24 +591,7 @@ import {
235
591
  {
236
592
  id: "leading-icon",
237
593
  title: "Header leading icon",
238
- render: () => /* @__PURE__ */ jsxs(Drawer, { children: [
239
- /* @__PURE__ */ jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open profile drawer" }) }),
240
- /* @__PURE__ */ jsxs(DrawerContent, { children: [
241
- /* @__PURE__ */ jsxs(DrawerHeader, { leading: /* @__PURE__ */ jsx(UserRound, { className: "size-4" }), children: [
242
- /* @__PURE__ */ jsx(DrawerTitle, { children: "Profile details" }),
243
- /* @__PURE__ */ jsx(DrawerDescription, { children: "Read-only summary of this account." })
244
- ] }),
245
- /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
246
- "The header badge takes any Lucide icon via the ",
247
- /* @__PURE__ */ jsx("code", { children: "leading" }),
248
- " prop."
249
- ] }) }),
250
- /* @__PURE__ */ jsxs(DrawerFooter, { layout: "equal", children: [
251
- /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Cancel" }) }),
252
- /* @__PURE__ */ jsx(Button, { children: "Continue" })
253
- ] })
254
- ] })
255
- ] }),
594
+ render: () => /* @__PURE__ */ jsx(DrawerOverlaysLeadingIconSample, {}),
256
595
  code: `import { UserRound } from 'lucide-react'
257
596
  import { Button } from '@open-mercato/ui/primitives/button'
258
597
  import {
@@ -296,20 +635,7 @@ const sheetEntry = {
296
635
  {
297
636
  id: "right",
298
637
  title: "right (default)",
299
- render: () => /* @__PURE__ */ jsxs(Sheet, { children: [
300
- /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open sheet" }) }),
301
- /* @__PURE__ */ jsxs(SheetContent, { children: [
302
- /* @__PURE__ */ jsxs(SheetHeader, { children: [
303
- /* @__PURE__ */ jsx(SheetTitle, { children: "Filters" }),
304
- /* @__PURE__ */ jsx(SheetDescription, { children: "Narrow down the current list." })
305
- ] }),
306
- /* @__PURE__ */ jsx("div", { className: "flex-1 px-4 text-sm text-muted-foreground", children: "Sheet body content scrolls independently of the header and footer." }),
307
- /* @__PURE__ */ jsxs(SheetFooter, { children: [
308
- /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Reset" }),
309
- /* @__PURE__ */ jsx(Button, { children: "Apply" })
310
- ] })
311
- ] })
312
- ] }),
638
+ render: () => /* @__PURE__ */ jsx(SheetOverlaysRightSample, {}),
313
639
  code: `import { Button } from '@open-mercato/ui/primitives/button'
314
640
  import {
315
641
  Sheet,
@@ -341,16 +667,7 @@ import {
341
667
  {
342
668
  id: "left",
343
669
  title: 'side="left"',
344
- render: () => /* @__PURE__ */ jsxs(Sheet, { children: [
345
- /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open left sheet" }) }),
346
- /* @__PURE__ */ jsxs(SheetContent, { side: "left", children: [
347
- /* @__PURE__ */ jsxs(SheetHeader, { children: [
348
- /* @__PURE__ */ jsx(SheetTitle, { children: "Navigation" }),
349
- /* @__PURE__ */ jsx(SheetDescription, { children: "Slides in from the left edge." })
350
- ] }),
351
- /* @__PURE__ */ jsx("div", { className: "flex-1 px-4 text-sm text-muted-foreground", children: "Use the left side for mobile menus and secondary navigation." })
352
- ] })
353
- ] }),
670
+ render: () => /* @__PURE__ */ jsx(SheetOverlaysLeftSample, {}),
354
671
  code: `import { Button } from '@open-mercato/ui/primitives/button'
355
672
  import {
356
673
  Sheet,
@@ -378,19 +695,18 @@ import {
378
695
  };
379
696
  const popoverEntry = {
380
697
  id: "popover",
698
+ figmaNodeId: "4431:81573",
381
699
  title: "Popover",
382
700
  importPath: "@open-mercato/ui/primitives/popover",
383
701
  variants: [
702
+ { id: "positions", title: "12 arrow positions", render: () => /* @__PURE__ */ jsx(PopoverExample, { placements: true }), code: popoverExampleCode("equal") + "\n\n// Source arrow edge \u2192 content side / alignment\n" + overlayPlacements.map((item) => `// ${item.label} \u2192 side="${item.side}" align="${item.align}"`).join("\n") },
703
+ { id: "footer-equal", title: "Footer / equal", render: () => /* @__PURE__ */ jsx(PopoverExample, { footer: "equal" }), code: popoverExampleCode("equal") },
704
+ { id: "footer-text", title: "Footer / text", render: () => /* @__PURE__ */ jsx(PopoverExample, { footer: "text" }), code: popoverExampleCode("text") },
705
+ { id: "footer-stepper", title: "Footer / stepper", render: () => /* @__PURE__ */ jsx(PopoverExample, { footer: "stepper" }), code: popoverExampleCode("stepper") },
384
706
  {
385
707
  id: "default",
386
708
  title: "default",
387
- render: () => /* @__PURE__ */ jsxs(Popover, { children: [
388
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open popover" }) }),
389
- /* @__PURE__ */ jsx(PopoverContent, { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
390
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: "Display density" }),
391
- /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Anchored to its trigger; Escape and outside-click dismiss it." })
392
- ] }) })
393
- ] }),
709
+ render: () => /* @__PURE__ */ jsx(PopoverOverlaysDefaultSample, {}),
394
710
  code: `import { Button } from '@open-mercato/ui/primitives/button'
395
711
  import {
396
712
  Popover,
@@ -410,10 +726,7 @@ import {
410
726
  {
411
727
  id: "align-end",
412
728
  title: 'align="end" + side="top"',
413
- render: () => /* @__PURE__ */ jsxs(Popover, { children: [
414
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open above" }) }),
415
- /* @__PURE__ */ jsx(PopoverContent, { side: "top", align: "end", className: "p-4", children: /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Placement follows Radix side/align props and flips when space runs out." }) })
416
- ] }),
729
+ render: () => /* @__PURE__ */ jsx(PopoverOverlaysAlignEndSample, {}),
417
730
  code: `import { Button } from '@open-mercato/ui/primitives/button'
418
731
  import {
419
732
  Popover,
@@ -434,15 +747,22 @@ import {
434
747
  };
435
748
  const tooltipEntry = {
436
749
  id: "tooltip",
750
+ figmaNodeId: "2604:269",
437
751
  title: "Tooltip",
438
752
  importPath: "@open-mercato/ui/primitives/tooltip",
439
753
  docsAnchor: "#tooltip--simpletooltip",
440
754
  variants: [
755
+ { id: "positions-sm-light", title: "8 positions / sm / light", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "sm", variant: "light" }), code: tooltipPlacementCode({ size: "sm", variant: "light" }) },
756
+ { id: "positions-sm-dark", title: "8 positions / sm / dark", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "sm", variant: "dark" }), code: tooltipPlacementCode({ size: "sm", variant: "dark" }) },
757
+ { id: "positions-default-light", title: "8 positions / default / light", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "default", variant: "light" }), code: tooltipPlacementCode({ size: "default", variant: "light" }) },
758
+ { id: "positions-default-dark", title: "8 positions / default / dark", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "default", variant: "dark" }), code: tooltipPlacementCode({ size: "default", variant: "dark" }) },
759
+ { id: "positions-lg-light", title: "8 positions / lg / light", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "lg", variant: "light" }), code: tooltipPlacementCode({ size: "lg", variant: "light" }) },
760
+ { id: "positions-lg-dark", title: "8 positions / lg / dark", render: () => /* @__PURE__ */ jsx(TooltipPlacements, { size: "lg", variant: "dark" }), code: tooltipPlacementCode({ size: "lg", variant: "dark" }) },
441
761
  {
442
762
  id: "default",
443
763
  title: "default (dark)",
444
- render: () => /* @__PURE__ */ jsx(SimpleTooltip, { content: "Duplicates this view with all filters", children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Hover me" }) }),
445
- code: `import { SimpleTooltip } from '@open-mercato/ui/primitives/tooltip'
764
+ render: () => /* @__PURE__ */ jsx(TooltipOverlaysDefaultSample, {}),
765
+ code: `import { SimpleTooltip, TooltipCard } from '@open-mercato/ui/primitives/tooltip'
446
766
  import { Button } from '@open-mercato/ui/primitives/button'
447
767
 
448
768
  <SimpleTooltip content="Duplicates this view with all filters">
@@ -452,12 +772,9 @@ import { Button } from '@open-mercato/ui/primitives/button'
452
772
  {
453
773
  id: "light",
454
774
  title: "light",
455
- render: () => /* @__PURE__ */ jsx(SimpleTooltip, { content: "Help text on a light surface", variant: "light", children: /* @__PURE__ */ jsxs(Button, { variant: "outline", children: [
456
- /* @__PURE__ */ jsx(Info, {}),
457
- "Light variant"
458
- ] }) }),
775
+ render: () => /* @__PURE__ */ jsx(TooltipOverlaysLightSample, {}),
459
776
  code: `import { Info } from 'lucide-react'
460
- import { SimpleTooltip } from '@open-mercato/ui/primitives/tooltip'
777
+ import { SimpleTooltip, TooltipCard } from '@open-mercato/ui/primitives/tooltip'
461
778
  import { Button } from '@open-mercato/ui/primitives/button'
462
779
 
463
780
  <SimpleTooltip content="Help text on a light surface" variant="light">
@@ -467,12 +784,8 @@ import { Button } from '@open-mercato/ui/primitives/button'
467
784
  {
468
785
  id: "sizes",
469
786
  title: "Sizes",
470
- render: () => /* @__PURE__ */ jsxs(Fragment, { children: [
471
- /* @__PURE__ */ jsx(SimpleTooltip, { content: "Small", size: "sm", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "sm" }) }),
472
- /* @__PURE__ */ jsx(SimpleTooltip, { content: "Default", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "default" }) }),
473
- /* @__PURE__ */ jsx(SimpleTooltip, { content: "Large tooltip for longer helper copy", size: "lg", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "lg" }) })
474
- ] }),
475
- code: `import { SimpleTooltip } from '@open-mercato/ui/primitives/tooltip'
787
+ render: () => /* @__PURE__ */ jsx(TooltipOverlaysSizesSample, {}),
788
+ code: `import { SimpleTooltip, TooltipCard } from '@open-mercato/ui/primitives/tooltip'
476
789
  import { Button } from '@open-mercato/ui/primitives/button'
477
790
 
478
791
  <SimpleTooltip content="Small" size="sm">
@@ -489,77 +802,20 @@ import { Button } from '@open-mercato/ui/primitives/button'
489
802
  };
490
803
  const commandMenuEntry = {
491
804
  id: "command-menu",
805
+ figmaNodeId: "4171:15653",
492
806
  title: "CommandMenu",
493
807
  importPath: "@open-mercato/ui/primitives/command-menu",
494
808
  docsAnchor: "#commandmenu",
809
+ usage: { do: [
810
+ "The source Small (48) label is inaccurate: all six small rows measure 40 px. The larger rows measure 64 px. Numeric sizes opt into these measurements; unsized rows keep the legacy layout.",
811
+ "Basic, Avatar, Left Icon, Brand, Company and Country use real source assets or production primitives. Keyboard selection updates the result and closes the palette.",
812
+ "Search and clear stay synchronized. Group captions and actions flow together without overlapping long headings; the footer includes real keyboard hints and a local help action."
813
+ ] },
495
814
  variants: [
496
- {
497
- id: "default",
498
- title: "default",
499
- render: () => /* @__PURE__ */ jsxs(CommandMenu, { children: [
500
- /* @__PURE__ */ jsx(CommandMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Open command menu" }) }),
501
- /* @__PURE__ */ jsxs(CommandMenuContent, { children: [
502
- /* @__PURE__ */ jsx(CommandMenuInput, { placeholder: "Search actions..." }),
503
- /* @__PURE__ */ jsxs(CommandMenuList, { children: [
504
- /* @__PURE__ */ jsx(CommandMenuEmpty, { children: "No results." }),
505
- /* @__PURE__ */ jsxs(CommandMenuGroup, { heading: "Actions", children: [
506
- /* @__PURE__ */ jsx(CommandMenuItem, { leading: /* @__PURE__ */ jsx(FilePlus2, { className: "size-4 text-muted-foreground" }), children: "Create record" }),
507
- /* @__PURE__ */ jsx(CommandMenuItem, { leading: /* @__PURE__ */ jsx(Users, { className: "size-4 text-muted-foreground" }), description: "Invite teammates to this workspace", children: "Manage members" })
508
- ] }),
509
- /* @__PURE__ */ jsx(CommandMenuSeparator, {}),
510
- /* @__PURE__ */ jsxs(CommandMenuGroup, { heading: "Navigate", children: [
511
- /* @__PURE__ */ jsx(CommandMenuItem, { leading: /* @__PURE__ */ jsx(LayoutDashboard, { className: "size-4 text-muted-foreground" }), children: "Go to dashboard" }),
512
- /* @__PURE__ */ jsx(CommandMenuItem, { leading: /* @__PURE__ */ jsx(Settings, { className: "size-4 text-muted-foreground" }), children: "Open settings" })
513
- ] })
514
- ] }),
515
- /* @__PURE__ */ jsx(CommandMenuFooter, {})
516
- ] })
517
- ] }),
518
- code: `import { FilePlus2, LayoutDashboard, Settings, Users } from 'lucide-react'
519
- import { Button } from '@open-mercato/ui/primitives/button'
520
- import {
521
- CommandMenu,
522
- CommandMenuTrigger,
523
- CommandMenuContent,
524
- CommandMenuInput,
525
- CommandMenuList,
526
- CommandMenuEmpty,
527
- CommandMenuGroup,
528
- CommandMenuItem,
529
- CommandMenuSeparator,
530
- CommandMenuFooter,
531
- } from '@open-mercato/ui/primitives/command-menu'
532
-
533
- <CommandMenu>
534
- <CommandMenuTrigger asChild>
535
- <Button variant="outline">Open command menu</Button>
536
- </CommandMenuTrigger>
537
- <CommandMenuContent>
538
- <CommandMenuInput placeholder="Search actions..." />
539
- <CommandMenuList>
540
- <CommandMenuEmpty>No results.</CommandMenuEmpty>
541
- <CommandMenuGroup heading="Actions">
542
- <CommandMenuItem leading={<FilePlus2 className="size-4" />}>
543
- Create record
544
- </CommandMenuItem>
545
- <CommandMenuItem leading={<Users className="size-4" />} description="Invite teammates to this workspace">
546
- Manage members
547
- </CommandMenuItem>
548
- </CommandMenuGroup>
549
- <CommandMenuSeparator />
550
- <CommandMenuGroup heading="Navigate">
551
- <CommandMenuItem leading={<LayoutDashboard className="size-4" />}>
552
- Go to dashboard
553
- </CommandMenuItem>
554
- <CommandMenuItem leading={<Settings className="size-4" />}>
555
- Open settings
556
- </CommandMenuItem>
557
- </CommandMenuGroup>
558
- </CommandMenuList>
559
- <CommandMenuFooter />
560
- </CommandMenuContent>
561
- </CommandMenu>`
562
- }
815
+ { id: "default", title: "All six types / 40 px", render: () => /* @__PURE__ */ jsx(CommandSourceExample, {}), code: commandSourceCode + "\n<CommandSourceExample size={40} />" },
816
+ { id: "medium", title: "All six types / 64 px", render: () => /* @__PURE__ */ jsx(CommandSourceExample, { size: 64 }), code: commandSourceCode + "\n<CommandSourceExample size={64} />" },
817
+ { id: "groups", title: "Captions / action / separator / footer", render: () => /* @__PURE__ */ jsx(CommandSourceExample, { withGroups: true }), code: commandSourceCode + "\n<CommandSourceExample withGroups />" },
818
+ { id: "empty", title: "No results / clear to recover", render: () => /* @__PURE__ */ jsx(CommandSourceExample, { empty: true }), code: commandSourceCode + "\n<CommandSourceExample empty />" }
563
819
  ]
564
820
  };
565
821
  const entries = [
@@ -570,6 +826,158 @@ const entries = [
570
826
  tooltipEntry,
571
827
  commandMenuEntry
572
828
  ];
829
+ function DialogOverlaysDefaultSample() {
830
+ const t = useT();
831
+ return /* @__PURE__ */ jsxs(Dialog, { children: [
832
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.openDialog") }) }),
833
+ /* @__PURE__ */ jsxs(DialogContent, { children: [
834
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
835
+ /* @__PURE__ */ jsx(DialogTitle, { children: t("design_system.gallery.sampleCopy.renameView") }),
836
+ /* @__PURE__ */ jsx(DialogDescription, { children: t("design_system.gallery.sampleCopy.theNewNameIsVisibleToEveryoneInThisWorkspace") })
837
+ ] }),
838
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.pressEscapeOrClickOutsideToDismiss") }),
839
+ /* @__PURE__ */ jsxs(DialogFooter, { children: [
840
+ /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") }) }),
841
+ /* @__PURE__ */ jsx(Button, { children: t("design_system.gallery.samples.primaryAction") })
842
+ ] })
843
+ ] })
844
+ ] });
845
+ }
846
+ function DialogOverlaysStatusLeadingSample() {
847
+ const t = useT();
848
+ return /* @__PURE__ */ jsxs(Dialog, { children: [
849
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "destructive-outline", children: t("design_system.gallery.sampleCopy.deleteRecord") }) }),
850
+ /* @__PURE__ */ jsxs(DialogContent, { size: "sm", children: [
851
+ /* @__PURE__ */ jsxs(DialogHeader, { leading: /* @__PURE__ */ jsx(TriangleAlert, { className: "size-4" }), leadingTone: "error", children: [
852
+ /* @__PURE__ */ jsx(DialogTitle, { children: t("design_system.gallery.sampleCopy.deleteThisRecord") }),
853
+ /* @__PURE__ */ jsx(DialogDescription, { children: t("design_system.gallery.sampleCopy.thisRemovesTheRecordFromEveryLinkedView") })
854
+ ] }),
855
+ /* @__PURE__ */ jsxs(DialogFooter, { layout: "equal", children: [
856
+ /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") }) }),
857
+ /* @__PURE__ */ jsx(Button, { variant: "destructive-solid", children: t("design_system.gallery.sampleCopy.delete") })
858
+ ] })
859
+ ] })
860
+ ] });
861
+ }
862
+ function DrawerOverlaysDefaultSample() {
863
+ const t = useT();
864
+ return /* @__PURE__ */ jsxs(Drawer, { children: [
865
+ /* @__PURE__ */ jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.openDrawer") }) }),
866
+ /* @__PURE__ */ jsxs(DrawerContent, { children: [
867
+ /* @__PURE__ */ jsxs(DrawerHeader, { children: [
868
+ /* @__PURE__ */ jsx(DrawerTitle, { children: t("design_system.gallery.sampleCopy.editPerson") }),
869
+ /* @__PURE__ */ jsx(DrawerDescription, { children: t("design_system.gallery.sampleCopy.updateTheContactDetailsBelow") })
870
+ ] }),
871
+ /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsxs("div", { className: "divide-y divide-input text-sm", children: [
872
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
873
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("design_system.gallery.samples.textInput.basic") }),
874
+ /* @__PURE__ */ jsx("span", { className: "text-foreground", children: "Anna Kowalska" })
875
+ ] }),
876
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
877
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("design_system.gallery.sampleCopy.role") }),
878
+ /* @__PURE__ */ jsx("span", { className: "text-foreground", children: t("design_system.gallery.samples.table.description") })
879
+ ] }),
880
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-3", children: [
881
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("design_system.gallery.samples.hr.team") }),
882
+ /* @__PURE__ */ jsx("span", { className: "text-foreground", children: t("design_system.gallery.sampleCopy.salesEU") })
883
+ ] })
884
+ ] }) }),
885
+ /* @__PURE__ */ jsxs(DrawerFooter, { layout: "equal", children: [
886
+ /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") }) }),
887
+ /* @__PURE__ */ jsx(Button, { children: t("design_system.gallery.samples.primaryAction") })
888
+ ] })
889
+ ] })
890
+ ] });
891
+ }
892
+ function DrawerOverlaysLeadingIconSample() {
893
+ const t = useT();
894
+ return /* @__PURE__ */ jsxs(Drawer, { children: [
895
+ /* @__PURE__ */ jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.openProfileDrawer") }) }),
896
+ /* @__PURE__ */ jsxs(DrawerContent, { children: [
897
+ /* @__PURE__ */ jsxs(DrawerHeader, { leading: /* @__PURE__ */ jsx(UserRound, { className: "size-4" }), children: [
898
+ /* @__PURE__ */ jsx(DrawerTitle, { children: t("design_system.gallery.sampleCopy.profileDetails") }),
899
+ /* @__PURE__ */ jsx(DrawerDescription, { children: t("design_system.gallery.sampleCopy.readonlySummaryOfThisAccount") })
900
+ ] }),
901
+ /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
902
+ t("design_system.gallery.sampleCopy.theHeaderBadgeTakesAnyLucideIconViaThe"),
903
+ " ",
904
+ /* @__PURE__ */ jsx("code", { children: "leading" }),
905
+ " ",
906
+ t("design_system.gallery.sampleCopy.prop")
907
+ ] }) }),
908
+ /* @__PURE__ */ jsxs(DrawerFooter, { layout: "equal", children: [
909
+ /* @__PURE__ */ jsx(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.cancel") }) }),
910
+ /* @__PURE__ */ jsx(Button, { children: t("design_system.gallery.samples.overlay.continue") })
911
+ ] })
912
+ ] })
913
+ ] });
914
+ }
915
+ function SheetOverlaysRightSample() {
916
+ const t = useT();
917
+ return /* @__PURE__ */ jsxs(Sheet, { children: [
918
+ /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.openSheet") }) }),
919
+ /* @__PURE__ */ jsxs(SheetContent, { children: [
920
+ /* @__PURE__ */ jsxs(SheetHeader, { children: [
921
+ /* @__PURE__ */ jsx(SheetTitle, { children: t("design_system.families.filters") }),
922
+ /* @__PURE__ */ jsx(SheetDescription, { children: t("design_system.gallery.sampleCopy.narrowDownTheCurrentList") })
923
+ ] }),
924
+ /* @__PURE__ */ jsx("div", { className: "flex-1 px-4 text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.sheetBodyContentScrollsIndependentlyOfTheHeaderAndFooter") }),
925
+ /* @__PURE__ */ jsxs(SheetFooter, { children: [
926
+ /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.reset") }),
927
+ /* @__PURE__ */ jsx(Button, { children: t("design_system.gallery.examples.sourceFilters.apply") })
928
+ ] })
929
+ ] })
930
+ ] });
931
+ }
932
+ function SheetOverlaysLeftSample() {
933
+ const t = useT();
934
+ return /* @__PURE__ */ jsxs(Sheet, { children: [
935
+ /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.openLeftSheet") }) }),
936
+ /* @__PURE__ */ jsxs(SheetContent, { side: "left", children: [
937
+ /* @__PURE__ */ jsxs(SheetHeader, { children: [
938
+ /* @__PURE__ */ jsx(SheetTitle, { children: t("design_system.families.navigation") }),
939
+ /* @__PURE__ */ jsx(SheetDescription, { children: t("design_system.gallery.sampleCopy.slidesInFromTheLeftEdge") })
940
+ ] }),
941
+ /* @__PURE__ */ jsx("div", { className: "flex-1 px-4 text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.useTheLeftSideForMobileMenusAndSecondaryNavigation") })
942
+ ] })
943
+ ] });
944
+ }
945
+ function PopoverOverlaysDefaultSample() {
946
+ const t = useT();
947
+ return /* @__PURE__ */ jsxs(Popover, { children: [
948
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.samples.overlay.openPopover") }) }),
949
+ /* @__PURE__ */ jsx(PopoverContent, { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
950
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: t("design_system.gallery.sampleCopy.displayDensity") }),
951
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.anchoredToItsTriggerEscapeAndOutsideclickDismissIt") })
952
+ ] }) })
953
+ ] });
954
+ }
955
+ function PopoverOverlaysAlignEndSample() {
956
+ const t = useT();
957
+ return /* @__PURE__ */ jsxs(Popover, { children: [
958
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.openAbove") }) }),
959
+ /* @__PURE__ */ jsx(PopoverContent, { side: "top", align: "end", className: "p-4", children: /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: t("design_system.gallery.sampleCopy.placementFollowsRadixSidealignPropsAndFlipsWhenSpaceRuns") }) })
960
+ ] });
961
+ }
962
+ function TooltipOverlaysDefaultSample() {
963
+ const t = useT();
964
+ return /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.sampleCopy.duplicatesThisViewWithAllFilters"), children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: t("design_system.gallery.sampleCopy.hoverMe") }) });
965
+ }
966
+ function TooltipOverlaysLightSample() {
967
+ const t = useT();
968
+ return /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.sampleCopy.helpTextOnALightSurface"), variant: "light", children: /* @__PURE__ */ jsxs(Button, { variant: "outline", children: [
969
+ /* @__PURE__ */ jsx(Info, {}),
970
+ t("design_system.gallery.sampleCopy.lightVariant")
971
+ ] }) });
972
+ }
973
+ function TooltipOverlaysSizesSample() {
974
+ const t = useT();
975
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
976
+ /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.sampleCopy.small"), size: "sm", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "sm" }) }),
977
+ /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.examples.aiProduct.default"), children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "default" }) }),
978
+ /* @__PURE__ */ jsx(SimpleTooltip, { content: t("design_system.gallery.sampleCopy.largeTooltipForLongerHelperCopy"), size: "lg", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", children: "lg" }) })
979
+ ] });
980
+ }
573
981
  export {
574
982
  entries
575
983
  };