@logicplanes/kaeso-ui 0.4.3 → 0.4.5

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 (490) hide show
  1. package/ai/component-guides.md +279 -98
  2. package/ai/component-registry.json +352 -236
  3. package/ai/component-registry.md +241 -219
  4. package/ai/icons.md +2 -2
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/code-block-KIvuE8jg.js +352 -0
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-CPXJh9cq.js → de-CqC4aSIV.js} +81 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  65. package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
  66. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  67. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  68. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  69. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  70. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  71. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  72. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  73. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  74. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  75. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  76. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  77. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  78. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  79. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  80. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  81. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  82. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  83. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  84. package/dist/chunks/list-B4G-sWwV.js +540 -0
  85. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  86. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  87. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  88. package/dist/chunks/markdown-C565aBR7.js +338 -0
  89. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  90. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  91. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  92. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  93. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  94. package/dist/chunks/meter-CASMHlxl.js +100 -0
  95. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  96. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  97. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  98. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  99. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  100. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  101. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  102. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  103. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  104. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  105. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  106. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  107. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  108. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  109. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  110. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  111. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  112. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  113. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  114. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  115. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  116. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  117. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  118. package/dist/chunks/rights-B68ocZuq.js +312 -0
  119. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  120. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  121. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  122. package/dist/chunks/section-CFBYhsUi.js +77 -0
  123. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  124. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  125. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  126. package/dist/chunks/segmented-D9i1avik.js +119 -0
  127. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  128. package/dist/chunks/select-BqjmQOqx.js +222 -0
  129. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  130. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  131. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  132. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  133. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  134. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  135. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  136. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  137. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  138. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  139. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  140. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  141. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  142. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  143. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  144. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  145. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  146. package/dist/chunks/switch-ngywMQdl.js +76 -0
  147. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  148. package/dist/chunks/table-CTK5E0J7.js +102 -0
  149. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  150. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  151. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  152. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  153. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  154. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  155. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  156. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  157. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  158. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  159. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  160. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  161. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  162. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  163. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  164. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  165. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  166. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  167. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  168. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  169. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  170. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  171. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  172. package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
  173. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  174. package/dist/components/agent-avatar.js +1 -1
  175. package/dist/components/app-frame.js +2 -2
  176. package/dist/components/avatar.js +1 -1
  177. package/dist/components/badge.js +1 -1
  178. package/dist/components/banner.js +1 -1
  179. package/dist/components/button-group.js +22 -22
  180. package/dist/components/button-group.js.map +1 -1
  181. package/dist/components/button.js +1 -1
  182. package/dist/components/calendar.js +1 -1
  183. package/dist/components/charts/bar.js +235 -160
  184. package/dist/components/charts/bar.js.map +1 -1
  185. package/dist/components/charts/donut.js +144 -99
  186. package/dist/components/charts/donut.js.map +1 -1
  187. package/dist/components/charts/gauge.js +61 -49
  188. package/dist/components/charts/gauge.js.map +1 -1
  189. package/dist/components/charts/heatmap.js +179 -70
  190. package/dist/components/charts/heatmap.js.map +1 -1
  191. package/dist/components/charts/sankey.js +144 -77
  192. package/dist/components/charts/sankey.js.map +1 -1
  193. package/dist/components/charts/sparkline.js +54 -38
  194. package/dist/components/charts/sparkline.js.map +1 -1
  195. package/dist/components/charts/timeseries.js +1 -1
  196. package/dist/components/charts.js +2 -2
  197. package/dist/components/checkbox.js +1 -1
  198. package/dist/components/code-block.js +4 -3
  199. package/dist/components/code.js +1 -1
  200. package/dist/components/collapsible.js +77 -1
  201. package/dist/components/collapsible.js.map +1 -0
  202. package/dist/components/combobox.js +1 -1
  203. package/dist/components/command-list.js +2 -2
  204. package/dist/components/command-palette.js +89 -66
  205. package/dist/components/command-palette.js.map +1 -1
  206. package/dist/components/copy-button.js +1 -1
  207. package/dist/components/data-table.js +1 -459
  208. package/dist/components/date-picker.js +162 -151
  209. package/dist/components/date-picker.js.map +1 -1
  210. package/dist/components/dialog.js +74 -63
  211. package/dist/components/dialog.js.map +1 -1
  212. package/dist/components/display-options.js +76 -64
  213. package/dist/components/display-options.js.map +1 -1
  214. package/dist/components/empty.js +1 -1
  215. package/dist/components/field.js +1 -1
  216. package/dist/components/figure.js +2 -2
  217. package/dist/components/filter-chip.js +36 -27
  218. package/dist/components/filter-chip.js.map +1 -1
  219. package/dist/components/filter-row.js +4 -4
  220. package/dist/components/filter-row.js.map +1 -1
  221. package/dist/components/flow.js +94 -63
  222. package/dist/components/flow.js.map +1 -1
  223. package/dist/components/heading.js +1 -1
  224. package/dist/components/icon-button.js +1 -1
  225. package/dist/components/icon.js +2 -2
  226. package/dist/components/input.js +176 -98
  227. package/dist/components/input.js.map +1 -1
  228. package/dist/components/kaeso/conversation.js +51 -46
  229. package/dist/components/kaeso/conversation.js.map +1 -1
  230. package/dist/components/kaeso/identity.js +1 -1
  231. package/dist/components/kaeso/moments.js +23 -20
  232. package/dist/components/kaeso/moments.js.map +1 -1
  233. package/dist/components/kaeso/rights.js +1 -1
  234. package/dist/components/kaeso/usage.js +90 -74
  235. package/dist/components/kaeso/usage.js.map +1 -1
  236. package/dist/components/kaeso.js +200 -187
  237. package/dist/components/kaeso.js.map +1 -1
  238. package/dist/components/kbd.js +1 -1
  239. package/dist/components/key-value.js +32 -47
  240. package/dist/components/key-value.js.map +1 -1
  241. package/dist/components/label.js +1 -25
  242. package/dist/components/layout.js +2 -2
  243. package/dist/components/layout.js.map +1 -1
  244. package/dist/components/link.js +1 -1
  245. package/dist/components/list.js +1 -1
  246. package/dist/components/loader.js +11 -10
  247. package/dist/components/loader.js.map +1 -1
  248. package/dist/components/logo.js +2 -2
  249. package/dist/components/markdown.js +1 -1
  250. package/dist/components/menu.js +2 -2
  251. package/dist/components/meter.js +1 -1
  252. package/dist/components/page-header.js +1 -1
  253. package/dist/components/pagination.js +1 -1
  254. package/dist/components/playground.js +644 -529
  255. package/dist/components/playground.js.map +1 -1
  256. package/dist/components/popover.js +4 -4
  257. package/dist/components/popover.js.map +1 -1
  258. package/dist/components/portal.js +1 -1
  259. package/dist/components/qr-code.js +2 -2
  260. package/dist/components/qr-code.js.map +1 -1
  261. package/dist/components/radio.js +1 -1
  262. package/dist/components/release-art.js +1 -1
  263. package/dist/components/scroll-area.js +1 -1
  264. package/dist/components/section.js +1 -1
  265. package/dist/components/segmented.js +1 -1
  266. package/dist/components/select.js +1 -1
  267. package/dist/components/separator.js +1 -1
  268. package/dist/components/settings.js +39 -46
  269. package/dist/components/settings.js.map +1 -1
  270. package/dist/components/sheet.js +10 -9
  271. package/dist/components/sheet.js.map +1 -1
  272. package/dist/components/sidebar.js +1 -1
  273. package/dist/components/skeleton.js +1 -1
  274. package/dist/components/slider.js +1 -1
  275. package/dist/components/stat.js +98 -84
  276. package/dist/components/stat.js.map +1 -1
  277. package/dist/components/status-dot.js +1 -1
  278. package/dist/components/surface.js +1 -1
  279. package/dist/components/swap-text.js +1 -1
  280. package/dist/components/switch.js +1 -1
  281. package/dist/components/table.js +1 -1
  282. package/dist/components/tabs.js +73 -55
  283. package/dist/components/tabs.js.map +1 -1
  284. package/dist/components/tag.js +1 -1
  285. package/dist/components/text.js +1 -1
  286. package/dist/components/theme-image.js +1 -1
  287. package/dist/components/theme-menu.js +5 -2
  288. package/dist/components/theme-menu.js.map +1 -1
  289. package/dist/components/theme-select.js +1 -1
  290. package/dist/components/thumbnail.js +35 -24
  291. package/dist/components/thumbnail.js.map +1 -1
  292. package/dist/components/timeline.js +51 -35
  293. package/dist/components/timeline.js.map +1 -1
  294. package/dist/components/toast.js +76 -66
  295. package/dist/components/toast.js.map +1 -1
  296. package/dist/components/toc.js +14 -8
  297. package/dist/components/toc.js.map +1 -1
  298. package/dist/components/toolbar.js +1 -1
  299. package/dist/components/tooltip.js +1 -1
  300. package/dist/components/visually-hidden.js +1 -1
  301. package/dist/i18n-provider.js +1 -1
  302. package/dist/index.js +101 -101
  303. package/dist/kaeso.css +605 -67
  304. package/dist/styles.css +1 -1
  305. package/dist/tailwind.css +1 -1
  306. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  307. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  308. package/dist/types/components/badge/badge.d.ts +3 -3
  309. package/dist/types/components/banner/banner.d.ts +3 -3
  310. package/dist/types/components/button/button.d.ts +2 -2
  311. package/dist/types/components/button-group/button-group.d.ts +1 -1
  312. package/dist/types/components/charts/domain.d.ts +11 -0
  313. package/dist/types/components/charts/marks.d.ts +1 -0
  314. package/dist/types/components/code/code.d.ts +3 -3
  315. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  316. package/dist/types/components/code-block/diff.d.ts +26 -0
  317. package/dist/types/components/code-block/docs.d.ts +14 -0
  318. package/dist/types/components/code-block/index.d.ts +1 -0
  319. package/dist/types/components/code-block/json-view.d.ts +2 -1
  320. package/dist/types/components/code-block/numbers.d.ts +1 -0
  321. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  322. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  323. package/dist/types/components/data-table/data-table.d.ts +6 -5
  324. package/dist/types/components/data-table/docs.d.ts +1 -0
  325. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  326. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  327. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  328. package/dist/types/components/dialog/dialog.d.ts +7 -7
  329. package/dist/types/components/field/field.d.ts +1 -1
  330. package/dist/types/components/flow/flow.d.ts +1 -1
  331. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  332. package/dist/types/components/input/input-group.d.ts +2 -0
  333. package/dist/types/components/input/number-input.d.ts +4 -4
  334. package/dist/types/components/input/otp-input.d.ts +3 -3
  335. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  336. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  337. package/dist/types/components/kaeso/rights.d.ts +1 -1
  338. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  339. package/dist/types/components/key-value/key-value.d.ts +2 -2
  340. package/dist/types/components/layout/layout.d.ts +2 -2
  341. package/dist/types/components/link/link.d.ts +4 -4
  342. package/dist/types/components/list/list.d.ts +2 -2
  343. package/dist/types/components/menu/menu.d.ts +2 -1
  344. package/dist/types/components/menu/styles.d.ts +3 -3
  345. package/dist/types/components/meter/meter.d.ts +3 -3
  346. package/dist/types/components/page-header/page-header.d.ts +1 -1
  347. package/dist/types/components/pagination/pagination.d.ts +2 -2
  348. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  349. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  350. package/dist/types/components/playground/reasoning.d.ts +1 -0
  351. package/dist/types/components/popover/popover.d.ts +1 -1
  352. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  353. package/dist/types/components/section/section-header.d.ts +6 -0
  354. package/dist/types/components/segmented/segmented.d.ts +1 -0
  355. package/dist/types/components/select/select.d.ts +1 -1
  356. package/dist/types/components/sheet/sheet.d.ts +3 -3
  357. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  358. package/dist/types/components/slider/slider.d.ts +2 -2
  359. package/dist/types/components/stat/stat.d.ts +1 -1
  360. package/dist/types/components/tabs/tabs.d.ts +6 -4
  361. package/dist/types/components/text/truncated.d.ts +7 -0
  362. package/dist/types/components/timeline/timeline.d.ts +5 -5
  363. package/dist/types/components/toc/toc.d.ts +1 -1
  364. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  365. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  366. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  367. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  368. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  369. package/dist/types/icons/groups.d.ts +1 -1
  370. package/dist/types/icons/vocabulary.d.ts +5 -0
  371. package/dist/types/utils/arrow-focus.d.ts +4 -1
  372. package/dist/types/utils/cn.d.ts +33 -0
  373. package/dist/types/utils/portal-context.d.ts +7 -1
  374. package/dist/utils.js +2 -2
  375. package/foundations/accessibility.md +3 -2
  376. package/foundations/color.md +5 -1
  377. package/foundations/elevation.md +1 -0
  378. package/foundations/motion.md +1 -1
  379. package/foundations/shape.md +2 -2
  380. package/foundations/typography.md +12 -12
  381. package/package.json +2 -2
  382. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  383. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  384. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  385. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  386. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  387. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  388. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  389. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  390. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  391. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  392. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  393. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  394. package/dist/chunks/button-CzuxqawA.js +0 -164
  395. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  396. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  397. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  398. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  399. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  400. package/dist/chunks/code-block-D5A-CGXG.js +0 -330
  401. package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
  402. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  403. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  404. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  405. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  406. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  407. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  408. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  409. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  410. package/dist/chunks/core-BYns5ytV.js +0 -472
  411. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  412. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  413. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  414. package/dist/chunks/de-CPXJh9cq.js.map +0 -1
  415. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  416. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  417. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  418. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  419. package/dist/chunks/icon-DVooQfk4.js +0 -94
  420. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  421. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  422. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  423. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  424. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  425. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  426. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  427. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  428. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  429. package/dist/chunks/list-M1csq-d4.js +0 -494
  430. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  431. package/dist/chunks/markdown-DULktoTK.js +0 -313
  432. package/dist/chunks/markdown-DULktoTK.js.map +0 -1
  433. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  434. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  435. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  436. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  437. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  438. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  439. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  440. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  441. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  442. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  443. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  444. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  445. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  446. package/dist/chunks/popover-DNN4S47w.js +0 -50
  447. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  448. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  449. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  450. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  451. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  452. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  453. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  454. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  455. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  456. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  457. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  458. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  459. package/dist/chunks/section-Ce1efbsP.js +0 -87
  460. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  461. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  462. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  463. package/dist/chunks/select-x4XVsdCI.js +0 -210
  464. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  465. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  466. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  467. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  468. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  469. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  470. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  471. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  472. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  473. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  474. package/dist/chunks/table-BeOSKl_3.js +0 -84
  475. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  476. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  477. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  478. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  479. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  480. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  481. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  482. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  483. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  484. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  485. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  486. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  487. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  488. package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
  489. package/dist/components/data-table.js.map +0 -1
  490. package/dist/components/label.js.map +0 -1
@@ -1,561 +0,0 @@
1
- "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
3
- import { createElement as t, forwardRef as n, useId as r, useMemo as i, useState as a } from "react";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { art as c, font as l } from "@logicplanes/kaeso-tokens";
6
- //#region src/components/release-art/drawing.ts
7
- var u = [
8
- "bauhaus",
9
- "albers",
10
- "stripes",
11
- "waves",
12
- "truchet",
13
- "arcs",
14
- "phyllotaxis",
15
- "spiro"
16
- ], d = {
17
- banner: {
18
- w: 640,
19
- h: 360
20
- },
21
- wide: {
22
- w: 840,
23
- h: 360
24
- }
25
- }, f = 40, p = {
26
- rx: f * 7.5,
27
- ry: f * 7.5
28
- };
29
- function m(e) {
30
- let t = 2166136261;
31
- for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
32
- return t >>> 0;
33
- }
34
- function h(e) {
35
- let t = e >>> 0;
36
- return () => {
37
- t = t + 1831565813 >>> 0;
38
- let e = t;
39
- return e = Math.imul(e ^ e >>> 15, e | 1), e ^= e + Math.imul(e ^ e >>> 7, e | 61), ((e ^ e >>> 14) >>> 0) / 4294967296;
40
- };
41
- }
42
- function g(e) {
43
- if (typeof e != "object" || !e) return !1;
44
- let t = e;
45
- return t.version === 1 && typeof t.seed == "number" && Number.isInteger(t.seed) && t.seed >= 0 && t.seed <= 4294967295 && typeof t.style == "string" && u.includes(t.style) && typeof t.palette == "number" && Number.isInteger(t.palette) && t.palette >= 0 && t.palette < c.palettes.length;
46
- }
47
- function _(e = Math.random) {
48
- let t = (t) => Math.min(t - 1, Math.floor(e() * t));
49
- return {
50
- version: 1,
51
- seed: Math.min(4294967295, Math.floor(e() * 4294967296)),
52
- style: u[t(u.length)] ?? "bauhaus",
53
- palette: t(c.palettes.length)
54
- };
55
- }
56
- function v(e, t = Math.random) {
57
- let n = e.slice(-3), r = u.filter((e) => !n.some((t) => t.style === e)), i = c.palettes.map((e, t) => t).filter((t) => !e.slice(-4).some((e) => e.palette === t)), a = new Set(e.map((e) => e.seed)), o = (e) => e[Math.min(e.length - 1, Math.floor(t() * e.length))], s = Math.min(4294967295, Math.floor(t() * 4294967296));
58
- for (; a.has(s);) s = s + 1 >>> 0;
59
- return {
60
- version: 1,
61
- seed: s,
62
- style: o(r) ?? "bauhaus",
63
- palette: o(i) ?? 0
64
- };
65
- }
66
- function y(e) {
67
- let t = m(e);
68
- return {
69
- version: 1,
70
- seed: t,
71
- style: u[t % u.length] ?? "bauhaus",
72
- palette: (t >>> 8) % c.palettes.length
73
- };
74
- }
75
- var b = (e) => Math.round(e * 100) / 100, x = (e, t, n) => n ? {
76
- tag: e,
77
- attrs: t,
78
- children: n
79
- } : {
80
- tag: e,
81
- attrs: t
82
- }, S = (e, t, n) => (t / p.rx) ** 2 + ((e.h - n) / p.ry) ** 2 < 1, C = (e, t) => {
83
- let n = (e.h - t) / p.ry;
84
- return n >= 1 ? 0 : p.rx * Math.sqrt(1 - n * n);
85
- }, w = (e, t) => x("g", { mask: `url(#${e.id("clear")})` }, t);
86
- function T(e, t, n, r, i, a) {
87
- let o = [], s = e.int(0, 7), c = `rotate(${e.int(0, 3) * 90} ${b(t + r / 2)} ${b(n + r / 2)})`;
88
- e.chance(.55) && o.push(x("rect", {
89
- x: t,
90
- y: n,
91
- width: r,
92
- height: r,
93
- fill: i
94
- }));
95
- let l = o.length ? a : i;
96
- switch (s) {
97
- case 0:
98
- o.push(x("path", {
99
- d: `M${t} ${n}L${t + r} ${n}A${r} ${r} 0 0 1 ${t} ${n + r}Z`,
100
- fill: l,
101
- transform: c
102
- }));
103
- break;
104
- case 1:
105
- o.push(x("path", {
106
- d: `M${t} ${n + r}A${r / 2} ${r / 2} 0 0 1 ${t + r} ${n + r}Z`,
107
- fill: l,
108
- transform: c
109
- }));
110
- break;
111
- case 2:
112
- o.push(x("circle", {
113
- cx: t + r / 2,
114
- cy: n + r / 2,
115
- r: r / 2,
116
- fill: l
117
- }));
118
- break;
119
- case 3:
120
- o.push(x("path", {
121
- d: `M${t} ${n}L${t + r} ${n + r}L${t} ${n + r}Z`,
122
- fill: l,
123
- transform: c
124
- }));
125
- break;
126
- case 4:
127
- o.push(x("circle", {
128
- cx: t + r / 2,
129
- cy: n + r / 2,
130
- r: r / 4,
131
- fill: l
132
- }));
133
- break;
134
- case 5:
135
- for (let e = 0; e < 3; e++) o.push(x("rect", {
136
- x: t + e * r / 3,
137
- y: n,
138
- width: r / 6,
139
- height: r,
140
- fill: l,
141
- transform: c
142
- }));
143
- break;
144
- case 6:
145
- o.push(x("path", {
146
- d: `M${t} ${n}L${t + r} ${n}L${t + r / 2} ${n + r / 2}Z`,
147
- fill: l,
148
- transform: c
149
- })), o.push(x("path", {
150
- d: `M${t} ${n + r}L${t + r} ${n + r}L${t + r / 2} ${n + r / 2}Z`,
151
- fill: l,
152
- transform: c
153
- }));
154
- break;
155
- default: o.push(x("path", {
156
- d: `M${t} ${n}A${r} ${r} 0 0 1 ${t + r} ${n + r}L${t} ${n + r}Z`,
157
- fill: l,
158
- transform: c
159
- }));
160
- }
161
- return o;
162
- }
163
- function E(e) {
164
- let t = /* @__PURE__ */ new Set(), n = (e, t) => `${e},${t}`, r = (t, n) => S(e, t * f, (n + 1) * f), i = [], a = e.int(2, 4);
165
- for (let o = 0; o < a; o++) {
166
- let a = e.int(2, 3);
167
- for (let o = 0; o < 20; o++) {
168
- let o = e.int(0, e.cols - a), s = e.int(0, e.rows - a), c = !0;
169
- for (let e = 0; e < a && c; e++) for (let i = 0; i < a && c; i++) c = !t.has(n(o + e, s + i)) && !r(o + e, s + i);
170
- if (!c) continue;
171
- for (let e = 0; e < a; e++) for (let r = 0; r < a; r++) t.add(n(o + e, s + r));
172
- let l = e.int(0, 3);
173
- i.push(...T(e, o * f, s * f, a * f, e.color(l), e.color(l + e.int(1, 3))));
174
- break;
175
- }
176
- }
177
- let o = e.between(.55, .85);
178
- for (let a = 0; a < e.cols; a++) for (let s = 0; s < e.rows; s++) {
179
- if (t.has(n(a, s)) || r(a, s) || !e.chance(o)) continue;
180
- let c = e.int(0, 3);
181
- i.push(...T(e, a * f, s * f, f, e.color(c), e.color(c + e.int(1, 3))));
182
- }
183
- return i;
184
- }
185
- function D(e) {
186
- let t = (e.h - 240) / 2, n = p.rx - f / 2, r = e.w - t - 240, i = n + Math.round(e.next() * Math.max(0, r - n) / (f / 2)) * (f / 2), a = e.int(3, 4), o = [
187
- 0,
188
- 1,
189
- 2,
190
- 3
191
- ];
192
- for (let t = o.length - 1; t > 0; t--) {
193
- let n = Math.floor(e.next() * (t + 1));
194
- [o[t], o[n]] = [o[n] ?? n, o[t] ?? t];
195
- }
196
- return Array.from({ length: a }, (n, r) => x("rect", {
197
- x: i + 24 * r,
198
- y: t + 36 * r,
199
- width: 240 - 48 * r,
200
- height: 240 - 48 * r,
201
- fill: e.color(o[r] ?? r)
202
- }));
203
- }
204
- function O(e, t, n, r) {
205
- let i = Math.hypot(e.w, e.h), a = [], o = -i, s = 0;
206
- for (; o < i;) {
207
- let t = n[s % n.length] ?? f;
208
- a.push(x("rect", {
209
- x: b(o),
210
- y: b(-i),
211
- width: t,
212
- height: b(i * 2),
213
- fill: e.color(s + r)
214
- })), o += t, s += 1;
215
- }
216
- return x("g", { transform: `translate(${e.w / 2} ${e.h / 2}) rotate(${t})` }, a);
217
- }
218
- function k(e) {
219
- let t = [
220
- 0,
221
- 90,
222
- 45,
223
- -45,
224
- 30,
225
- -60
226
- ][e.int(0, 5)] ?? 0, n = Array.from({ length: e.int(5, 9) }, () => f / 2 * e.int(1, 5)), r = e.id("disc"), i = f * e.int(2, 3) + f / 2, a = f * e.int(Math.ceil((p.rx + i) / f), e.cols - 2), o = f * e.int(3, e.rows - 3);
227
- return [
228
- x("defs", {}, [x("clipPath", { id: r }, [x("circle", {
229
- cx: a,
230
- cy: o,
231
- r: i
232
- })])]),
233
- w(e, [O(e, t, n, 0)]),
234
- x("g", { clipPath: `url(#${r})` }, [x("rect", {
235
- width: e.w,
236
- height: e.h,
237
- fill: e.ground
238
- }), O(e, t + 90, n, 1)])
239
- ];
240
- }
241
- function A(e) {
242
- let t = [], n = e.int(14, 18), r = f * 2.5, i = (e.h - f - r) / (n - 1), a = e.w * e.between(.58, .74), o = e.w * e.between(.09, .14), s = e.chance(.6) ? e.int(2, n - 3) : -1;
243
- for (let c = 0; c < n; c++) {
244
- let n = r + c * i, l = Array.from({ length: e.int(3, 5) }, () => ({
245
- x: a + e.between(-1.2, 1.2) * o,
246
- h: e.between(.3, 1),
247
- s: e.between(9, 22)
248
- })), u = [e.between(0, 6.28), e.between(0, 6.28)], d = Math.max(f, Math.ceil((C(e, n) + f / 2) / 4) * 4), p = [];
249
- for (let t = d; t <= e.w - f; t += 4) {
250
- let e = Math.exp(-((t - a) ** 2) / (2 * o * o)), n = 0;
251
- for (let e of l) n += e.h * Math.exp(-((t - e.x) ** 2) / (2 * e.s * e.s));
252
- let r = Math.sin(t * .21 + (u[0] ?? 0)) * .6 + Math.sin(t * .53 + (u[1] ?? 0)) * .4;
253
- p.push([t, n * e + r * .04 * (.15 + e)]);
254
- }
255
- let m = Math.max(...p.map(([, e]) => e), .001), h = Math.min(i * e.between(2.4, 4.4), n - f), g = `M${p.map(([e, t]) => `${e} ${b(n - t / m * h)}`).join("L")}`;
256
- t.push(x("path", {
257
- d: `${g}L${e.w - f} ${b(n + i)}L${d} ${b(n + i)}Z`,
258
- fill: e.ground
259
- })), t.push(x("path", {
260
- d: g,
261
- fill: "none",
262
- stroke: c === s ? e.color(1) : e.color(0),
263
- strokeWidth: 2,
264
- strokeLinejoin: "round",
265
- strokeLinecap: "round"
266
- }));
267
- }
268
- return t;
269
- }
270
- function j(e) {
271
- let t = b(80 * e.between(.2, .3)), n = e.chance(.5), r = [], i = Math.ceil(e.w / 80), a = Math.ceil(e.h / 80);
272
- for (let t = 0; t < i; t++) for (let n = 0; n < a; n++) {
273
- let i = t * 80, a = e.h - (n + 1) * 80;
274
- if (S(e, i, a + 80)) continue;
275
- let o = e.chance(.5) ? `M${i + 40} ${a}A40 40 0 0 1 ${i} ${a + 40}M${i + 80} ${a + 40}A40 40 0 0 0 ${i + 40} ${a + 80}` : `M${i + 40} ${a}A40 40 0 0 0 ${i + 80} ${a + 40}M${i} ${a + 40}A40 40 0 0 1 ${i + 40} ${a + 80}`;
276
- r.push(x("path", { d: o }));
277
- }
278
- let o = [x("g", {
279
- fill: "none",
280
- stroke: e.color(0),
281
- strokeWidth: t
282
- }, r)];
283
- return n && o.push(x("g", {
284
- fill: "none",
285
- stroke: e.color(1),
286
- strokeWidth: b(t * .34)
287
- }, r)), o;
288
- }
289
- function M(e, t, n) {
290
- let r = Infinity;
291
- for (let i = 0; i <= 90; i++) {
292
- let a = i / 90 * (Math.PI / 2);
293
- r = Math.min(r, Math.hypot(t - p.rx * Math.cos(a), n - (e.h - p.ry * Math.sin(a))));
294
- }
295
- return S(e, t, n) ? 0 : r;
296
- }
297
- function N(e) {
298
- let t = [], n = e.int(2, 3), r = [
299
- [f * e.int(4, e.cols - 2), 0],
300
- [f * e.int(11, e.cols - 1), e.h],
301
- [e.w, f * e.int(2, e.rows - 2)],
302
- [e.w, 0],
303
- [e.w, e.h],
304
- [0, 0]
305
- ];
306
- for (let t = r.length - 1; t > 0; t--) {
307
- let n = Math.floor(e.next() * (t + 1));
308
- [r[t], r[n]] = [r[n] ?? [e.w, 0], r[t] ?? [e.w, 0]];
309
- }
310
- let i = 0;
311
- for (let [a, o] of r) {
312
- if (i === n) break;
313
- let r = f / 2 * e.int(1, 2), s = Math.floor((M(e, a, o) - f / 2) / r), c = Math.min(s, e.int(4, 10));
314
- if (c < 3) continue;
315
- let l = e.int(0, 3), u = e.chance(.4);
316
- for (let n = c; n >= 1; n--) t.push(x("circle", {
317
- cx: a,
318
- cy: o,
319
- r: n * r,
320
- fill: n === 1 && u ? e.ground : e.color(n + l)
321
- }));
322
- i += 1;
323
- }
324
- return t;
325
- }
326
- var P = 2.399963229728653;
327
- function F(e) {
328
- let t = [], n = e.w - e.h / 2 - f * e.int(0, 2), r = e.h / 2 + f * e.int(-1, 1), i = e.between(11, 14), a = [
329
- 8,
330
- 13,
331
- 21
332
- ][e.int(0, 2)] ?? 13, o = e.chance(.35), s = Math.hypot(e.w, e.h);
333
- for (let c = 1;; c++) {
334
- let l = i * Math.sqrt(c);
335
- if (l > s) break;
336
- let u = n + l * Math.cos(c * P), d = r + l * Math.sin(c * P), p = i * (.3 + .12 * Math.min(1, l / (e.h / 2)));
337
- if (u < -p || u > e.w + p || d < -p || d > e.h + p || S(e, u, d) || M(e, u, d) < p + f / 4) continue;
338
- let m = o ? Math.floor(l / (f * 1.5)) % 4 : Math.floor(c % a / a * 4);
339
- t.push(x("circle", {
340
- cx: b(u),
341
- cy: b(d),
342
- r: b(p),
343
- fill: e.color(m)
344
- }));
345
- }
346
- return t;
347
- }
348
- function I(e, t) {
349
- return t ? I(t, e % t) : e;
350
- }
351
- function L(e) {
352
- let t = [], n = e.w - e.h / 2, r = e.h / 2, i = e.h / 2 - f, a = e.int(7, 13), o = e.int(2, a - 2);
353
- for (; I(a, o) !== 1;) o = e.int(2, a - 2);
354
- let s = e.chance(.5) ? 2 : 1;
355
- for (let c = 0; c < s; c++) {
356
- let s = o * e.between(.75, 1.05), l = (a - o) / o, u = a - o + s, d = o / I(a, o), f = d * 360, p = [], m = i * (c === 0 ? 1 : e.between(.4, .55)) / u;
357
- for (let e = 0; e <= f; e++) {
358
- let t = e / f * d * Math.PI * 2, i = (a - o) * Math.cos(t) + s * Math.cos(l * t), c = (a - o) * Math.sin(t) - s * Math.sin(l * t);
359
- p.push(`${b(n + i * m)} ${b(r + c * m)}`);
360
- }
361
- let h = `M${p.join("L")}Z`;
362
- t.push(x("path", {
363
- d: h,
364
- fill: e.color(c),
365
- fillRule: "evenodd"
366
- }));
367
- }
368
- return t;
369
- }
370
- var R = {
371
- bauhaus: E,
372
- albers: D,
373
- stripes: k,
374
- waves: A,
375
- truchet: j,
376
- arcs: N,
377
- phyllotaxis: F,
378
- spiro: L
379
- }, z = (e) => c.palettes[e.palette % c.palettes.length] ?? c.palettes[0];
380
- function B(e) {
381
- return {
382
- color: c.grounds[z(e).ground].text,
383
- eyebrow: {
384
- x: f,
385
- bottom: 96
386
- },
387
- title: {
388
- x: 38,
389
- bottom: f
390
- }
391
- };
392
- }
393
- function V(e, t = {}) {
394
- let { w: n, h: r } = d[t.shape ?? "banner"], i = h(e.seed), a = (e, t) => e + i() * (t - e), o = (e, t) => Math.min(t, e + Math.floor(i() * (t - e + 1))), s = z(e), u = B(e), m = c.grounds[s.ground], g = [...s.colors];
395
- for (let e = g.length - 1; e > 0; e--) {
396
- let t = Math.floor(i() * (e + 1));
397
- [g[e], g[t]] = [g[t] ?? m.text, g[e] ?? m.text];
398
- }
399
- let _ = t.idPrefix ?? "art", v = {
400
- w: n,
401
- h: r,
402
- cols: n / f,
403
- rows: r / f,
404
- next: i,
405
- between: a,
406
- int: o,
407
- chance: (e) => i() < e,
408
- ground: m.fill,
409
- color: (e) => g[(e % g.length + g.length) % g.length] ?? m.text,
410
- id: (e) => `${_}-${e}`
411
- }, y = v.id("clear"), b = R[e.style](v), S = [];
412
- return t.eyebrow && S.push({
413
- tag: "text",
414
- attrs: {
415
- x: u.eyebrow.x,
416
- y: r - u.eyebrow.bottom,
417
- fill: u.color,
418
- fillOpacity: .7,
419
- fontSize: 16,
420
- fontWeight: 500,
421
- letterSpacing: .1,
422
- fontFamily: l.sans
423
- },
424
- text: t.eyebrow
425
- }), t.title && S.push({
426
- tag: "text",
427
- attrs: {
428
- x: u.title.x,
429
- y: r - u.title.bottom,
430
- fill: u.color,
431
- fontSize: 52,
432
- fontWeight: 600,
433
- letterSpacing: -1.5,
434
- fontFamily: l.sans
435
- },
436
- text: t.title
437
- }), x("svg", {
438
- xmlns: "http://www.w3.org/2000/svg",
439
- viewBox: `0 0 ${n} ${r}`
440
- }, [
441
- x("defs", {}, [x("mask", {
442
- id: y,
443
- maskUnits: "userSpaceOnUse",
444
- x: 0,
445
- y: 0,
446
- width: n,
447
- height: r
448
- }, [x("rect", {
449
- width: n,
450
- height: r,
451
- fill: "white"
452
- }), x("ellipse", {
453
- cx: 0,
454
- cy: r,
455
- rx: p.rx,
456
- ry: p.ry,
457
- fill: "black"
458
- })])]),
459
- x("rect", {
460
- width: n,
461
- height: r,
462
- fill: m.fill
463
- }),
464
- ...b,
465
- ...S
466
- ]);
467
- }
468
- var H = /* @__PURE__ */ new Set(["viewBox", "maskUnits"]), U = (e) => H.has(e) ? e : e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), W = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
469
- function G(e) {
470
- let t = Object.entries(e.attrs).map(([e, t]) => ` ${U(e)}="${W(String(t))}"`).join(""), n = e.text === void 0 ? (e.children ?? []).map(G).join("") : W(e.text);
471
- return n ? `<${e.tag}${t}>${n}</${e.tag}>` : `<${e.tag}${t}/>`;
472
- }
473
- //#endregion
474
- //#region src/components/release-art/release-art.tsx
475
- var K = { shape: {
476
- banner: { classes: "aspect-video" },
477
- wide: { classes: "aspect-21/9" }
478
- } }, q = { shape: "banner" };
479
- function J(e, n) {
480
- return t(e.tag, {
481
- ...e.attrs,
482
- key: n
483
- }, e.text ?? e.children?.map(J));
484
- }
485
- var Y = /* @__PURE__ */ n(function({ seed: t, label: n, art: c, src: u, title: f, eyebrow: p, shape: m = "banner", className: h }, g) {
486
- let { w: _, h: v } = d[m], [b, x] = a(null), S = `art${r().replace(/[^a-zA-Z0-9]/g, "")}`, C = c ?? y(t), w = i(() => V(C, {
487
- shape: m,
488
- idPrefix: S
489
- }), [
490
- C,
491
- m,
492
- S
493
- ]), T = B(C);
494
- return /* @__PURE__ */ s("span", {
495
- className: e("relative block w-full", h),
496
- children: [/* @__PURE__ */ s("svg", {
497
- ref: g,
498
- viewBox: `0 0 ${_} ${v}`,
499
- role: "img",
500
- "aria-label": n,
501
- preserveAspectRatio: "xMidYMid slice",
502
- className: e("block w-full overflow-hidden rounded-well", K.shape[m].classes),
503
- children: [
504
- u && b !== u ? /* @__PURE__ */ o("image", {
505
- href: u,
506
- width: _,
507
- height: v,
508
- preserveAspectRatio: "xMidYMid slice",
509
- onError: () => x(u)
510
- }) : w.children?.map(J),
511
- p && /* @__PURE__ */ o("text", {
512
- x: T.eyebrow.x,
513
- y: v - T.eyebrow.bottom,
514
- fill: T.color,
515
- fillOpacity: .7,
516
- fontSize: 16,
517
- fontWeight: 500,
518
- letterSpacing: .1,
519
- fontFamily: l.sans,
520
- children: p
521
- }),
522
- f && /* @__PURE__ */ o("text", {
523
- x: T.title.x,
524
- y: v - T.title.bottom,
525
- fill: T.color,
526
- fontSize: 52,
527
- fontWeight: 600,
528
- letterSpacing: -1.5,
529
- fontFamily: l.sans,
530
- children: f
531
- })
532
- ]
533
- }), /* @__PURE__ */ o("span", {
534
- "aria-hidden": !0,
535
- className: "pointer-events-none absolute inset-0 rounded-well shadow-ring"
536
- })]
537
- });
538
- });
539
- process.env.NODE_ENV !== "production" && (Y.displayName = "ReleaseArt");
540
- function X({ seed: e, label: t, art: n, title: r, eyebrow: i, shape: a = "banner" }) {
541
- let { w: o, h: s } = d[a], c = V(n ?? y(e), {
542
- shape: a,
543
- title: r,
544
- eyebrow: i,
545
- idPrefix: "art"
546
- });
547
- return G({
548
- ...c,
549
- attrs: {
550
- ...c.attrs,
551
- width: o * 2,
552
- height: s * 2,
553
- role: "img",
554
- ariaLabel: t
555
- }
556
- });
557
- }
558
- //#endregion
559
- export { u as a, _ as c, X as i, y as l, K as n, g as o, Y as r, v as s, q as t };
560
-
561
- //# sourceMappingURL=release-art-ZwfFQImt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-art-ZwfFQImt.js","names":["cn","RELEASE_ART_STYLES","RELEASE_ART_VIEW","U","CLEAR","hash","h","i","text","random","a","seed","t","isReleaseArtSpec","value","v","art","randomReleaseArt","pick","n","next","nextReleaseArt","recent","previous","styles","p","s","palettes","seeds","list","releaseArtFor","round","node","children","open","x","c","y","clearEdge","dy","masked","primitive","out","kind","ink","accent","fill","bauhaus","taken","key","col","row","blocked","bigs","b","size","attempt","free","j","density","albers","margin","lo","hi","x0","levels","order","l","bands","diag","rects","w","widths","offset","angle","stripes","clip","r","cx","cy","waves","lines","top","gapY","peak","spread","base","bumps","ripple","start","raw","env","fine","max","lift","line","truchet","stroke","inner","paths","cols","rows","d","clearance","best","arcs","anchors","spots","placed","band","room","count","hollow","GOLDEN","phyllotaxis","step","arms","banded","reach","tone","gcd","spiro","radius","big","small","layers","pen","k","extent","turns","steps","points","scale","STYLE","paletteOf","spec","releaseArtText","drawReleaseArt","options","between","int","palette","place","ground","colors","prefix","canvas","name","mask","drawn","font","KEEP_CAMEL","attrName","m","escapeXml","serializeArt","attrs","KAESO_RELEASE_ART_VARIANTS","KAESO_RELEASE_ART_DEFAULT_VARIANTS","toElement","createElement","ReleaseArt","shape","failed","setFailed","useState","useId","useMemo","className","label","src","eyebrow","title","releaseArtSvg"],"sources":["../../src/components/release-art/drawing.ts","../../src/components/release-art/release-art.tsx"],"sourcesContent":["import { art, font } from \"@logicplanes/kaeso-tokens\";\n\nexport const RELEASE_ART_STYLES = [\"bauhaus\", \"albers\", \"stripes\", \"waves\", \"truchet\", \"arcs\", \"phyllotaxis\", \"spiro\"] as const;\nexport type ReleaseArtStyle = (typeof RELEASE_ART_STYLES)[number];\n\nexport interface ReleaseArtSpec {\n version: 1;\n seed: number;\n style: ReleaseArtStyle;\n palette: number;\n}\n\nexport interface ArtNode {\n tag: string;\n attrs: Record<string, string | number>;\n children?: ArtNode[] | undefined;\n text?: string | undefined;\n}\n\nexport const RELEASE_ART_VIEW = { banner: { w: 640, h: 360 }, wide: { w: 840, h: 360 } } as const;\nexport type ReleaseArtShape = keyof typeof RELEASE_ART_VIEW;\n\nconst U = 40;\nconst CLEAR = { rx: U * 7.5, ry: U * 7.5 };\n\nfunction hash(text: string): number {\n let h = 2166136261;\n for (let i = 0; i < text.length; i++) {\n h ^= text.charCodeAt(i);\n h = Math.imul(h, 16777619);\n }\n return h >>> 0;\n}\n\nfunction random(seed: number): () => number {\n let a = seed >>> 0;\n return () => {\n a = (a + 0x6d2b79f5) >>> 0;\n let t = a;\n t = Math.imul(t ^ (t >>> 15), t | 1);\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61);\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nexport function isReleaseArtSpec(value: unknown): value is ReleaseArtSpec {\n if (typeof value !== \"object\" || value === null) return false;\n const v = value as Record<string, unknown>;\n return (\n v.version === 1 &&\n typeof v.seed === \"number\" &&\n Number.isInteger(v.seed) &&\n v.seed >= 0 &&\n v.seed <= 0xffffffff &&\n typeof v.style === \"string\" &&\n (RELEASE_ART_STYLES as readonly string[]).includes(v.style) &&\n typeof v.palette === \"number\" &&\n Number.isInteger(v.palette) &&\n v.palette >= 0 &&\n v.palette < art.palettes.length\n );\n}\n\nexport function randomReleaseArt(next: () => number = Math.random): ReleaseArtSpec {\n const pick = (n: number) => Math.min(n - 1, Math.floor(next() * n));\n return {\n version: 1,\n seed: Math.min(0xffffffff, Math.floor(next() * 0x100000000)),\n style: RELEASE_ART_STYLES[pick(RELEASE_ART_STYLES.length)] ?? \"bauhaus\",\n palette: pick(art.palettes.length),\n };\n}\n\nexport function nextReleaseArt(previous: readonly ReleaseArtSpec[], next: () => number = Math.random): ReleaseArtSpec {\n const recent = previous.slice(-3);\n const styles = RELEASE_ART_STYLES.filter((s) => !recent.some((p) => p.style === s));\n const palettes = art.palettes.map((_, i) => i).filter((i) => !previous.slice(-4).some((p) => p.palette === i));\n const seeds = new Set(previous.map((p) => p.seed));\n const pick = <T>(list: readonly T[]) => list[Math.min(list.length - 1, Math.floor(next() * list.length))];\n let seed = Math.min(0xffffffff, Math.floor(next() * 0x100000000));\n while (seeds.has(seed)) seed = (seed + 1) >>> 0;\n return { version: 1, seed, style: pick(styles) ?? \"bauhaus\", palette: pick(palettes) ?? 0 };\n}\n\nexport function releaseArtFor(text: string): ReleaseArtSpec {\n const seed = hash(text);\n return {\n version: 1,\n seed,\n style: RELEASE_ART_STYLES[seed % RELEASE_ART_STYLES.length] ?? \"bauhaus\",\n palette: (seed >>> 8) % art.palettes.length,\n };\n}\n\nconst round = (n: number) => Math.round(n * 100) / 100;\nconst node = (tag: string, attrs: ArtNode[\"attrs\"], children?: ArtNode[]): ArtNode => (children ? { tag, attrs, children } : { tag, attrs });\n\ninterface Canvas {\n w: number;\n h: number;\n cols: number;\n rows: number;\n next: () => number;\n between: (lo: number, hi: number) => number;\n int: (lo: number, hi: number) => number;\n chance: (p: number) => boolean;\n ground: string;\n color: (i: number) => string;\n id: (name: string) => string;\n}\n\nconst open = (c: Canvas, x: number, y: number) => (x / CLEAR.rx) ** 2 + ((c.h - y) / CLEAR.ry) ** 2 < 1;\nconst clearEdge = (c: Canvas, y: number) => {\n const dy = (c.h - y) / CLEAR.ry;\n return dy >= 1 ? 0 : CLEAR.rx * Math.sqrt(1 - dy * dy);\n};\nconst masked = (c: Canvas, children: ArtNode[]) => node(\"g\", { mask: `url(#${c.id(\"clear\")})` }, children);\n\nfunction primitive(c: Canvas, x: number, y: number, s: number, fill: string, accent: string): ArtNode[] {\n const out: ArtNode[] = [];\n const kind = c.int(0, 7);\n const t = `rotate(${c.int(0, 3) * 90} ${round(x + s / 2)} ${round(y + s / 2)})`;\n if (c.chance(0.55)) out.push(node(\"rect\", { x, y, width: s, height: s, fill }));\n const ink = out.length ? accent : fill;\n switch (kind) {\n case 0:\n out.push(node(\"path\", { d: `M${x} ${y}L${x + s} ${y}A${s} ${s} 0 0 1 ${x} ${y + s}Z`, fill: ink, transform: t }));\n break;\n case 1:\n out.push(node(\"path\", { d: `M${x} ${y + s}A${s / 2} ${s / 2} 0 0 1 ${x + s} ${y + s}Z`, fill: ink, transform: t }));\n break;\n case 2:\n out.push(node(\"circle\", { cx: x + s / 2, cy: y + s / 2, r: s / 2, fill: ink }));\n break;\n case 3:\n out.push(node(\"path\", { d: `M${x} ${y}L${x + s} ${y + s}L${x} ${y + s}Z`, fill: ink, transform: t }));\n break;\n case 4:\n out.push(node(\"circle\", { cx: x + s / 2, cy: y + s / 2, r: s / 4, fill: ink }));\n break;\n case 5:\n for (let i = 0; i < 3; i++) out.push(node(\"rect\", { x: x + (i * s) / 3, y, width: s / 6, height: s, fill: ink, transform: t }));\n break;\n case 6:\n out.push(node(\"path\", { d: `M${x} ${y}L${x + s} ${y}L${x + s / 2} ${y + s / 2}Z`, fill: ink, transform: t }));\n out.push(node(\"path\", { d: `M${x} ${y + s}L${x + s} ${y + s}L${x + s / 2} ${y + s / 2}Z`, fill: ink, transform: t }));\n break;\n default:\n out.push(node(\"path\", { d: `M${x} ${y}A${s} ${s} 0 0 1 ${x + s} ${y + s}L${x} ${y + s}Z`, fill: ink, transform: t }));\n }\n return out;\n}\n\nfunction bauhaus(c: Canvas): ArtNode[] {\n const taken = new Set<string>();\n const key = (col: number, row: number) => `${col},${row}`;\n const blocked = (col: number, row: number) => open(c, col * U, (row + 1) * U);\n const out: ArtNode[] = [];\n const bigs = c.int(2, 4);\n for (let b = 0; b < bigs; b++) {\n const size = c.int(2, 3);\n for (let attempt = 0; attempt < 20; attempt++) {\n const col = c.int(0, c.cols - size);\n const row = c.int(0, c.rows - size);\n let free = true;\n for (let i = 0; i < size && free; i++) for (let j = 0; j < size && free; j++) free = !taken.has(key(col + i, row + j)) && !blocked(col + i, row + j);\n if (!free) continue;\n for (let i = 0; i < size; i++) for (let j = 0; j < size; j++) taken.add(key(col + i, row + j));\n const a = c.int(0, 3);\n out.push(...primitive(c, col * U, row * U, size * U, c.color(a), c.color(a + c.int(1, 3))));\n break;\n }\n }\n const density = c.between(0.55, 0.85);\n for (let col = 0; col < c.cols; col++) {\n for (let row = 0; row < c.rows; row++) {\n if (taken.has(key(col, row)) || blocked(col, row) || !c.chance(density)) continue;\n const a = c.int(0, 3);\n out.push(...primitive(c, col * U, row * U, U, c.color(a), c.color(a + c.int(1, 3))));\n }\n }\n return out;\n}\n\nfunction albers(c: Canvas): ArtNode[] {\n const side = U * 6;\n const margin = (c.h - side) / 2;\n const lo = CLEAR.rx - U / 2;\n const hi = c.w - margin - side;\n const x0 = lo + Math.round((c.next() * Math.max(0, hi - lo)) / (U / 2)) * (U / 2);\n const unit = side / 20;\n const levels = c.int(3, 4);\n const order = [0, 1, 2, 3];\n for (let i = order.length - 1; i > 0; i--) {\n const j = Math.floor(c.next() * (i + 1));\n [order[i], order[j]] = [order[j] ?? j, order[i] ?? i];\n }\n return Array.from({ length: levels }, (_, l) =>\n node(\"rect\", { x: x0 + 2 * unit * l, y: margin + 3 * unit * l, width: side - 4 * unit * l, height: side - 4 * unit * l, fill: c.color(order[l] ?? l) }),\n );\n}\n\nfunction bands(c: Canvas, angle: number, widths: number[], offset: number): ArtNode {\n const diag = Math.hypot(c.w, c.h);\n const rects: ArtNode[] = [];\n let x = -diag;\n let i = 0;\n while (x < diag) {\n const w = widths[i % widths.length] ?? U;\n rects.push(node(\"rect\", { x: round(x), y: round(-diag), width: w, height: round(diag * 2), fill: c.color(i + offset) }));\n x += w;\n i += 1;\n }\n return node(\"g\", { transform: `translate(${c.w / 2} ${c.h / 2}) rotate(${angle})` }, rects);\n}\n\nfunction stripes(c: Canvas): ArtNode[] {\n const angle = [0, 90, 45, -45, 30, -60][c.int(0, 5)] ?? 0;\n const widths = Array.from({ length: c.int(5, 9) }, () => (U / 2) * c.int(1, 5));\n const clip = c.id(\"disc\");\n const r = U * c.int(2, 3) + U / 2;\n const cx = U * c.int(Math.ceil((CLEAR.rx + r) / U), c.cols - 2);\n const cy = U * c.int(3, c.rows - 3);\n return [\n node(\"defs\", {}, [node(\"clipPath\", { id: clip }, [node(\"circle\", { cx, cy, r })])]),\n masked(c, [bands(c, angle, widths, 0)]),\n node(\"g\", { clipPath: `url(#${clip})` }, [node(\"rect\", { width: c.w, height: c.h, fill: c.ground }), bands(c, angle + 90, widths, 1)]),\n ];\n}\n\nfunction waves(c: Canvas): ArtNode[] {\n const out: ArtNode[] = [];\n const lines = c.int(14, 18);\n const top = U * 2.5;\n const bottom = c.h - U;\n const gapY = (bottom - top) / (lines - 1);\n const peak = c.w * c.between(0.58, 0.74);\n const spread = c.w * c.between(0.09, 0.14);\n const accent = c.chance(0.6) ? c.int(2, lines - 3) : -1;\n for (let i = 0; i < lines; i++) {\n const base = top + i * gapY;\n const bumps = Array.from({ length: c.int(3, 5) }, () => ({ x: peak + c.between(-1.2, 1.2) * spread, h: c.between(0.3, 1), s: c.between(9, 22) }));\n const ripple = [c.between(0, 6.28), c.between(0, 6.28)];\n const start = Math.max(U, Math.ceil((clearEdge(c, base) + U / 2) / 4) * 4);\n const raw: [number, number][] = [];\n for (let x = start; x <= c.w - U; x += 4) {\n const env = Math.exp(-((x - peak) ** 2) / (2 * spread * spread));\n let y = 0;\n for (const b of bumps) y += b.h * Math.exp(-((x - b.x) ** 2) / (2 * b.s * b.s));\n const fine = Math.sin(x * 0.21 + (ripple[0] ?? 0)) * 0.6 + Math.sin(x * 0.53 + (ripple[1] ?? 0)) * 0.4;\n raw.push([x, y * env + fine * 0.04 * (0.15 + env)]);\n }\n const max = Math.max(...raw.map(([, y]) => y), 0.001);\n const lift = Math.min(gapY * c.between(2.4, 4.4), base - U);\n const line = `M${raw.map(([x, y]) => `${x} ${round(base - (y / max) * lift)}`).join(\"L\")}`;\n out.push(node(\"path\", { d: `${line}L${c.w - U} ${round(base + gapY)}L${start} ${round(base + gapY)}Z`, fill: c.ground }));\n out.push(\n node(\"path\", { d: line, fill: \"none\", stroke: i === accent ? c.color(1) : c.color(0), strokeWidth: 2, strokeLinejoin: \"round\", strokeLinecap: \"round\" }),\n );\n }\n return out;\n}\n\nfunction truchet(c: Canvas): ArtNode[] {\n const t = U * 2;\n const h = t / 2;\n const stroke = round(t * c.between(0.2, 0.3));\n const inner = c.chance(0.5);\n const paths: ArtNode[] = [];\n const cols = Math.ceil(c.w / t);\n const rows = Math.ceil(c.h / t);\n for (let col = 0; col < cols; col++) {\n for (let r = 0; r < rows; r++) {\n const x = col * t;\n const y = c.h - (r + 1) * t;\n if (open(c, x, y + t)) continue;\n const d = c.chance(0.5)\n ? `M${x + h} ${y}A${h} ${h} 0 0 1 ${x} ${y + h}M${x + t} ${y + h}A${h} ${h} 0 0 0 ${x + h} ${y + t}`\n : `M${x + h} ${y}A${h} ${h} 0 0 0 ${x + t} ${y + h}M${x} ${y + h}A${h} ${h} 0 0 1 ${x + h} ${y + t}`;\n paths.push(node(\"path\", { d }));\n }\n }\n const out = [node(\"g\", { fill: \"none\", stroke: c.color(0), strokeWidth: stroke }, paths)];\n if (inner) out.push(node(\"g\", { fill: \"none\", stroke: c.color(1), strokeWidth: round(stroke * 0.34) }, paths));\n return out;\n}\n\nfunction clearance(c: Canvas, cx: number, cy: number): number {\n let best = Infinity;\n for (let i = 0; i <= 90; i++) {\n const a = (i / 90) * (Math.PI / 2);\n best = Math.min(best, Math.hypot(cx - CLEAR.rx * Math.cos(a), cy - (c.h - CLEAR.ry * Math.sin(a))));\n }\n return open(c, cx, cy) ? 0 : best;\n}\n\nfunction arcs(c: Canvas): ArtNode[] {\n const out: ArtNode[] = [];\n const anchors = c.int(2, 3);\n const spots: [number, number][] = [\n [U * c.int(4, c.cols - 2), 0],\n [U * c.int(11, c.cols - 1), c.h],\n [c.w, U * c.int(2, c.rows - 2)],\n [c.w, 0],\n [c.w, c.h],\n [0, 0],\n ];\n for (let i = spots.length - 1; i > 0; i--) {\n const j = Math.floor(c.next() * (i + 1));\n [spots[i], spots[j]] = [spots[j] ?? [c.w, 0], spots[i] ?? [c.w, 0]];\n }\n let placed = 0;\n for (const [cx, cy] of spots) {\n if (placed === anchors) break;\n const band = (U / 2) * c.int(1, 2);\n const room = Math.floor((clearance(c, cx, cy) - U / 2) / band);\n const count = Math.min(room, c.int(4, 10));\n if (count < 3) continue;\n const offset = c.int(0, 3);\n const hollow = c.chance(0.4);\n for (let i = count; i >= 1; i--) out.push(node(\"circle\", { cx, cy, r: i * band, fill: i === 1 && hollow ? c.ground : c.color(i + offset) }));\n placed += 1;\n }\n return out;\n}\n\nconst GOLDEN = 2.399963229728653;\n\nfunction phyllotaxis(c: Canvas): ArtNode[] {\n const out: ArtNode[] = [];\n const cx = c.w - c.h / 2 - U * c.int(0, 2);\n const cy = c.h / 2 + U * c.int(-1, 1);\n const step = c.between(11, 14);\n const arms = [8, 13, 21][c.int(0, 2)] ?? 13;\n const banded = c.chance(0.35);\n const reach = Math.hypot(c.w, c.h);\n for (let i = 1; ; i++) {\n const r = step * Math.sqrt(i);\n if (r > reach) break;\n const x = cx + r * Math.cos(i * GOLDEN);\n const y = cy + r * Math.sin(i * GOLDEN);\n const size = step * (0.3 + 0.12 * Math.min(1, r / (c.h / 2)));\n if (x < -size || x > c.w + size || y < -size || y > c.h + size) continue;\n if (open(c, x, y) || clearance(c, x, y) < size + U / 4) continue;\n const tone = banded ? Math.floor(r / (U * 1.5)) % 4 : Math.floor(((i % arms) / arms) * 4);\n out.push(node(\"circle\", { cx: round(x), cy: round(y), r: round(size), fill: c.color(tone) }));\n }\n return out;\n}\n\nfunction gcd(a: number, b: number): number {\n return b ? gcd(b, a % b) : a;\n}\n\nfunction spiro(c: Canvas): ArtNode[] {\n const out: ArtNode[] = [];\n const cx = c.w - c.h / 2;\n const cy = c.h / 2;\n const radius = c.h / 2 - U;\n const big = c.int(7, 13);\n let small = c.int(2, big - 2);\n while (gcd(big, small) !== 1) small = c.int(2, big - 2);\n const layers = c.chance(0.5) ? 2 : 1;\n for (let l = 0; l < layers; l++) {\n const pen = small * c.between(0.75, 1.05);\n const k = (big - small) / small;\n const extent = big - small + pen;\n const turns = small / gcd(big, small);\n const steps = turns * 360;\n const points: string[] = [];\n const scale = (radius * (l === 0 ? 1 : c.between(0.4, 0.55))) / extent;\n for (let i = 0; i <= steps; i++) {\n const a = (i / steps) * turns * Math.PI * 2;\n const x = (big - small) * Math.cos(a) + pen * Math.cos(k * a);\n const y = (big - small) * Math.sin(a) - pen * Math.sin(k * a);\n points.push(`${round(cx + x * scale)} ${round(cy + y * scale)}`);\n }\n const d = `M${points.join(\"L\")}Z`;\n out.push(node(\"path\", { d, fill: c.color(l), fillRule: \"evenodd\" }));\n }\n return out;\n}\n\nconst STYLE = { bauhaus, albers, stripes, waves, truchet, arcs, phyllotaxis, spiro } as const;\n\nexport interface DrawOptions {\n shape?: ReleaseArtShape | undefined;\n title?: string | undefined;\n eyebrow?: string | undefined;\n idPrefix?: string | undefined;\n}\n\nconst paletteOf = (spec: ReleaseArtSpec) => art.palettes[spec.palette % art.palettes.length] ?? art.palettes[0];\n\nexport function releaseArtText(spec: ReleaseArtSpec) {\n return { color: art.grounds[paletteOf(spec).ground].text, eyebrow: { x: U, bottom: 96 }, title: { x: U - 2, bottom: U } };\n}\n\nexport function drawReleaseArt(spec: ReleaseArtSpec, options: DrawOptions = {}): ArtNode {\n const { w, h } = RELEASE_ART_VIEW[options.shape ?? \"banner\"];\n const next = random(spec.seed);\n const between = (lo: number, hi: number) => lo + next() * (hi - lo);\n const int = (lo: number, hi: number) => Math.min(hi, lo + Math.floor(next() * (hi - lo + 1)));\n const palette = paletteOf(spec);\n const place = releaseArtText(spec);\n const ground = art.grounds[palette.ground];\n const colors: string[] = [...palette.colors];\n for (let i = colors.length - 1; i > 0; i--) {\n const j = Math.floor(next() * (i + 1));\n [colors[i], colors[j]] = [colors[j] ?? ground.text, colors[i] ?? ground.text];\n }\n const prefix = options.idPrefix ?? \"art\";\n const canvas: Canvas = {\n w,\n h,\n cols: w / U,\n rows: h / U,\n next,\n between,\n int,\n chance: (p) => next() < p,\n ground: ground.fill,\n color: (i) => colors[((i % colors.length) + colors.length) % colors.length] ?? ground.text,\n id: (name) => `${prefix}-${name}`,\n };\n const mask = canvas.id(\"clear\");\n const drawn = STYLE[spec.style](canvas);\n const text: ArtNode[] = [];\n if (options.eyebrow)\n text.push({\n tag: \"text\",\n attrs: {\n x: place.eyebrow.x,\n y: h - place.eyebrow.bottom,\n fill: place.color,\n fillOpacity: 0.7,\n fontSize: 16,\n fontWeight: 500,\n letterSpacing: 0.1,\n fontFamily: font.sans,\n },\n text: options.eyebrow,\n });\n if (options.title)\n text.push({\n tag: \"text\",\n attrs: { x: place.title.x, y: h - place.title.bottom, fill: place.color, fontSize: 52, fontWeight: 600, letterSpacing: -1.5, fontFamily: font.sans },\n text: options.title,\n });\n return node(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: `0 0 ${w} ${h}` }, [\n node(\"defs\", {}, [\n node(\"mask\", { id: mask, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: w, height: h }, [\n node(\"rect\", { width: w, height: h, fill: \"white\" }),\n node(\"ellipse\", { cx: 0, cy: h, rx: CLEAR.rx, ry: CLEAR.ry, fill: \"black\" }),\n ]),\n ]),\n node(\"rect\", { width: w, height: h, fill: ground.fill }),\n ...drawn,\n ...text,\n ]);\n}\n\nconst KEEP_CAMEL = new Set([\"viewBox\", \"maskUnits\"]);\nconst attrName = (name: string) => (KEEP_CAMEL.has(name) ? name : name.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`));\nconst escapeXml = (text: string) => text.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n\nexport function serializeArt(n: ArtNode): string {\n const attrs = Object.entries(n.attrs)\n .map(([k, v]) => ` ${attrName(k)}=\"${escapeXml(String(v))}\"`)\n .join(\"\");\n const inner = n.text !== undefined ? escapeXml(n.text) : (n.children ?? []).map(serializeArt).join(\"\");\n return inner ? `<${n.tag}${attrs}>${inner}</${n.tag}>` : `<${n.tag}${attrs}/>`;\n}\n","import { createElement, forwardRef, useId, useMemo, useState, type ReactNode } from \"react\";\nimport { font } from \"@logicplanes/kaeso-tokens\";\nimport { cn } from \"../../utils/cn.js\";\nimport { drawReleaseArt, releaseArtFor, releaseArtText, serializeArt, RELEASE_ART_VIEW, type ArtNode, type ReleaseArtSpec } from \"./drawing.js\";\n\nexport { RELEASE_ART_STYLES, isReleaseArtSpec, nextReleaseArt, randomReleaseArt, releaseArtFor, type ReleaseArtSpec, type ReleaseArtStyle } from \"./drawing.js\";\n\nexport const KAESO_RELEASE_ART_VARIANTS = {\n shape: {\n banner: { classes: \"aspect-video\" },\n wide: { classes: \"aspect-21/9\" },\n },\n} as const;\nexport const KAESO_RELEASE_ART_DEFAULT_VARIANTS = { shape: \"banner\" } as const;\n\nexport interface ReleaseArtProps {\n seed: string;\n label: string;\n art?: ReleaseArtSpec | undefined;\n src?: string | undefined;\n title?: ReactNode | undefined;\n eyebrow?: ReactNode | undefined;\n shape?: keyof typeof KAESO_RELEASE_ART_VARIANTS.shape | undefined;\n className?: string | undefined;\n}\n\nfunction toElement(n: ArtNode, key: number): ReactNode {\n return createElement(n.tag, { ...n.attrs, key }, n.text ?? n.children?.map(toElement));\n}\n\nexport const ReleaseArt = /* @__PURE__ */ forwardRef<SVGSVGElement, ReleaseArtProps>(function ReleaseArt(\n { seed, label, art, src, title, eyebrow, shape = \"banner\", className },\n ref,\n) {\n const { w, h } = RELEASE_ART_VIEW[shape];\n const [failed, setFailed] = useState<string | null>(null);\n const prefix = `art${useId().replace(/[^a-zA-Z0-9]/g, \"\")}`;\n const spec = art ?? releaseArtFor(seed);\n const drawn = useMemo(() => drawReleaseArt(spec, { shape, idPrefix: prefix }), [spec, shape, prefix]);\n const text = releaseArtText(spec);\n return (\n <span className={cn(\"relative block w-full\", className)}>\n <svg\n ref={ref}\n viewBox={`0 0 ${w} ${h}`}\n role=\"img\"\n aria-label={label}\n preserveAspectRatio=\"xMidYMid slice\"\n className={cn(\"block w-full overflow-hidden rounded-well\", KAESO_RELEASE_ART_VARIANTS.shape[shape].classes)}\n >\n {src && failed !== src ? (\n <image href={src} width={w} height={h} preserveAspectRatio=\"xMidYMid slice\" onError={() => setFailed(src)} />\n ) : (\n drawn.children?.map(toElement)\n )}\n {eyebrow && (\n <text\n x={text.eyebrow.x}\n y={h - text.eyebrow.bottom}\n fill={text.color}\n fillOpacity={0.7}\n fontSize={16}\n fontWeight={500}\n letterSpacing={0.1}\n fontFamily={font.sans}\n >\n {eyebrow}\n </text>\n )}\n {title && (\n <text x={text.title.x} y={h - text.title.bottom} fill={text.color} fontSize={52} fontWeight={600} letterSpacing={-1.5} fontFamily={font.sans}>\n {title}\n </text>\n )}\n </svg>\n <span aria-hidden className=\"pointer-events-none absolute inset-0 rounded-well shadow-ring\" />\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ReleaseArt.displayName = \"ReleaseArt\";\n\nexport interface ReleaseArtSvgOptions {\n seed: string;\n label: string;\n art?: ReleaseArtSpec | undefined;\n title?: string | undefined;\n eyebrow?: string | undefined;\n shape?: keyof typeof KAESO_RELEASE_ART_VARIANTS.shape | undefined;\n}\n\nexport function releaseArtSvg({ seed, label, art, title, eyebrow, shape = \"banner\" }: ReleaseArtSvgOptions): string {\n const { w, h } = RELEASE_ART_VIEW[shape];\n const drawn = drawReleaseArt(art ?? releaseArtFor(seed), { shape, title, eyebrow, idPrefix: \"art\" });\n return serializeArt({ ...drawn, attrs: { ...drawn.attrs, width: w * 2, height: h * 2, role: \"img\", ariaLabel: label } });\n}\n"],"mappings":"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"}