@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
@@ -1,20 +1,15 @@
1
+ import { useT } from '@open-mercato/shared/lib/i18n/context'
1
2
  import * as React from 'react'
3
+ import { CryptocurrencyDemo } from '../demos/cryptocurrency'
2
4
  import { Archive, Copy, Download, Lock, Plus, Trash2, UserRound } from 'lucide-react'
3
5
  import { Badge } from '@open-mercato/ui/primitives/badge'
4
6
  import { Button } from '@open-mercato/ui/primitives/button'
5
7
  import { Page, PageBody, PageHeader } from '@open-mercato/ui/backend/Page'
6
8
  import { CollapsibleSection, SectionHeader } from '@open-mercato/ui/backend/SectionHeader'
7
- import {
8
- SectionNav,
9
- SectionPage,
10
- type SectionNavGroup,
11
- } from '@open-mercato/ui/backend/section-page'
12
- import {
13
- ActionsDropdown,
14
- FormFooter,
15
- FormHeader,
16
- type ActionItem,
17
- } from '@open-mercato/ui/backend/forms'
9
+ import { SectionNav, SectionPage, type SectionNavGroup } from '@open-mercato/ui/backend/section-page'
10
+ import { ActionsDropdown, FormFooter, FormHeader, type ActionItem } from '@open-mercato/ui/backend/forms'
11
+ import { PageHeaderExample } from '../demos/shell'
12
+ import { shellExampleCode } from '../demos/shell-code.generated'
18
13
  import type { GalleryEntry } from '../types'
19
14
 
20
15
  // Component titles and variant names are proper nouns from the codebase and
@@ -24,27 +19,221 @@ import type { GalleryEntry } from '../types'
24
19
 
25
20
  // The demos use `#`-anchors as hrefs so clicking inside the gallery never
26
21
  // navigates away, and every callback is a no-op.
27
-
28
- const demoSections: SectionNavGroup[] = [
22
+ function PageEntryBasicPreview() {
23
+ const t = useT()
24
+ return (
25
+ <div className="w-full">
26
+ <Page>
27
+ <PageHeader
28
+ title={t('design_system.gallery.samples.content.currencies')}
29
+ description={t('design_system.gallery.samples.content.exchangeRatesRefreshNightly')}
30
+ />
31
+ <PageBody>
32
+ <div className="rounded-lg border border-dashed p-6 text-sm text-muted-foreground">
33
+ {t('design_system.gallery.samples.content.pageContent')}
34
+ </div>
35
+ </PageBody>
36
+ </Page>
37
+ </div>
38
+ )
39
+ }
40
+ function PageEntryWithActionsPreview() {
41
+ const t = useT()
42
+ return (
43
+ <div className="w-full">
44
+ <Page>
45
+ <PageHeader
46
+ title={t('design_system.gallery.samples.content.currencies')}
47
+ description={t('design_system.gallery.samples.content.exchangeRatesRefreshNightly')}
48
+ actions={
49
+ <>
50
+ <Button variant="outline" size="sm">
51
+ {t('design_system.gallery.samples.content.import')}
52
+ </Button>
53
+ <Button size="sm">
54
+ <Plus className="size-4" />
55
+ {t('design_system.gallery.samples.content.addCurrency')}
56
+ </Button>
57
+ </>
58
+ }
59
+ />
60
+ <PageBody>
61
+ <div className="rounded-lg border border-dashed p-6 text-sm text-muted-foreground">
62
+ {t('design_system.gallery.samples.content.pageContent')}
63
+ </div>
64
+ </PageBody>
65
+ </Page>
66
+ </div>
67
+ )
68
+ }
69
+ function SectionHeaderEntryCountAndActionPreview() {
70
+ const t = useT()
71
+ return (
72
+ <div className="w-full max-w-md">
73
+ <SectionHeader
74
+ title={t('design_system.gallery.samples.content.addresses')}
75
+ count={3}
76
+ action={
77
+ <Button variant="ghost" size="sm">
78
+ <Plus className="size-4" />
79
+ {t('design_system.gallery.samples.content.add')}
80
+ </Button>
81
+ }
82
+ />
83
+ </div>
84
+ )
85
+ }
86
+ function SectionHeaderEntryCollapsiblePreview() {
87
+ const t = useT()
88
+ return (
89
+ <div className="w-full max-w-md">
90
+ <CollapsibleSection title={t('design_system.gallery.samples.content.billingDetails')} count={2}>
91
+ <div className="rounded-lg border border-dashed p-4 text-sm text-muted-foreground">
92
+ {t('design_system.gallery.samples.content.sectionContent')}
93
+ </div>
94
+ </CollapsibleSection>
95
+ </div>
96
+ )
97
+ }
98
+ function FormHeaderEntryEditModePreview() {
99
+ const t = useT()
100
+ return (
101
+ <div className="w-full">
102
+ <FormHeader
103
+ backHref="#form-header"
104
+ backLabel={t('design_system.gallery.samples.content.back')}
105
+ title={t('design_system.gallery.samples.content.editProduct')}
106
+ actions={{
107
+ cancelHref: '#form-header',
108
+ cancelLabel: 'Cancel',
109
+ submit: {
110
+ label: t('design_system.gallery.samples.content.save'),
111
+ pendingLabel: 'Saving…',
112
+ },
113
+ }}
114
+ />
115
+ </div>
116
+ )
117
+ }
118
+ function FormHeaderEntryDetailModePreview() {
119
+ const t = useT()
120
+ return (
121
+ <div className="w-full">
122
+ <FormHeader
123
+ mode="detail"
124
+ backHref="#form-header"
125
+ entityTypeLabel={t('design_system.gallery.samples.content.company')}
126
+ title="Acme Logistics"
127
+ subtitle={t('design_system.gallery.samples.content.created12Mar2026')}
128
+ statusBadge={<Badge variant="muted">{t('design_system.gallery.samples.content.active')}</Badge>}
129
+ menuActions={[
130
+ {
131
+ id: 'duplicate',
132
+ label: t('design_system.gallery.samples.content.duplicate'),
133
+ icon: Copy,
134
+ onSelect: () => {},
135
+ },
136
+ {
137
+ id: 'archive',
138
+ label: t('design_system.gallery.samples.content.archive'),
139
+ icon: Archive,
140
+ onSelect: () => {},
141
+ },
142
+ ]}
143
+ onDelete={() => {}}
144
+ deleteLabel={t('design_system.gallery.samples.content.delete')}
145
+ />
146
+ </div>
147
+ )
148
+ }
149
+ function FormFooterEntryDefaultPreview() {
150
+ const t = useT()
151
+ return (
152
+ <div className="w-full">
153
+ <FormFooter
154
+ actions={{
155
+ cancelHref: '#form-footer',
156
+ cancelLabel: 'Cancel',
157
+ submit: {
158
+ label: t('design_system.gallery.samples.content.saveChanges'),
159
+ pendingLabel: 'Saving…',
160
+ },
161
+ }}
162
+ />
163
+ </div>
164
+ )
165
+ }
166
+ function FormFooterEntryEmbeddedWithDeletePreview() {
167
+ const t = useT()
168
+ return (
169
+ <div className="w-full">
170
+ <FormFooter
171
+ embedded
172
+ actions={{
173
+ showDelete: true,
174
+ onDelete: () => {},
175
+ deleteLabel: t('design_system.gallery.samples.content.delete'),
176
+ cancelHref: '#form-footer',
177
+ cancelLabel: 'Cancel',
178
+ submit: {
179
+ label: t('design_system.gallery.samples.content.save'),
180
+ },
181
+ }}
182
+ />
183
+ </div>
184
+ )
185
+ }
186
+ function ActionsDropdownEntryLabelTriggerPreview() {
187
+ const t = useT()
188
+ return <ActionsDropdown items={demoActions(t)} />
189
+ }
190
+ function ActionsDropdownEntryIconTriggerPreview() {
191
+ const t = useT()
192
+ return (
193
+ <ActionsDropdown
194
+ items={demoActions(t)}
195
+ triggerMode="icon"
196
+ ariaLabel={t('design_system.gallery.samples.content.moreActions')}
197
+ />
198
+ )
199
+ }
200
+ const demoSections = (t: ReturnType<typeof useT>): SectionNavGroup[] => [
29
201
  {
30
202
  id: 'account',
31
- label: 'Account',
203
+ label: t('design_system.gallery.samples.content.account'),
32
204
  items: [
33
- { id: 'profile', label: 'Profile', href: '#profile', icon: <UserRound className="size-4" /> },
34
- { id: 'security', label: 'Security', href: '#security', icon: <Lock className="size-4" /> },
205
+ {
206
+ id: 'profile',
207
+ label: t('design_system.gallery.samples.content.profile'),
208
+ href: '#profile',
209
+ icon: <UserRound className="size-4" />,
210
+ },
211
+ {
212
+ id: 'security',
213
+ label: t('design_system.gallery.samples.content.security'),
214
+ href: '#security',
215
+ icon: <Lock className="size-4" />,
216
+ },
35
217
  ],
36
218
  },
37
219
  ]
38
-
39
- // SectionPage stretches to the viewport by design — the miniature demo clips
40
- // it inside a fixed-height frame so the two-item nav plus content stay small.
41
220
  function SectionPageMiniDemo() {
221
+ const t = useT()
42
222
  return (
43
- <div className="h-80 w-full overflow-hidden rounded-lg border bg-background">
44
- <SectionPage title="Settings" sections={demoSections} activePath="#profile">
223
+ <div
224
+ data-example="section-page"
225
+ className="w-full rounded-lg border border-border bg-background [&>div]:h-auto [&>div]:min-h-0 [&>div]:flex-col sm:[&>div]:flex-row [&>div>aside]:w-auto [&_main]:min-w-0 [&_main]:overflow-visible"
226
+ >
227
+ <SectionPage
228
+ title={t('design_system.gallery.samples.content.settings')}
229
+ sections={demoSections(t)}
230
+ activePath="#profile"
231
+ >
45
232
  <div className="space-y-2">
46
- <h2 className="text-sm font-semibold">Profile</h2>
47
- <p className="text-sm text-muted-foreground">Section content renders here.</p>
233
+ <h2 className="text-sm font-semibold">{t('design_system.gallery.samples.content.profile')}</h2>
234
+ <p className="text-sm text-muted-foreground">
235
+ {t('design_system.gallery.samples.content.sectionContentRendersHere')}
236
+ </p>
48
237
  </div>
49
238
  </SectionPage>
50
239
  </div>
@@ -53,12 +242,13 @@ function SectionPageMiniDemo() {
53
242
 
54
243
  // SectionNav is controlled — the demo owns the collapsed state.
55
244
  function SectionNavDemo() {
245
+ const t = useT()
56
246
  const [collapsed, setCollapsed] = React.useState(false)
57
247
  return (
58
248
  <div className="w-64 rounded-lg border bg-background px-3 py-4">
59
249
  <SectionNav
60
- title="Settings"
61
- sections={demoSections}
250
+ title={t('design_system.gallery.samples.content.settings')}
251
+ sections={demoSections(t)}
62
252
  activePath="#profile"
63
253
  collapsed={collapsed}
64
254
  onToggleCollapse={() => setCollapsed((value) => !value)}
@@ -66,33 +256,36 @@ function SectionNavDemo() {
66
256
  </div>
67
257
  )
68
258
  }
69
-
70
- const demoActions: ActionItem[] = [
71
- { id: 'duplicate', label: 'Duplicate record', icon: Copy, onSelect: () => {} },
72
- { id: 'export', label: 'Export as CSV', icon: Download, onSelect: () => {} },
73
- { id: 'delete', label: 'Delete record', icon: Trash2, onSelect: () => {} },
259
+ const demoActions = (t: ReturnType<typeof useT>): ActionItem[] => [
260
+ {
261
+ id: 'duplicate',
262
+ label: t('design_system.gallery.samples.content.duplicateRecord'),
263
+ icon: Copy,
264
+ onSelect: () => {},
265
+ },
266
+ {
267
+ id: 'export',
268
+ label: t('design_system.gallery.samples.content.exportAsCsv'),
269
+ icon: Download,
270
+ onSelect: () => {},
271
+ },
272
+ {
273
+ id: 'delete',
274
+ label: t('design_system.gallery.samples.content.deleteRecord'),
275
+ icon: Trash2,
276
+ onSelect: () => {},
277
+ },
74
278
  ]
75
-
76
279
  const pageEntry: GalleryEntry = {
77
280
  id: 'page',
281
+ figmaNodeId: '3829:27898',
78
282
  title: 'Page',
79
283
  importPath: '@open-mercato/ui/backend/Page',
80
284
  variants: [
81
285
  {
82
286
  id: 'basic',
83
287
  title: 'Page + PageHeader + PageBody',
84
- render: () => (
85
- <div className="w-full">
86
- <Page>
87
- <PageHeader title="Currencies" description="Exchange rates refresh nightly." />
88
- <PageBody>
89
- <div className="rounded-lg border border-dashed p-6 text-sm text-muted-foreground">
90
- Page content
91
- </div>
92
- </PageBody>
93
- </Page>
94
- </div>
95
- ),
288
+ render: () => <PageEntryBasicPreview />,
96
289
  code: `import { Page, PageBody, PageHeader } from '@open-mercato/ui/backend/Page'
97
290
 
98
291
  <Page>
@@ -103,31 +296,7 @@ const pageEntry: GalleryEntry = {
103
296
  {
104
297
  id: 'with-actions',
105
298
  title: 'Header actions',
106
- render: () => (
107
- <div className="w-full">
108
- <Page>
109
- <PageHeader
110
- title="Currencies"
111
- description="Exchange rates refresh nightly."
112
- actions={
113
- <>
114
- <Button variant="outline" size="sm">
115
- Import
116
- </Button>
117
- <Button size="sm">
118
- <Plus className="size-4" /> Add currency
119
- </Button>
120
- </>
121
- }
122
- />
123
- <PageBody>
124
- <div className="rounded-lg border border-dashed p-6 text-sm text-muted-foreground">
125
- Page content
126
- </div>
127
- </PageBody>
128
- </Page>
129
- </div>
130
- ),
299
+ render: () => <PageEntryWithActionsPreview />,
131
300
  code: `import { Plus } from 'lucide-react'
132
301
  import { Page, PageBody, PageHeader } from '@open-mercato/ui/backend/Page'
133
302
  import { Button } from '@open-mercato/ui/primitives/button'
@@ -145,9 +314,80 @@ import { Button } from '@open-mercato/ui/primitives/button'
145
314
  <PageBody>{/* … */}</PageBody>
146
315
  </Page>`,
147
316
  },
317
+ {
318
+ id: 'source-page-basic',
319
+ title: 'Page header / basic',
320
+ render: () => <PageHeaderExample appearance="page" type="basic" />,
321
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="basic" />'),
322
+ },
323
+ {
324
+ id: 'source-page-avatar',
325
+ title: 'Page header / avatar',
326
+ render: () => <PageHeaderExample appearance="page" type="avatar" />,
327
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="avatar" />'),
328
+ },
329
+ {
330
+ id: 'source-page-icon',
331
+ title: 'Page header / icon',
332
+ render: () => <PageHeaderExample appearance="page" type="icon" />,
333
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="icon" />'),
334
+ },
335
+ {
336
+ id: 'source-page-brand',
337
+ title: 'Page header / brand',
338
+ render: () => <PageHeaderExample appearance="page" type="brand" />,
339
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="brand" />'),
340
+ },
341
+ {
342
+ id: 'source-page-company',
343
+ title: 'Page header / company',
344
+ render: () => <PageHeaderExample appearance="page" type="company" />,
345
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="company" />'),
346
+ },
347
+ {
348
+ id: 'source-section-basic',
349
+ title: 'Section header / basic',
350
+ render: () => <PageHeaderExample appearance="section" type="basic" />,
351
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="basic" />'),
352
+ },
353
+ {
354
+ id: 'source-section-avatar',
355
+ title: 'Section header / avatar',
356
+ render: () => <PageHeaderExample appearance="section" type="avatar" />,
357
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="avatar" />'),
358
+ },
359
+ {
360
+ id: 'source-section-icon',
361
+ title: 'Section header / icon',
362
+ render: () => <PageHeaderExample appearance="section" type="icon" />,
363
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="icon" />'),
364
+ },
365
+ {
366
+ id: 'source-section-brand',
367
+ title: 'Section header / brand',
368
+ render: () => <PageHeaderExample appearance="section" type="brand" />,
369
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="brand" />'),
370
+ },
371
+ {
372
+ id: 'source-section-company',
373
+ title: 'Section header / company',
374
+ render: () => <PageHeaderExample appearance="section" type="company" />,
375
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="company" />'),
376
+ },
377
+ {
378
+ id: 'source-page-options',
379
+ title: 'Page header / optional content',
380
+ render: () => <PageHeaderExample appearance="page" type="company" configurable />,
381
+ code: shellExampleCode('<PageHeaderExample appearance="page" type="company" configurable />'),
382
+ },
383
+ {
384
+ id: 'source-section-options',
385
+ title: 'Section header / optional content',
386
+ render: () => <PageHeaderExample appearance="section" type="company" configurable />,
387
+ code: shellExampleCode('<PageHeaderExample appearance="section" type="company" configurable />'),
388
+ },
148
389
  ],
149
390
  }
150
-
151
391
  const sectionHeaderEntry: GalleryEntry = {
152
392
  id: 'section-header',
153
393
  title: 'SectionHeader',
@@ -156,19 +396,7 @@ const sectionHeaderEntry: GalleryEntry = {
156
396
  {
157
397
  id: 'count-and-action',
158
398
  title: 'With count and action',
159
- render: () => (
160
- <div className="w-full max-w-md">
161
- <SectionHeader
162
- title="Addresses"
163
- count={3}
164
- action={
165
- <Button variant="ghost" size="sm">
166
- <Plus className="size-4" /> Add
167
- </Button>
168
- }
169
- />
170
- </div>
171
- ),
399
+ render: () => <SectionHeaderEntryCountAndActionPreview />,
172
400
  code: `import { Plus } from 'lucide-react'
173
401
  import { SectionHeader } from '@open-mercato/ui/backend/SectionHeader'
174
402
  import { Button } from '@open-mercato/ui/primitives/button'
@@ -182,15 +410,7 @@ import { Button } from '@open-mercato/ui/primitives/button'
182
410
  {
183
411
  id: 'collapsible',
184
412
  title: 'CollapsibleSection',
185
- render: () => (
186
- <div className="w-full max-w-md">
187
- <CollapsibleSection title="Billing details" count={2}>
188
- <div className="rounded-lg border border-dashed p-4 text-sm text-muted-foreground">
189
- Section content
190
- </div>
191
- </CollapsibleSection>
192
- </div>
193
- ),
413
+ render: () => <SectionHeaderEntryCollapsiblePreview />,
194
414
  code: `import { CollapsibleSection } from '@open-mercato/ui/backend/SectionHeader'
195
415
 
196
416
  <CollapsibleSection title={t('design_system.gallery.samples.billingDetails')} count={2}>
@@ -199,7 +419,6 @@ import { Button } from '@open-mercato/ui/primitives/button'
199
419
  },
200
420
  ],
201
421
  }
202
-
203
422
  const sectionPageEntry: GalleryEntry = {
204
423
  id: 'section-page',
205
424
  title: 'SectionPage',
@@ -207,7 +426,7 @@ const sectionPageEntry: GalleryEntry = {
207
426
  variants: [
208
427
  {
209
428
  id: 'miniature',
210
- title: 'Two-item miniature (clipped frame)',
429
+ title: 'Two-item responsive section layout',
211
430
  render: () => <SectionPageMiniDemo />,
212
431
  code: `import { UserRound, Lock } from 'lucide-react'
213
432
  import { SectionPage, type SectionNavGroup } from '@open-mercato/ui/backend/section-page'
@@ -245,7 +464,6 @@ const [collapsed, setCollapsed] = React.useState(false)
245
464
  },
246
465
  ],
247
466
  }
248
-
249
467
  const formHeaderEntry: GalleryEntry = {
250
468
  id: 'form-header',
251
469
  title: 'FormHeader',
@@ -254,20 +472,7 @@ const formHeaderEntry: GalleryEntry = {
254
472
  {
255
473
  id: 'edit-mode',
256
474
  title: 'Edit mode',
257
- render: () => (
258
- <div className="w-full">
259
- <FormHeader
260
- backHref="#form-header"
261
- backLabel="Back"
262
- title="Edit product"
263
- actions={{
264
- cancelHref: '#form-header',
265
- cancelLabel: 'Cancel',
266
- submit: { label: 'Save', pendingLabel: 'Saving…' },
267
- }}
268
- />
269
- </div>
270
- ),
475
+ render: () => <FormHeaderEntryEditModePreview />,
271
476
  code: `import { FormHeader } from '@open-mercato/ui/backend/forms'
272
477
 
273
478
  <FormHeader
@@ -284,24 +489,7 @@ const formHeaderEntry: GalleryEntry = {
284
489
  {
285
490
  id: 'detail-mode',
286
491
  title: 'Detail mode',
287
- render: () => (
288
- <div className="w-full">
289
- <FormHeader
290
- mode="detail"
291
- backHref="#form-header"
292
- entityTypeLabel="Company"
293
- title="Acme Logistics"
294
- subtitle="Created 12 Mar 2026"
295
- statusBadge={<Badge variant="muted">Active</Badge>}
296
- menuActions={[
297
- { id: 'duplicate', label: 'Duplicate', icon: Copy, onSelect: () => {} },
298
- { id: 'archive', label: 'Archive', icon: Archive, onSelect: () => {} },
299
- ]}
300
- onDelete={() => {}}
301
- deleteLabel="Delete"
302
- />
303
- </div>
304
- ),
492
+ render: () => <FormHeaderEntryDetailModePreview />,
305
493
  code: `import { Archive, Copy } from 'lucide-react'
306
494
  import { FormHeader } from '@open-mercato/ui/backend/forms'
307
495
 
@@ -322,7 +510,6 @@ import { FormHeader } from '@open-mercato/ui/backend/forms'
322
510
  },
323
511
  ],
324
512
  }
325
-
326
513
  const formFooterEntry: GalleryEntry = {
327
514
  id: 'form-footer',
328
515
  title: 'FormFooter',
@@ -331,17 +518,7 @@ const formFooterEntry: GalleryEntry = {
331
518
  {
332
519
  id: 'default',
333
520
  title: 'default',
334
- render: () => (
335
- <div className="w-full">
336
- <FormFooter
337
- actions={{
338
- cancelHref: '#form-footer',
339
- cancelLabel: 'Cancel',
340
- submit: { label: 'Save changes', pendingLabel: 'Saving…' },
341
- }}
342
- />
343
- </div>
344
- ),
521
+ render: () => <FormFooterEntryDefaultPreview />,
345
522
  code: `import { FormFooter } from '@open-mercato/ui/backend/forms'
346
523
 
347
524
  <FormFooter
@@ -355,21 +532,7 @@ const formFooterEntry: GalleryEntry = {
355
532
  {
356
533
  id: 'embedded-with-delete',
357
534
  title: 'embedded, with delete',
358
- render: () => (
359
- <div className="w-full">
360
- <FormFooter
361
- embedded
362
- actions={{
363
- showDelete: true,
364
- onDelete: () => {},
365
- deleteLabel: 'Delete',
366
- cancelHref: '#form-footer',
367
- cancelLabel: 'Cancel',
368
- submit: { label: 'Save' },
369
- }}
370
- />
371
- </div>
372
- ),
535
+ render: () => <FormFooterEntryEmbeddedWithDeletePreview />,
373
536
  code: `import { FormFooter } from '@open-mercato/ui/backend/forms'
374
537
 
375
538
  <FormFooter
@@ -386,7 +549,6 @@ const formFooterEntry: GalleryEntry = {
386
549
  },
387
550
  ],
388
551
  }
389
-
390
552
  const actionsDropdownEntry: GalleryEntry = {
391
553
  id: 'actions-dropdown',
392
554
  title: 'ActionsDropdown',
@@ -395,7 +557,7 @@ const actionsDropdownEntry: GalleryEntry = {
395
557
  {
396
558
  id: 'label-trigger',
397
559
  title: 'Label trigger',
398
- render: () => <ActionsDropdown items={demoActions} />,
560
+ render: () => <ActionsDropdownEntryLabelTriggerPreview />,
399
561
  code: `import { Copy, Download, Trash2 } from 'lucide-react'
400
562
  import { ActionsDropdown, type ActionItem } from '@open-mercato/ui/backend/forms'
401
563
 
@@ -410,17 +572,889 @@ const items: ActionItem[] = [
410
572
  {
411
573
  id: 'icon-trigger',
412
574
  title: 'Icon trigger',
413
- render: () => (
414
- <ActionsDropdown items={demoActions} triggerMode="icon" ariaLabel="More actions" />
415
- ),
575
+ render: () => <ActionsDropdownEntryIconTriggerPreview />,
416
576
  code: `import { ActionsDropdown } from '@open-mercato/ui/backend/forms'
417
577
 
418
578
  <ActionsDropdown items={items} triggerMode="icon" ariaLabel={t('ui.actions.more')} />`,
419
579
  },
420
580
  ],
421
581
  }
582
+ // A composed pattern, not a primitive: the snippet points at the demo module instead of
583
+ // embedding its full source, and the import path says so honestly.
584
+ const cryptocurrencyPatternCode = (expression: string) => `import { CryptocurrencyDemo } from '@open-mercato/core/modules/design_system/gallery/demos/cryptocurrency'
585
+
586
+ ${expression}
587
+ `
422
588
 
589
+ const cryptocurrencyEntry: GalleryEntry = {
590
+ id: 'cryptocurrency',
591
+ title: 'Cryptocurrency',
592
+ descriptionKey: 'design_system.entries.cryptocurrency.description',
593
+ importPath: '@open-mercato/core/modules/design_system/gallery/demos/cryptocurrency',
594
+ figmaNodeId: '6696:81120',
595
+ variants: [
596
+ {
597
+ id: 'token-icon-btc',
598
+ title: 'token-icon-btc',
599
+ render: () => <CryptocurrencyDemo part="token-icon" kind="btc" />,
600
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="btc" />'),
601
+ },
602
+ {
603
+ id: 'token-icon-eth',
604
+ title: 'token-icon-eth',
605
+ render: () => <CryptocurrencyDemo part="token-icon" kind="eth" />,
606
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="eth" />'),
607
+ },
608
+ {
609
+ id: 'token-icon-xrp',
610
+ title: 'token-icon-xrp',
611
+ render: () => <CryptocurrencyDemo part="token-icon" kind="xrp" />,
612
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="xrp" />'),
613
+ },
614
+ {
615
+ id: 'token-icon-usdt',
616
+ title: 'token-icon-usdt',
617
+ render: () => <CryptocurrencyDemo part="token-icon" kind="usdt" />,
618
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="usdt" />'),
619
+ },
620
+ {
621
+ id: 'token-icon-bnb',
622
+ title: 'token-icon-bnb',
623
+ render: () => <CryptocurrencyDemo part="token-icon" kind="bnb" />,
624
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="bnb" />'),
625
+ },
626
+ {
627
+ id: 'token-icon-sol',
628
+ title: 'token-icon-sol',
629
+ render: () => <CryptocurrencyDemo part="token-icon" kind="sol" />,
630
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="sol" />'),
631
+ },
632
+ {
633
+ id: 'token-icon-usdc',
634
+ title: 'token-icon-usdc',
635
+ render: () => <CryptocurrencyDemo part="token-icon" kind="usdc" />,
636
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="usdc" />'),
637
+ },
638
+ {
639
+ id: 'token-icon-trx',
640
+ title: 'token-icon-trx',
641
+ render: () => <CryptocurrencyDemo part="token-icon" kind="trx" />,
642
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="trx" />'),
643
+ },
644
+ {
645
+ id: 'token-icon-ada',
646
+ title: 'token-icon-ada',
647
+ render: () => <CryptocurrencyDemo part="token-icon" kind="ada" />,
648
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="ada" />'),
649
+ },
650
+ {
651
+ id: 'token-icon-avax',
652
+ title: 'token-icon-avax',
653
+ render: () => <CryptocurrencyDemo part="token-icon" kind="avax" />,
654
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="avax" />'),
655
+ },
656
+ {
657
+ id: 'token-icon-hbar',
658
+ title: 'token-icon-hbar',
659
+ render: () => <CryptocurrencyDemo part="token-icon" kind="hbar" />,
660
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="hbar" />'),
661
+ },
662
+ {
663
+ id: 'token-icon-dot',
664
+ title: 'token-icon-dot',
665
+ render: () => <CryptocurrencyDemo part="token-icon" kind="dot" />,
666
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="token-icon" kind="dot" />'),
667
+ },
668
+ {
669
+ id: 'status-icon-success',
670
+ title: 'status-icon-success',
671
+ render: () => <CryptocurrencyDemo part="status-icon" kind="success" />,
672
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="status-icon" kind="success" />'),
673
+ },
674
+ {
675
+ id: 'status-icon-pending',
676
+ title: 'status-icon-pending',
677
+ render: () => <CryptocurrencyDemo part="status-icon" kind="pending" />,
678
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="status-icon" kind="pending" />'),
679
+ },
680
+ {
681
+ id: 'status-icon-warning',
682
+ title: 'status-icon-warning',
683
+ render: () => <CryptocurrencyDemo part="status-icon" kind="warning" />,
684
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="status-icon" kind="warning" />'),
685
+ },
686
+ {
687
+ id: 'status-icon-cancelled',
688
+ title: 'status-icon-cancelled',
689
+ render: () => <CryptocurrencyDemo part="status-icon" kind="cancelled" />,
690
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="status-icon" kind="cancelled" />'),
691
+ },
692
+ {
693
+ id: 'navigation-item-default-28',
694
+ title: 'navigation-item-default-28',
695
+ render: () => <CryptocurrencyDemo part="navigation-item" state="default" size={28} />,
696
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="default" size={28} />'),
697
+ },
698
+ {
699
+ id: 'navigation-item-hover-28',
700
+ title: 'navigation-item-hover-28',
701
+ render: () => <CryptocurrencyDemo part="navigation-item" state="hover" size={28} />,
702
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="hover" size={28} />'),
703
+ },
704
+ {
705
+ id: 'navigation-item-active-28',
706
+ title: 'navigation-item-active-28',
707
+ render: () => <CryptocurrencyDemo part="navigation-item" state="active" size={28} />,
708
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="active" size={28} />'),
709
+ },
710
+ {
711
+ id: 'navigation-item-default-24',
712
+ title: 'navigation-item-default-24',
713
+ render: () => <CryptocurrencyDemo part="navigation-item" state="default" size={24} />,
714
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="default" size={24} />'),
715
+ },
716
+ {
717
+ id: 'navigation-item-hover-24',
718
+ title: 'navigation-item-hover-24',
719
+ render: () => <CryptocurrencyDemo part="navigation-item" state="hover" size={24} />,
720
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="hover" size={24} />'),
721
+ },
722
+ {
723
+ id: 'navigation-item-active-24',
724
+ title: 'navigation-item-active-24',
725
+ render: () => <CryptocurrencyDemo part="navigation-item" state="active" size={24} />,
726
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-item" state="active" size={24} />'),
727
+ },
728
+ {
729
+ id: 'navigation-search-default',
730
+ title: 'navigation-search-default',
731
+ render: () => <CryptocurrencyDemo part="navigation-search" state="default" />,
732
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-search" state="default" />'),
733
+ },
734
+ {
735
+ id: 'navigation-search-hover',
736
+ title: 'navigation-search-hover',
737
+ render: () => <CryptocurrencyDemo part="navigation-search" state="hover" />,
738
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-search" state="hover" />'),
739
+ },
740
+ {
741
+ id: 'navigation-wallet-default',
742
+ title: 'navigation-wallet-default',
743
+ render: () => <CryptocurrencyDemo part="navigation-wallet" state="default" />,
744
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-wallet" state="default" />'),
745
+ },
746
+ {
747
+ id: 'navigation-wallet-hover',
748
+ title: 'navigation-wallet-hover',
749
+ render: () => <CryptocurrencyDemo part="navigation-wallet" state="hover" />,
750
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-wallet" state="hover" />'),
751
+ },
752
+ {
753
+ id: 'navigation-wallet-active',
754
+ title: 'navigation-wallet-active',
755
+ render: () => <CryptocurrencyDemo part="navigation-wallet" state="active" />,
756
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-wallet" state="active" />'),
757
+ },
758
+ {
759
+ id: 'navigation-action-favorite-default',
760
+ title: 'navigation-action-favorite-default',
761
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="favorite" state="default" />,
762
+ code: cryptocurrencyPatternCode(
763
+ '<CryptocurrencyDemo part="navigation-action" kind="favorite" state="default" />',
764
+ ),
765
+ },
766
+ {
767
+ id: 'navigation-action-notification-default',
768
+ title: 'navigation-action-notification-default',
769
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="notification" state="default" />,
770
+ code: cryptocurrencyPatternCode(
771
+ '<CryptocurrencyDemo part="navigation-action" kind="notification" state="default" />',
772
+ ),
773
+ },
774
+ {
775
+ id: 'navigation-action-hamburger-default',
776
+ title: 'navigation-action-hamburger-default',
777
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="hamburger" state="default" />,
778
+ code: cryptocurrencyPatternCode(
779
+ '<CryptocurrencyDemo part="navigation-action" kind="hamburger" state="default" />',
780
+ ),
781
+ },
782
+ {
783
+ id: 'navigation-action-favorite-hover',
784
+ title: 'navigation-action-favorite-hover',
785
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="favorite" state="hover" />,
786
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-action" kind="favorite" state="hover" />'),
787
+ },
788
+ {
789
+ id: 'navigation-action-notification-hover',
790
+ title: 'navigation-action-notification-hover',
791
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="notification" state="hover" />,
792
+ code: cryptocurrencyPatternCode(
793
+ '<CryptocurrencyDemo part="navigation-action" kind="notification" state="hover" />',
794
+ ),
795
+ },
796
+ {
797
+ id: 'navigation-action-hamburger-hover',
798
+ title: 'navigation-action-hamburger-hover',
799
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="hamburger" state="hover" />,
800
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-action" kind="hamburger" state="hover" />'),
801
+ },
802
+ {
803
+ id: 'navigation-action-favorite-active',
804
+ title: 'navigation-action-favorite-active',
805
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="favorite" state="active" />,
806
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation-action" kind="favorite" state="active" />'),
807
+ },
808
+ {
809
+ id: 'navigation-action-notification-active',
810
+ title: 'navigation-action-notification-active',
811
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="notification" state="active" />,
812
+ code: cryptocurrencyPatternCode(
813
+ '<CryptocurrencyDemo part="navigation-action" kind="notification" state="active" />',
814
+ ),
815
+ },
816
+ {
817
+ id: 'navigation-action-hamburger-active',
818
+ title: 'navigation-action-hamburger-active',
819
+ render: () => <CryptocurrencyDemo part="navigation-action" kind="hamburger" state="active" />,
820
+ code: cryptocurrencyPatternCode(
821
+ '<CryptocurrencyDemo part="navigation-action" kind="hamburger" state="active" />',
822
+ ),
823
+ },
824
+ {
825
+ id: 'chart-item-default',
826
+ title: 'chart-item-default',
827
+ render: () => <CryptocurrencyDemo part="chart-item" state="default" />,
828
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-item" state="default" />'),
829
+ },
830
+ {
831
+ id: 'chart-item-hover',
832
+ title: 'chart-item-hover',
833
+ render: () => <CryptocurrencyDemo part="chart-item" state="hover" />,
834
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-item" state="hover" />'),
835
+ },
836
+ {
837
+ id: 'chart-item-active',
838
+ title: 'chart-item-active',
839
+ render: () => <CryptocurrencyDemo part="chart-item" state="active" />,
840
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-item" state="active" />'),
841
+ },
842
+ {
843
+ id: 'swap-select-lighter-default',
844
+ title: 'swap-select-lighter-default',
845
+ render: () => <CryptocurrencyDemo part="swap-select" kind="lighter" state="default" />,
846
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="lighter" state="default" />'),
847
+ },
848
+ {
849
+ id: 'swap-select-lighter-hover',
850
+ title: 'swap-select-lighter-hover',
851
+ render: () => <CryptocurrencyDemo part="swap-select" kind="lighter" state="hover" />,
852
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="lighter" state="hover" />'),
853
+ },
854
+ {
855
+ id: 'swap-select-lighter-active',
856
+ title: 'swap-select-lighter-active',
857
+ render: () => <CryptocurrencyDemo part="swap-select" kind="lighter" state="active" />,
858
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="lighter" state="active" />'),
859
+ },
860
+ {
861
+ id: 'swap-select-stroke-default',
862
+ title: 'swap-select-stroke-default',
863
+ render: () => <CryptocurrencyDemo part="swap-select" kind="stroke" state="default" />,
864
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="stroke" state="default" />'),
865
+ },
866
+ {
867
+ id: 'swap-select-stroke-hover',
868
+ title: 'swap-select-stroke-hover',
869
+ render: () => <CryptocurrencyDemo part="swap-select" kind="stroke" state="hover" />,
870
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="stroke" state="hover" />'),
871
+ },
872
+ {
873
+ id: 'swap-select-stroke-active',
874
+ title: 'swap-select-stroke-active',
875
+ render: () => <CryptocurrencyDemo part="swap-select" kind="stroke" state="active" />,
876
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-select" kind="stroke" state="active" />'),
877
+ },
878
+ {
879
+ id: 'chart-switch-1d',
880
+ title: 'chart-switch-1d',
881
+ render: () => <CryptocurrencyDemo part="chart-switch" kind="1D" />,
882
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-switch" kind="1D" />'),
883
+ },
884
+ {
885
+ id: 'chart-switch-1w',
886
+ title: 'chart-switch-1w',
887
+ render: () => <CryptocurrencyDemo part="chart-switch" kind="1W" />,
888
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-switch" kind="1W" />'),
889
+ },
890
+ {
891
+ id: 'chart-switch-1m',
892
+ title: 'chart-switch-1m',
893
+ render: () => <CryptocurrencyDemo part="chart-switch" kind="1M" />,
894
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-switch" kind="1M" />'),
895
+ },
896
+ {
897
+ id: 'chart-switch-3m',
898
+ title: 'chart-switch-3m',
899
+ render: () => <CryptocurrencyDemo part="chart-switch" kind="3M" />,
900
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-switch" kind="3M" />'),
901
+ },
902
+ {
903
+ id: 'chart-switch-1y',
904
+ title: 'chart-switch-1y',
905
+ render: () => <CryptocurrencyDemo part="chart-switch" kind="1Y" />,
906
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="chart-switch" kind="1Y" />'),
907
+ },
908
+ {
909
+ id: 'table-button-explorer-default',
910
+ title: 'table-button-explorer-default',
911
+ render: () => <CryptocurrencyDemo part="table-button" kind="explorer" state="default" />,
912
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="explorer" state="default" />'),
913
+ },
914
+ {
915
+ id: 'table-button-detail-default',
916
+ title: 'table-button-detail-default',
917
+ render: () => <CryptocurrencyDemo part="table-button" kind="detail" state="default" />,
918
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="detail" state="default" />'),
919
+ },
920
+ {
921
+ id: 'table-button-explorer-hover',
922
+ title: 'table-button-explorer-hover',
923
+ render: () => <CryptocurrencyDemo part="table-button" kind="explorer" state="hover" />,
924
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="explorer" state="hover" />'),
925
+ },
926
+ {
927
+ id: 'table-button-detail-hover',
928
+ title: 'table-button-detail-hover',
929
+ render: () => <CryptocurrencyDemo part="table-button" kind="detail" state="hover" />,
930
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="detail" state="hover" />'),
931
+ },
932
+ {
933
+ id: 'table-button-explorer-active',
934
+ title: 'table-button-explorer-active',
935
+ render: () => <CryptocurrencyDemo part="table-button" kind="explorer" state="active" />,
936
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="explorer" state="active" />'),
937
+ },
938
+ {
939
+ id: 'table-button-detail-active',
940
+ title: 'table-button-detail-active',
941
+ render: () => <CryptocurrencyDemo part="table-button" kind="detail" state="active" />,
942
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-button" kind="detail" state="active" />'),
943
+ },
944
+ {
945
+ id: 'table-switch-item-default',
946
+ title: 'table-switch-item-default',
947
+ render: () => <CryptocurrencyDemo part="table-switch-item" state="default" />,
948
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch-item" state="default" />'),
949
+ },
950
+ {
951
+ id: 'table-switch-item-hover',
952
+ title: 'table-switch-item-hover',
953
+ render: () => <CryptocurrencyDemo part="table-switch-item" state="hover" />,
954
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch-item" state="hover" />'),
955
+ },
956
+ {
957
+ id: 'table-switch-item-active',
958
+ title: 'table-switch-item-active',
959
+ render: () => <CryptocurrencyDemo part="table-switch-item" state="active" />,
960
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch-item" state="active" />'),
961
+ },
962
+ {
963
+ id: 'table-tab-transaction-default',
964
+ title: 'table-tab-transaction-default',
965
+ render: () => <CryptocurrencyDemo part="table-tab" kind="transaction" state="default" />,
966
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="transaction" state="default" />'),
967
+ },
968
+ {
969
+ id: 'table-tab-open-orders-default',
970
+ title: 'table-tab-open-orders-default',
971
+ render: () => <CryptocurrencyDemo part="table-tab" kind="open-orders" state="default" />,
972
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="open-orders" state="default" />'),
973
+ },
974
+ {
975
+ id: 'table-tab-earn-rewards-default',
976
+ title: 'table-tab-earn-rewards-default',
977
+ render: () => <CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="default" />,
978
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="default" />'),
979
+ },
980
+ {
981
+ id: 'table-tab-transaction-hover',
982
+ title: 'table-tab-transaction-hover',
983
+ render: () => <CryptocurrencyDemo part="table-tab" kind="transaction" state="hover" />,
984
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="transaction" state="hover" />'),
985
+ },
986
+ {
987
+ id: 'table-tab-open-orders-hover',
988
+ title: 'table-tab-open-orders-hover',
989
+ render: () => <CryptocurrencyDemo part="table-tab" kind="open-orders" state="hover" />,
990
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="open-orders" state="hover" />'),
991
+ },
992
+ {
993
+ id: 'table-tab-earn-rewards-hover',
994
+ title: 'table-tab-earn-rewards-hover',
995
+ render: () => <CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="hover" />,
996
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="hover" />'),
997
+ },
998
+ {
999
+ id: 'table-tab-transaction-active',
1000
+ title: 'table-tab-transaction-active',
1001
+ render: () => <CryptocurrencyDemo part="table-tab" kind="transaction" state="active" />,
1002
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="transaction" state="active" />'),
1003
+ },
1004
+ {
1005
+ id: 'table-tab-open-orders-active',
1006
+ title: 'table-tab-open-orders-active',
1007
+ render: () => <CryptocurrencyDemo part="table-tab" kind="open-orders" state="active" />,
1008
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="open-orders" state="active" />'),
1009
+ },
1010
+ {
1011
+ id: 'table-tab-earn-rewards-active',
1012
+ title: 'table-tab-earn-rewards-active',
1013
+ render: () => <CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="active" />,
1014
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-tab" kind="earn-rewards" state="active" />'),
1015
+ },
1016
+ {
1017
+ id: 'table-filter-type-default',
1018
+ title: 'table-filter-type-default',
1019
+ render: () => <CryptocurrencyDemo part="table-filter" kind="type" state="default" />,
1020
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="type" state="default" />'),
1021
+ },
1022
+ {
1023
+ id: 'table-filter-date-default',
1024
+ title: 'table-filter-date-default',
1025
+ render: () => <CryptocurrencyDemo part="table-filter" kind="date" state="default" />,
1026
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="date" state="default" />'),
1027
+ },
1028
+ {
1029
+ id: 'table-filter-token-default',
1030
+ title: 'table-filter-token-default',
1031
+ render: () => <CryptocurrencyDemo part="table-filter" kind="token" state="default" />,
1032
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="token" state="default" />'),
1033
+ },
1034
+ {
1035
+ id: 'table-filter-status-default',
1036
+ title: 'table-filter-status-default',
1037
+ render: () => <CryptocurrencyDemo part="table-filter" kind="status" state="default" />,
1038
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="status" state="default" />'),
1039
+ },
1040
+ {
1041
+ id: 'table-filter-date-hover',
1042
+ title: 'table-filter-date-hover',
1043
+ render: () => <CryptocurrencyDemo part="table-filter" kind="date" state="hover" />,
1044
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="date" state="hover" />'),
1045
+ },
1046
+ {
1047
+ id: 'table-filter-type-hover',
1048
+ title: 'table-filter-type-hover',
1049
+ render: () => <CryptocurrencyDemo part="table-filter" kind="type" state="hover" />,
1050
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="type" state="hover" />'),
1051
+ },
1052
+ {
1053
+ id: 'table-filter-date-active',
1054
+ title: 'table-filter-date-active',
1055
+ render: () => <CryptocurrencyDemo part="table-filter" kind="date" state="active" />,
1056
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="date" state="active" />'),
1057
+ },
1058
+ {
1059
+ id: 'table-filter-token-hover',
1060
+ title: 'table-filter-token-hover',
1061
+ render: () => <CryptocurrencyDemo part="table-filter" kind="token" state="hover" />,
1062
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="token" state="hover" />'),
1063
+ },
1064
+ {
1065
+ id: 'table-filter-status-hover',
1066
+ title: 'table-filter-status-hover',
1067
+ render: () => <CryptocurrencyDemo part="table-filter" kind="status" state="hover" />,
1068
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="status" state="hover" />'),
1069
+ },
1070
+ {
1071
+ id: 'table-filter-date-selected',
1072
+ title: 'table-filter-date-selected',
1073
+ render: () => <CryptocurrencyDemo part="table-filter" kind="date" state="selected" />,
1074
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="date" state="selected" />'),
1075
+ },
1076
+ {
1077
+ id: 'table-filter-type-active',
1078
+ title: 'table-filter-type-active',
1079
+ render: () => <CryptocurrencyDemo part="table-filter" kind="type" state="active" />,
1080
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="type" state="active" />'),
1081
+ },
1082
+ {
1083
+ id: 'table-filter-token-active',
1084
+ title: 'table-filter-token-active',
1085
+ render: () => <CryptocurrencyDemo part="table-filter" kind="token" state="active" />,
1086
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="token" state="active" />'),
1087
+ },
1088
+ {
1089
+ id: 'table-filter-status-active',
1090
+ title: 'table-filter-status-active',
1091
+ render: () => <CryptocurrencyDemo part="table-filter" kind="status" state="active" />,
1092
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="status" state="active" />'),
1093
+ },
1094
+ {
1095
+ id: 'table-filter-type-selected',
1096
+ title: 'table-filter-type-selected',
1097
+ render: () => <CryptocurrencyDemo part="table-filter" kind="type" state="selected" />,
1098
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="type" state="selected" />'),
1099
+ },
1100
+ {
1101
+ id: 'table-filter-token-selected',
1102
+ title: 'table-filter-token-selected',
1103
+ render: () => <CryptocurrencyDemo part="table-filter" kind="token" state="selected" />,
1104
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="token" state="selected" />'),
1105
+ },
1106
+ {
1107
+ id: 'table-filter-status-selected',
1108
+ title: 'table-filter-status-selected',
1109
+ render: () => <CryptocurrencyDemo part="table-filter" kind="status" state="selected" />,
1110
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-filter" kind="status" state="selected" />'),
1111
+ },
1112
+ {
1113
+ id: 'table-switch-compact-24',
1114
+ title: 'table-switch-compact-24',
1115
+ render: () => <CryptocurrencyDemo part="table-switch" kind="compact" size={24} />,
1116
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch" kind="compact" size={24} />'),
1117
+ },
1118
+ {
1119
+ id: 'table-switch-detailed-24',
1120
+ title: 'table-switch-detailed-24',
1121
+ render: () => <CryptocurrencyDemo part="table-switch" kind="detailed" size={24} />,
1122
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch" kind="detailed" size={24} />'),
1123
+ },
1124
+ {
1125
+ id: 'table-switch-compact-28',
1126
+ title: 'table-switch-compact-28',
1127
+ render: () => <CryptocurrencyDemo part="table-switch" kind="compact" size={28} />,
1128
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch" kind="compact" size={28} />'),
1129
+ },
1130
+ {
1131
+ id: 'table-switch-detailed-28',
1132
+ title: 'table-switch-detailed-28',
1133
+ render: () => <CryptocurrencyDemo part="table-switch" kind="detailed" size={28} />,
1134
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="table-switch" kind="detailed" size={28} />'),
1135
+ },
1136
+ {
1137
+ id: 'swap-input-selling-default',
1138
+ title: 'swap-input-selling-default',
1139
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="default" />,
1140
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="default" />'),
1141
+ },
1142
+ {
1143
+ id: 'swap-input-receive-default',
1144
+ title: 'swap-input-receive-default',
1145
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="default" />,
1146
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="default" />'),
1147
+ },
1148
+ {
1149
+ id: 'swap-input-selling-hover',
1150
+ title: 'swap-input-selling-hover',
1151
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="hover" />,
1152
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="hover" />'),
1153
+ },
1154
+ {
1155
+ id: 'swap-input-receive-hover',
1156
+ title: 'swap-input-receive-hover',
1157
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="hover" />,
1158
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="hover" />'),
1159
+ },
1160
+ {
1161
+ id: 'swap-input-selling-active',
1162
+ title: 'swap-input-selling-active',
1163
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="active" />,
1164
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="active" />'),
1165
+ },
1166
+ {
1167
+ id: 'swap-input-receive-active',
1168
+ title: 'swap-input-receive-active',
1169
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="active" />,
1170
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="active" />'),
1171
+ },
1172
+ {
1173
+ id: 'swap-input-selling-filled',
1174
+ title: 'swap-input-selling-filled',
1175
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="filled" />,
1176
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="filled" />'),
1177
+ },
1178
+ {
1179
+ id: 'swap-input-receive-filled',
1180
+ title: 'swap-input-receive-filled',
1181
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="filled" />,
1182
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="filled" />'),
1183
+ },
1184
+ {
1185
+ id: 'swap-input-selling-disabled',
1186
+ title: 'swap-input-selling-disabled',
1187
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="disabled" />,
1188
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="disabled" />'),
1189
+ },
1190
+ {
1191
+ id: 'swap-input-receive-disabled',
1192
+ title: 'swap-input-receive-disabled',
1193
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="disabled" />,
1194
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="disabled" />'),
1195
+ },
1196
+ {
1197
+ id: 'swap-input-selling-error',
1198
+ title: 'swap-input-selling-error',
1199
+ render: () => <CryptocurrencyDemo part="swap-input" kind="selling" state="error" />,
1200
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="selling" state="error" />'),
1201
+ },
1202
+ {
1203
+ id: 'swap-input-receive-error',
1204
+ title: 'swap-input-receive-error',
1205
+ render: () => <CryptocurrencyDemo part="swap-input" kind="receive" state="error" />,
1206
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-input" kind="receive" state="error" />'),
1207
+ },
1208
+ {
1209
+ id: 'swap-1',
1210
+ title: 'swap-1',
1211
+ render: () => <CryptocurrencyDemo part="swap" step={1} />,
1212
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap" step={1} />'),
1213
+ },
1214
+ {
1215
+ id: 'swap-2',
1216
+ title: 'swap-2',
1217
+ render: () => <CryptocurrencyDemo part="swap" step={2} />,
1218
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap" step={2} />'),
1219
+ },
1220
+ {
1221
+ id: 'swap-3',
1222
+ title: 'swap-3',
1223
+ render: () => <CryptocurrencyDemo part="swap" step={3} />,
1224
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap" step={3} />'),
1225
+ },
1226
+ {
1227
+ id: 'search-modal-default',
1228
+ title: 'search-modal-default',
1229
+ render: () => <CryptocurrencyDemo part="search-modal" state="default" />,
1230
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-modal" state="default" />'),
1231
+ },
1232
+ {
1233
+ id: 'search-modal-searching',
1234
+ title: 'search-modal-searching',
1235
+ render: () => <CryptocurrencyDemo part="search-modal" state="searching" />,
1236
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-modal" state="searching" />'),
1237
+ },
1238
+ {
1239
+ id: 'search-modal-empty',
1240
+ title: 'search-modal-empty',
1241
+ render: () => <CryptocurrencyDemo part="search-modal" state="empty" />,
1242
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-modal" state="empty" />'),
1243
+ },
1244
+ {
1245
+ id: 'search-input-default',
1246
+ title: 'search-input-default',
1247
+ render: () => <CryptocurrencyDemo part="search-input" state="default" />,
1248
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-input" state="default" />'),
1249
+ },
1250
+ {
1251
+ id: 'search-input-hover',
1252
+ title: 'search-input-hover',
1253
+ render: () => <CryptocurrencyDemo part="search-input" state="hover" />,
1254
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-input" state="hover" />'),
1255
+ },
1256
+ {
1257
+ id: 'search-input-active',
1258
+ title: 'search-input-active',
1259
+ render: () => <CryptocurrencyDemo part="search-input" state="active" />,
1260
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="search-input" state="active" />'),
1261
+ },
1262
+ {
1263
+ id: 'navigation-false',
1264
+ title: 'navigation-false',
1265
+ render: () => <CryptocurrencyDemo part="navigation" profile={false} />,
1266
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation" profile={false} />'),
1267
+ },
1268
+ {
1269
+ id: 'navigation-true',
1270
+ title: 'navigation-true',
1271
+ render: () => <CryptocurrencyDemo part="navigation" profile={true} />,
1272
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="navigation" profile={true} />'),
1273
+ },
1274
+ {
1275
+ id: 'social-button-phantom-default-true',
1276
+ title: 'social-button-phantom-default-true',
1277
+ render: () => <CryptocurrencyDemo part="social-button" kind="phantom" state="default" onlyIcon={true} />,
1278
+ code: cryptocurrencyPatternCode(
1279
+ '<CryptocurrencyDemo part="social-button" kind="phantom" state="default" onlyIcon={true} />',
1280
+ ),
1281
+ },
1282
+ {
1283
+ id: 'social-button-walletconnect-default-true',
1284
+ title: 'social-button-walletconnect-default-true',
1285
+ render: () => <CryptocurrencyDemo part="social-button" kind="walletconnect" state="default" onlyIcon={true} />,
1286
+ code: cryptocurrencyPatternCode(
1287
+ '<CryptocurrencyDemo part="social-button" kind="walletconnect" state="default" onlyIcon={true} />',
1288
+ ),
1289
+ },
1290
+ {
1291
+ id: 'social-button-metamask-default-true',
1292
+ title: 'social-button-metamask-default-true',
1293
+ render: () => <CryptocurrencyDemo part="social-button" kind="metamask" state="default" onlyIcon={true} />,
1294
+ code: cryptocurrencyPatternCode(
1295
+ '<CryptocurrencyDemo part="social-button" kind="metamask" state="default" onlyIcon={true} />',
1296
+ ),
1297
+ },
1298
+ {
1299
+ id: 'social-button-phantom-hover-true',
1300
+ title: 'social-button-phantom-hover-true',
1301
+ render: () => <CryptocurrencyDemo part="social-button" kind="phantom" state="hover" onlyIcon={true} />,
1302
+ code: cryptocurrencyPatternCode(
1303
+ '<CryptocurrencyDemo part="social-button" kind="phantom" state="hover" onlyIcon={true} />',
1304
+ ),
1305
+ },
1306
+ {
1307
+ id: 'social-button-walletconnect-hover-true',
1308
+ title: 'social-button-walletconnect-hover-true',
1309
+ render: () => <CryptocurrencyDemo part="social-button" kind="walletconnect" state="hover" onlyIcon={true} />,
1310
+ code: cryptocurrencyPatternCode(
1311
+ '<CryptocurrencyDemo part="social-button" kind="walletconnect" state="hover" onlyIcon={true} />',
1312
+ ),
1313
+ },
1314
+ {
1315
+ id: 'social-button-metamask-hover-true',
1316
+ title: 'social-button-metamask-hover-true',
1317
+ render: () => <CryptocurrencyDemo part="social-button" kind="metamask" state="hover" onlyIcon={true} />,
1318
+ code: cryptocurrencyPatternCode(
1319
+ '<CryptocurrencyDemo part="social-button" kind="metamask" state="hover" onlyIcon={true} />',
1320
+ ),
1321
+ },
1322
+ {
1323
+ id: 'social-button-phantom-default-false',
1324
+ title: 'social-button-phantom-default-false',
1325
+ render: () => <CryptocurrencyDemo part="social-button" kind="phantom" state="default" onlyIcon={false} />,
1326
+ code: cryptocurrencyPatternCode(
1327
+ '<CryptocurrencyDemo part="social-button" kind="phantom" state="default" onlyIcon={false} />',
1328
+ ),
1329
+ },
1330
+ {
1331
+ id: 'social-button-phantom-hover-false',
1332
+ title: 'social-button-phantom-hover-false',
1333
+ render: () => <CryptocurrencyDemo part="social-button" kind="phantom" state="hover" onlyIcon={false} />,
1334
+ code: cryptocurrencyPatternCode(
1335
+ '<CryptocurrencyDemo part="social-button" kind="phantom" state="hover" onlyIcon={false} />',
1336
+ ),
1337
+ },
1338
+ {
1339
+ id: 'social-button-walletconnect-default-false',
1340
+ title: 'social-button-walletconnect-default-false',
1341
+ render: () => <CryptocurrencyDemo part="social-button" kind="walletconnect" state="default" onlyIcon={false} />,
1342
+ code: cryptocurrencyPatternCode(
1343
+ '<CryptocurrencyDemo part="social-button" kind="walletconnect" state="default" onlyIcon={false} />',
1344
+ ),
1345
+ },
1346
+ {
1347
+ id: 'social-button-walletconnect-hover-false',
1348
+ title: 'social-button-walletconnect-hover-false',
1349
+ render: () => <CryptocurrencyDemo part="social-button" kind="walletconnect" state="hover" onlyIcon={false} />,
1350
+ code: cryptocurrencyPatternCode(
1351
+ '<CryptocurrencyDemo part="social-button" kind="walletconnect" state="hover" onlyIcon={false} />',
1352
+ ),
1353
+ },
1354
+ {
1355
+ id: 'social-button-metamask-default-false',
1356
+ title: 'social-button-metamask-default-false',
1357
+ render: () => <CryptocurrencyDemo part="social-button" kind="metamask" state="default" onlyIcon={false} />,
1358
+ code: cryptocurrencyPatternCode(
1359
+ '<CryptocurrencyDemo part="social-button" kind="metamask" state="default" onlyIcon={false} />',
1360
+ ),
1361
+ },
1362
+ {
1363
+ id: 'social-button-metamask-hover-false',
1364
+ title: 'social-button-metamask-hover-false',
1365
+ render: () => <CryptocurrencyDemo part="social-button" kind="metamask" state="hover" onlyIcon={false} />,
1366
+ code: cryptocurrencyPatternCode(
1367
+ '<CryptocurrencyDemo part="social-button" kind="metamask" state="hover" onlyIcon={false} />',
1368
+ ),
1369
+ },
1370
+ {
1371
+ id: 'menu-dropdown',
1372
+ title: 'menu-dropdown',
1373
+ render: () => <CryptocurrencyDemo part="menu-dropdown" />,
1374
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="menu-dropdown" />'),
1375
+ },
1376
+ {
1377
+ id: 'favorites-dropdown',
1378
+ title: 'favorites-dropdown',
1379
+ render: () => <CryptocurrencyDemo part="favorites-dropdown" />,
1380
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="favorites-dropdown" />'),
1381
+ },
1382
+ {
1383
+ id: 'profile-dropdown',
1384
+ title: 'profile-dropdown',
1385
+ render: () => <CryptocurrencyDemo part="profile-dropdown" />,
1386
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="profile-dropdown" />'),
1387
+ },
1388
+ {
1389
+ id: 'wallet-dropdown',
1390
+ title: 'wallet-dropdown',
1391
+ render: () => <CryptocurrencyDemo part="wallet-dropdown" />,
1392
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="wallet-dropdown" />'),
1393
+ },
1394
+ {
1395
+ id: 'swap-token-dropdown',
1396
+ title: 'swap-token-dropdown',
1397
+ render: () => <CryptocurrencyDemo part="swap-token-dropdown" />,
1398
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="swap-token-dropdown" />'),
1399
+ },
1400
+ {
1401
+ id: 'notifications-dropdown',
1402
+ title: 'notifications-dropdown',
1403
+ render: () => <CryptocurrencyDemo part="notifications-dropdown" />,
1404
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="notifications-dropdown" />'),
1405
+ },
1406
+ {
1407
+ id: 'connect-wallet',
1408
+ title: 'connect-wallet',
1409
+ render: () => <CryptocurrencyDemo part="connect-wallet" />,
1410
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="connect-wallet" />'),
1411
+ },
1412
+ {
1413
+ id: 'banner',
1414
+ title: 'banner',
1415
+ render: () => <CryptocurrencyDemo part="banner" />,
1416
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="banner" />'),
1417
+ },
1418
+ {
1419
+ id: 'filter-type',
1420
+ title: 'filter-type',
1421
+ render: () => <CryptocurrencyDemo part="filter-type" />,
1422
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="filter-type" />'),
1423
+ },
1424
+ {
1425
+ id: 'filter-date',
1426
+ title: 'filter-date',
1427
+ render: () => <CryptocurrencyDemo part="filter-date" />,
1428
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="filter-date" />'),
1429
+ },
1430
+ {
1431
+ id: 'filter-status',
1432
+ title: 'filter-status',
1433
+ render: () => <CryptocurrencyDemo part="filter-status" />,
1434
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="filter-status" />'),
1435
+ },
1436
+ {
1437
+ id: 'filter-token',
1438
+ title: 'filter-token',
1439
+ render: () => <CryptocurrencyDemo part="filter-token" />,
1440
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="filter-token" />'),
1441
+ },
1442
+ {
1443
+ id: 'mobile-navigation',
1444
+ title: 'mobile-navigation',
1445
+ render: () => <CryptocurrencyDemo part="mobile-navigation" />,
1446
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="mobile-navigation" />'),
1447
+ },
1448
+ {
1449
+ id: 'mobile-bottom-navigation',
1450
+ title: 'mobile-bottom-navigation',
1451
+ render: () => <CryptocurrencyDemo part="mobile-bottom-navigation" />,
1452
+ code: cryptocurrencyPatternCode('<CryptocurrencyDemo part="mobile-bottom-navigation" />'),
1453
+ },
1454
+ ],
1455
+ }
423
1456
  export const entries: GalleryEntry[] = [
1457
+ cryptocurrencyEntry,
424
1458
  pageEntry,
425
1459
  sectionHeaderEntry,
426
1460
  sectionPageEntry,