@logicplanes/kaeso-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/AGENTS.md +124 -0
  2. package/CLAUDE.md +3 -0
  3. package/LICENSE +21 -0
  4. package/NOTICE.md +5 -0
  5. package/README.md +43 -0
  6. package/ai/component-guides.md +4760 -0
  7. package/ai/component-registry.json +12626 -0
  8. package/ai/component-registry.md +2950 -0
  9. package/ai/icons.md +28 -0
  10. package/ai/tokens.md +207 -0
  11. package/dist/blocks/delete-resource.js +35 -0
  12. package/dist/blocks/delete-resource.js.map +1 -0
  13. package/dist/blocks/pages.js +70 -0
  14. package/dist/blocks/pages.js.map +1 -0
  15. package/dist/blocks/resource-list.js +68 -0
  16. package/dist/blocks/resource-list.js.map +1 -0
  17. package/dist/chunks/app-frame-BBIMch8X.js +224 -0
  18. package/dist/chunks/app-frame-BBIMch8X.js.map +1 -0
  19. package/dist/chunks/arrow-focus-BcySmwwU.js +11 -0
  20. package/dist/chunks/arrow-focus-BcySmwwU.js.map +1 -0
  21. package/dist/chunks/avatar-D2nJNbtC.js +83 -0
  22. package/dist/chunks/avatar-D2nJNbtC.js.map +1 -0
  23. package/dist/chunks/badge-Dkyhs0_j.js +26 -0
  24. package/dist/chunks/badge-Dkyhs0_j.js.map +1 -0
  25. package/dist/chunks/banner-BiziJuBZ.js +85 -0
  26. package/dist/chunks/banner-BiziJuBZ.js.map +1 -0
  27. package/dist/chunks/button-BHKAE6ui.js +164 -0
  28. package/dist/chunks/button-BHKAE6ui.js.map +1 -0
  29. package/dist/chunks/calendar-B5SSTE56.js +104 -0
  30. package/dist/chunks/calendar-B5SSTE56.js.map +1 -0
  31. package/dist/chunks/checkbox-BgRdbfCE.js +124 -0
  32. package/dist/chunks/checkbox-BgRdbfCE.js.map +1 -0
  33. package/dist/chunks/cn-CidVUKMm.js +669 -0
  34. package/dist/chunks/cn-CidVUKMm.js.map +1 -0
  35. package/dist/chunks/code-DDyOlIFO.js +23 -0
  36. package/dist/chunks/code-DDyOlIFO.js.map +1 -0
  37. package/dist/chunks/code-block-BbK6E4Eo.js +273 -0
  38. package/dist/chunks/code-block-BbK6E4Eo.js.map +1 -0
  39. package/dist/chunks/collapsible-Cw_1aem5.js +87 -0
  40. package/dist/chunks/collapsible-Cw_1aem5.js.map +1 -0
  41. package/dist/chunks/combobox-D8pQk22r.js +291 -0
  42. package/dist/chunks/combobox-D8pQk22r.js.map +1 -0
  43. package/dist/chunks/context-BELWW79w.js +20 -0
  44. package/dist/chunks/context-BELWW79w.js.map +1 -0
  45. package/dist/chunks/copy-button-mAzHjYXq.js +109 -0
  46. package/dist/chunks/copy-button-mAzHjYXq.js.map +1 -0
  47. package/dist/chunks/core-Bgefcs3z.js +467 -0
  48. package/dist/chunks/core-Bgefcs3z.js.map +1 -0
  49. package/dist/chunks/date-popup-Er1oQwtU.js +35 -0
  50. package/dist/chunks/date-popup-Er1oQwtU.js.map +1 -0
  51. package/dist/chunks/de-BCg1eRVd.js +384 -0
  52. package/dist/chunks/de-BCg1eRVd.js.map +1 -0
  53. package/dist/chunks/dev-CR1p7gCm.js +30 -0
  54. package/dist/chunks/dev-CR1p7gCm.js.map +1 -0
  55. package/dist/chunks/dialog-CVqSVk3T.js +283 -0
  56. package/dist/chunks/dialog-CVqSVk3T.js.map +1 -0
  57. package/dist/chunks/empty-DIbBpytW.js +38 -0
  58. package/dist/chunks/empty-DIbBpytW.js.map +1 -0
  59. package/dist/chunks/field-d8V94bvZ.js +119 -0
  60. package/dist/chunks/field-d8V94bvZ.js.map +1 -0
  61. package/dist/chunks/field-press-DwzBFafd.js +10 -0
  62. package/dist/chunks/field-press-DwzBFafd.js.map +1 -0
  63. package/dist/chunks/i18n-0RW0IAf3.js +10 -0
  64. package/dist/chunks/i18n-0RW0IAf3.js.map +1 -0
  65. package/dist/chunks/icon-Bha63LaN.js +90 -0
  66. package/dist/chunks/icon-Bha63LaN.js.map +1 -0
  67. package/dist/chunks/icon-CeNQtobn.js +47 -0
  68. package/dist/chunks/icon-CeNQtobn.js.map +1 -0
  69. package/dist/chunks/icon-button-Bw67oKtx.js +50 -0
  70. package/dist/chunks/icon-button-Bw67oKtx.js.map +1 -0
  71. package/dist/chunks/identity-DQinp-Ep.js +342 -0
  72. package/dist/chunks/identity-DQinp-Ep.js.map +1 -0
  73. package/dist/chunks/input-Biakz6GB.js +114 -0
  74. package/dist/chunks/input-Biakz6GB.js.map +1 -0
  75. package/dist/chunks/input-group-DQqEPFj_.js +87 -0
  76. package/dist/chunks/input-group-DQqEPFj_.js.map +1 -0
  77. package/dist/chunks/inset-BLMdxX4I.js +18 -0
  78. package/dist/chunks/inset-BLMdxX4I.js.map +1 -0
  79. package/dist/chunks/iso-field-CznqNVrH.js +31 -0
  80. package/dist/chunks/iso-field-CznqNVrH.js.map +1 -0
  81. package/dist/chunks/json-view-B6KHIWzh.js +174 -0
  82. package/dist/chunks/json-view-B6KHIWzh.js.map +1 -0
  83. package/dist/chunks/kbd-CBcBDvqU.js +132 -0
  84. package/dist/chunks/kbd-CBcBDvqU.js.map +1 -0
  85. package/dist/chunks/labelled-D5udSPUI.js +16 -0
  86. package/dist/chunks/labelled-D5udSPUI.js.map +1 -0
  87. package/dist/chunks/link-provider---9JdxTg.js +27 -0
  88. package/dist/chunks/link-provider---9JdxTg.js.map +1 -0
  89. package/dist/chunks/link-tTapNTpM.js +47 -0
  90. package/dist/chunks/link-tTapNTpM.js.map +1 -0
  91. package/dist/chunks/list-CN8pO8lv.js +475 -0
  92. package/dist/chunks/list-CN8pO8lv.js.map +1 -0
  93. package/dist/chunks/loader-CUehxvSZ.js +57 -0
  94. package/dist/chunks/loader-CUehxvSZ.js.map +1 -0
  95. package/dist/chunks/logo-VmXYhIJL.js +149 -0
  96. package/dist/chunks/logo-VmXYhIJL.js.map +1 -0
  97. package/dist/chunks/markdown-C-iJsYnd.js +313 -0
  98. package/dist/chunks/markdown-C-iJsYnd.js.map +1 -0
  99. package/dist/chunks/menu-OURWt_hD.js +447 -0
  100. package/dist/chunks/menu-OURWt_hD.js.map +1 -0
  101. package/dist/chunks/message-BxTkh1oA.js +49 -0
  102. package/dist/chunks/message-BxTkh1oA.js.map +1 -0
  103. package/dist/chunks/meter-DWhyzFGQ.js +84 -0
  104. package/dist/chunks/meter-DWhyzFGQ.js.map +1 -0
  105. package/dist/chunks/page-header-BIRswR73.js +41 -0
  106. package/dist/chunks/page-header-BIRswR73.js.map +1 -0
  107. package/dist/chunks/pagination-DYdLm18-.js +85 -0
  108. package/dist/chunks/pagination-DYdLm18-.js.map +1 -0
  109. package/dist/chunks/popover-BE7VO-a4.js +50 -0
  110. package/dist/chunks/popover-BE7VO-a4.js.map +1 -0
  111. package/dist/chunks/popover-root-D3q89WNF.js +26 -0
  112. package/dist/chunks/popover-root-D3q89WNF.js.map +1 -0
  113. package/dist/chunks/portal-context-BBbzDKmY.js +33 -0
  114. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -0
  115. package/dist/chunks/radio-CUxbLCvD.js +110 -0
  116. package/dist/chunks/radio-CUxbLCvD.js.map +1 -0
  117. package/dist/chunks/range-popup-AbRzgHtY.js +111 -0
  118. package/dist/chunks/range-popup-AbRzgHtY.js.map +1 -0
  119. package/dist/chunks/restore-focus-Cap1Q-R3.js +19 -0
  120. package/dist/chunks/restore-focus-Cap1Q-R3.js.map +1 -0
  121. package/dist/chunks/rights-CXo7zEf6.js +279 -0
  122. package/dist/chunks/rights-CXo7zEf6.js.map +1 -0
  123. package/dist/chunks/safe-href-G5DBNVwm.js +13 -0
  124. package/dist/chunks/safe-href-G5DBNVwm.js.map +1 -0
  125. package/dist/chunks/scroll-parent-WXvzQcUo.js +14 -0
  126. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +1 -0
  127. package/dist/chunks/section-XStLtXKa.js +87 -0
  128. package/dist/chunks/section-XStLtXKa.js.map +1 -0
  129. package/dist/chunks/segmented-CDTx2n29.js +113 -0
  130. package/dist/chunks/segmented-CDTx2n29.js.map +1 -0
  131. package/dist/chunks/select-Ca3HGsN1.js +223 -0
  132. package/dist/chunks/select-Ca3HGsN1.js.map +1 -0
  133. package/dist/chunks/separator-D5AzVFTS.js +45 -0
  134. package/dist/chunks/separator-D5AzVFTS.js.map +1 -0
  135. package/dist/chunks/sidebar-C4fL_KMm.js +599 -0
  136. package/dist/chunks/sidebar-C4fL_KMm.js.map +1 -0
  137. package/dist/chunks/sidebar-menu-sd9vCpDy.js +33 -0
  138. package/dist/chunks/sidebar-menu-sd9vCpDy.js.map +1 -0
  139. package/dist/chunks/skeleton-kfuqdl1a.js +36 -0
  140. package/dist/chunks/skeleton-kfuqdl1a.js.map +1 -0
  141. package/dist/chunks/slider-DbhjJ3ML.js +57 -0
  142. package/dist/chunks/slider-DbhjJ3ML.js.map +1 -0
  143. package/dist/chunks/status-dot-CBoQpyL4.js +25 -0
  144. package/dist/chunks/status-dot-CBoQpyL4.js.map +1 -0
  145. package/dist/chunks/styles-Btvg2DCf.js +21 -0
  146. package/dist/chunks/styles-Btvg2DCf.js.map +1 -0
  147. package/dist/chunks/swap-text-BhPI8DOf.js +28 -0
  148. package/dist/chunks/swap-text-BhPI8DOf.js.map +1 -0
  149. package/dist/chunks/switch-CztLhA8F.js +59 -0
  150. package/dist/chunks/switch-CztLhA8F.js.map +1 -0
  151. package/dist/chunks/table-DYKa86af.js +67 -0
  152. package/dist/chunks/table-DYKa86af.js.map +1 -0
  153. package/dist/chunks/tag-BsmQ1xPj.js +87 -0
  154. package/dist/chunks/tag-BsmQ1xPj.js.map +1 -0
  155. package/dist/chunks/text-BPglS3vq.js +63 -0
  156. package/dist/chunks/text-BPglS3vq.js.map +1 -0
  157. package/dist/chunks/textarea-Bvk7N2bh.js +156 -0
  158. package/dist/chunks/textarea-Bvk7N2bh.js.map +1 -0
  159. package/dist/chunks/theme-provider-mgUaQK7L.js +69 -0
  160. package/dist/chunks/theme-provider-mgUaQK7L.js.map +1 -0
  161. package/dist/chunks/tone-CWpsHPb6.js +11 -0
  162. package/dist/chunks/tone-CWpsHPb6.js.map +1 -0
  163. package/dist/chunks/toolbar-Dw3uxpsE.js +36 -0
  164. package/dist/chunks/toolbar-Dw3uxpsE.js.map +1 -0
  165. package/dist/chunks/tooltip-CDu00nzg.js +124 -0
  166. package/dist/chunks/tooltip-CDu00nzg.js.map +1 -0
  167. package/dist/chunks/tooltip-root-DWhtAtFb.js +60 -0
  168. package/dist/chunks/tooltip-root-DWhtAtFb.js.map +1 -0
  169. package/dist/chunks/use-controllable-B5Fd12Bx.js +13 -0
  170. package/dist/chunks/use-controllable-B5Fd12Bx.js.map +1 -0
  171. package/dist/chunks/use-copy-Dm2ncvMX.js +24 -0
  172. package/dist/chunks/use-copy-Dm2ncvMX.js.map +1 -0
  173. package/dist/chunks/use-layout-width-DZaLOQMT.js +27 -0
  174. package/dist/chunks/use-layout-width-DZaLOQMT.js.map +1 -0
  175. package/dist/chunks/use-scroll-margin-DWcfIXac.js +25 -0
  176. package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +1 -0
  177. package/dist/chunks/use-truncated-DmQoePvG.js +25 -0
  178. package/dist/chunks/use-truncated-DmQoePvG.js.map +1 -0
  179. package/dist/chunks/utils-CdH72WEp.js +8 -0
  180. package/dist/chunks/utils-CdH72WEp.js.map +1 -0
  181. package/dist/chunks/virtual-rows-BgMdVelU.js +37 -0
  182. package/dist/chunks/virtual-rows-BgMdVelU.js.map +1 -0
  183. package/dist/chunks/when-idle-Cy3pinqO.js +12 -0
  184. package/dist/chunks/when-idle-Cy3pinqO.js.map +1 -0
  185. package/dist/chunks/zh-CN-cPjO1OOo.js +384 -0
  186. package/dist/chunks/zh-CN-cPjO1OOo.js.map +1 -0
  187. package/dist/components/app-frame.js +2 -0
  188. package/dist/components/avatar.js +2 -0
  189. package/dist/components/badge.js +2 -0
  190. package/dist/components/banner.js +2 -0
  191. package/dist/components/button-group.js +69 -0
  192. package/dist/components/button-group.js.map +1 -0
  193. package/dist/components/button.js +2 -0
  194. package/dist/components/calendar.js +2 -0
  195. package/dist/components/charts/bar.js +231 -0
  196. package/dist/components/charts/bar.js.map +1 -0
  197. package/dist/components/charts/donut.js +179 -0
  198. package/dist/components/charts/donut.js.map +1 -0
  199. package/dist/components/charts/gauge.js +70 -0
  200. package/dist/components/charts/gauge.js.map +1 -0
  201. package/dist/components/charts/heatmap.js +83 -0
  202. package/dist/components/charts/heatmap.js.map +1 -0
  203. package/dist/components/charts/sankey.js +110 -0
  204. package/dist/components/charts/sankey.js.map +1 -0
  205. package/dist/components/charts/sparkline.js +72 -0
  206. package/dist/components/charts/sparkline.js.map +1 -0
  207. package/dist/components/charts/timeseries.js +253 -0
  208. package/dist/components/charts/timeseries.js.map +1 -0
  209. package/dist/components/charts.js +10 -0
  210. package/dist/components/checkbox.js +2 -0
  211. package/dist/components/code-block.js +4 -0
  212. package/dist/components/code.js +2 -0
  213. package/dist/components/collapsible.js +2 -0
  214. package/dist/components/combobox.js +2 -0
  215. package/dist/components/command-palette.js +216 -0
  216. package/dist/components/command-palette.js.map +1 -0
  217. package/dist/components/copy-button.js +2 -0
  218. package/dist/components/data-table.js +399 -0
  219. package/dist/components/data-table.js.map +1 -0
  220. package/dist/components/date-picker.js +327 -0
  221. package/dist/components/date-picker.js.map +1 -0
  222. package/dist/components/dialog.js +178 -0
  223. package/dist/components/dialog.js.map +1 -0
  224. package/dist/components/display-options.js +112 -0
  225. package/dist/components/display-options.js.map +1 -0
  226. package/dist/components/empty.js +2 -0
  227. package/dist/components/field.js +2 -0
  228. package/dist/components/filter-chip.js +120 -0
  229. package/dist/components/filter-chip.js.map +1 -0
  230. package/dist/components/filter-row.js +35 -0
  231. package/dist/components/filter-row.js.map +1 -0
  232. package/dist/components/flow.js +111 -0
  233. package/dist/components/flow.js.map +1 -0
  234. package/dist/components/heading.js +28 -0
  235. package/dist/components/heading.js.map +1 -0
  236. package/dist/components/icon-button.js +2 -0
  237. package/dist/components/icon.js +4 -0
  238. package/dist/components/input.js +181 -0
  239. package/dist/components/input.js.map +1 -0
  240. package/dist/components/kaeso/conversation.js +204 -0
  241. package/dist/components/kaeso/conversation.js.map +1 -0
  242. package/dist/components/kaeso/identity.js +2 -0
  243. package/dist/components/kaeso/moments.js +122 -0
  244. package/dist/components/kaeso/moments.js.map +1 -0
  245. package/dist/components/kaeso/rights.js +2 -0
  246. package/dist/components/kaeso/usage.js +101 -0
  247. package/dist/components/kaeso/usage.js.map +1 -0
  248. package/dist/components/kaeso.js +186 -0
  249. package/dist/components/kaeso.js.map +1 -0
  250. package/dist/components/kbd.js +2 -0
  251. package/dist/components/key-value.js +73 -0
  252. package/dist/components/key-value.js.map +1 -0
  253. package/dist/components/label.js +26 -0
  254. package/dist/components/label.js.map +1 -0
  255. package/dist/components/layout.js +72 -0
  256. package/dist/components/layout.js.map +1 -0
  257. package/dist/components/link.js +2 -0
  258. package/dist/components/list.js +2 -0
  259. package/dist/components/loader.js +38 -0
  260. package/dist/components/loader.js.map +1 -0
  261. package/dist/components/logo.js +2 -0
  262. package/dist/components/markdown.js +4 -0
  263. package/dist/components/menu.js +4 -0
  264. package/dist/components/meter.js +2 -0
  265. package/dist/components/page-header.js +2 -0
  266. package/dist/components/pagination.js +2 -0
  267. package/dist/components/playground.js +813 -0
  268. package/dist/components/playground.js.map +1 -0
  269. package/dist/components/popover.js +53 -0
  270. package/dist/components/popover.js.map +1 -0
  271. package/dist/components/portal.js +15 -0
  272. package/dist/components/portal.js.map +1 -0
  273. package/dist/components/qr-code.js +38 -0
  274. package/dist/components/qr-code.js.map +1 -0
  275. package/dist/components/radio.js +2 -0
  276. package/dist/components/scroll-area.js +35 -0
  277. package/dist/components/scroll-area.js.map +1 -0
  278. package/dist/components/section.js +2 -0
  279. package/dist/components/segmented.js +2 -0
  280. package/dist/components/select.js +2 -0
  281. package/dist/components/separator.js +2 -0
  282. package/dist/components/settings.js +99 -0
  283. package/dist/components/settings.js.map +1 -0
  284. package/dist/components/sheet.js +94 -0
  285. package/dist/components/sheet.js.map +1 -0
  286. package/dist/components/sidebar.js +2 -0
  287. package/dist/components/skeleton.js +2 -0
  288. package/dist/components/slider.js +2 -0
  289. package/dist/components/stat.js +195 -0
  290. package/dist/components/stat.js.map +1 -0
  291. package/dist/components/status-dot.js +2 -0
  292. package/dist/components/surface.js +26 -0
  293. package/dist/components/surface.js.map +1 -0
  294. package/dist/components/swap-text.js +2 -0
  295. package/dist/components/switch.js +2 -0
  296. package/dist/components/table.js +2 -0
  297. package/dist/components/tabs.js +96 -0
  298. package/dist/components/tabs.js.map +1 -0
  299. package/dist/components/tag.js +2 -0
  300. package/dist/components/text.js +2 -0
  301. package/dist/components/theme-menu.js +50 -0
  302. package/dist/components/theme-menu.js.map +1 -0
  303. package/dist/components/timeline.js +58 -0
  304. package/dist/components/timeline.js.map +1 -0
  305. package/dist/components/toast.js +214 -0
  306. package/dist/components/toast.js.map +1 -0
  307. package/dist/components/toc.js +48 -0
  308. package/dist/components/toc.js.map +1 -0
  309. package/dist/components/toolbar.js +2 -0
  310. package/dist/components/tooltip.js +18 -0
  311. package/dist/components/tooltip.js.map +1 -0
  312. package/dist/components/visually-hidden.js +17 -0
  313. package/dist/components/visually-hidden.js.map +1 -0
  314. package/dist/fonts/LICENSE-GeistMono.txt +93 -0
  315. package/dist/fonts/LICENSE-Inter.txt +93 -0
  316. package/dist/fonts/geist-mono-latin-ext-wght-normal.woff2 +0 -0
  317. package/dist/fonts/geist-mono-latin-wght-normal.woff2 +0 -0
  318. package/dist/fonts/inter-latin-ext-opsz-normal.woff2 +0 -0
  319. package/dist/fonts/inter-latin-opsz-normal.woff2 +0 -0
  320. package/dist/fonts.css +40 -0
  321. package/dist/format.js +178 -0
  322. package/dist/format.js.map +1 -0
  323. package/dist/i18n-locales.js +23 -0
  324. package/dist/i18n-locales.js.map +1 -0
  325. package/dist/i18n-provider.js +30 -0
  326. package/dist/i18n-provider.js.map +1 -0
  327. package/dist/i18n.js +7 -0
  328. package/dist/index.js +153 -0
  329. package/dist/kaeso.css +1099 -0
  330. package/dist/styles.css +2 -0
  331. package/dist/tailwind.css +10 -0
  332. package/dist/theme.js +2 -0
  333. package/dist/types/blocks/delete-resource/delete-resource.d.ts +32 -0
  334. package/dist/types/blocks/delete-resource/docs.d.ts +17 -0
  335. package/dist/types/blocks/delete-resource/index.d.ts +1 -0
  336. package/dist/types/blocks/pages/docs.d.ts +42 -0
  337. package/dist/types/blocks/pages/index.d.ts +1 -0
  338. package/dist/types/blocks/pages/pages.d.ts +65 -0
  339. package/dist/types/blocks/resource-list/docs.d.ts +15 -0
  340. package/dist/types/blocks/resource-list/index.d.ts +1 -0
  341. package/dist/types/blocks/resource-list/resource-list.d.ts +36 -0
  342. package/dist/types/component-docs.d.ts +7 -0
  343. package/dist/types/components/app-frame/app-frame.d.ts +79 -0
  344. package/dist/types/components/app-frame/docs.d.ts +23 -0
  345. package/dist/types/components/app-frame/index.d.ts +1 -0
  346. package/dist/types/components/avatar/avatar.d.ts +60 -0
  347. package/dist/types/components/avatar/docs.d.ts +21 -0
  348. package/dist/types/components/avatar/index.d.ts +1 -0
  349. package/dist/types/components/badge/badge.d.ts +41 -0
  350. package/dist/types/components/badge/docs.d.ts +9 -0
  351. package/dist/types/components/badge/index.d.ts +1 -0
  352. package/dist/types/components/banner/banner.d.ts +51 -0
  353. package/dist/types/components/banner/docs.d.ts +14 -0
  354. package/dist/types/components/banner/index.d.ts +1 -0
  355. package/dist/types/components/button/button.d.ts +116 -0
  356. package/dist/types/components/button/docs.d.ts +23 -0
  357. package/dist/types/components/button/index.d.ts +1 -0
  358. package/dist/types/components/button-group/button-group.d.ts +55 -0
  359. package/dist/types/components/button-group/docs.d.ts +11 -0
  360. package/dist/types/components/button-group/index.d.ts +1 -0
  361. package/dist/types/components/calendar/calendar.d.ts +32 -0
  362. package/dist/types/components/calendar/docs.d.ts +16 -0
  363. package/dist/types/components/calendar/index.d.ts +1 -0
  364. package/dist/types/components/charts/bar.d.ts +39 -0
  365. package/dist/types/components/charts/core.d.ts +167 -0
  366. package/dist/types/components/charts/docs.d.ts +174 -0
  367. package/dist/types/components/charts/donut.d.ts +67 -0
  368. package/dist/types/components/charts/gauge.d.ts +20 -0
  369. package/dist/types/components/charts/heatmap.d.ts +24 -0
  370. package/dist/types/components/charts/index.d.ts +8 -0
  371. package/dist/types/components/charts/sankey.d.ts +29 -0
  372. package/dist/types/components/charts/sparkline.d.ts +18 -0
  373. package/dist/types/components/charts/timeseries.d.ts +47 -0
  374. package/dist/types/components/checkbox/checkbox.d.ts +53 -0
  375. package/dist/types/components/checkbox/docs.d.ts +58 -0
  376. package/dist/types/components/checkbox/index.d.ts +1 -0
  377. package/dist/types/components/code/code.d.ts +24 -0
  378. package/dist/types/components/code/docs.d.ts +8 -0
  379. package/dist/types/components/code/index.d.ts +1 -0
  380. package/dist/types/components/code-block/code-block.d.ts +37 -0
  381. package/dist/types/components/code-block/docs.d.ts +41 -0
  382. package/dist/types/components/code-block/highlighter.d.ts +23 -0
  383. package/dist/types/components/code-block/index.d.ts +4 -0
  384. package/dist/types/components/code-block/json-view.d.ts +23 -0
  385. package/dist/types/components/code-block/kaeso-theme.d.ts +66 -0
  386. package/dist/types/components/collapsible/collapsible.d.ts +39 -0
  387. package/dist/types/components/collapsible/docs.d.ts +21 -0
  388. package/dist/types/components/collapsible/index.d.ts +1 -0
  389. package/dist/types/components/combobox/combobox.d.ts +86 -0
  390. package/dist/types/components/combobox/docs.d.ts +62 -0
  391. package/dist/types/components/combobox/index.d.ts +1 -0
  392. package/dist/types/components/command-palette/command-palette.d.ts +44 -0
  393. package/dist/types/components/command-palette/docs.d.ts +17 -0
  394. package/dist/types/components/command-palette/index.d.ts +1 -0
  395. package/dist/types/components/copy-button/copy-button.d.ts +85 -0
  396. package/dist/types/components/copy-button/docs.d.ts +30 -0
  397. package/dist/types/components/copy-button/index.d.ts +1 -0
  398. package/dist/types/components/data-table/columns.d.ts +47 -0
  399. package/dist/types/components/data-table/data-table.d.ts +80 -0
  400. package/dist/types/components/data-table/docs.d.ts +32 -0
  401. package/dist/types/components/data-table/index.d.ts +3 -0
  402. package/dist/types/components/date-picker/date-picker.d.ts +55 -0
  403. package/dist/types/components/date-picker/date-popup.d.ts +9 -0
  404. package/dist/types/components/date-picker/docs.d.ts +73 -0
  405. package/dist/types/components/date-picker/index.d.ts +2 -0
  406. package/dist/types/components/date-picker/iso-field.d.ts +5 -0
  407. package/dist/types/components/date-picker/range-popup.d.ts +13 -0
  408. package/dist/types/components/date-picker/time-input.d.ts +39 -0
  409. package/dist/types/components/dialog/dialog.d.ts +118 -0
  410. package/dist/types/components/dialog/docs.d.ts +70 -0
  411. package/dist/types/components/dialog/focus.d.ts +2 -0
  412. package/dist/types/components/dialog/index.d.ts +2 -0
  413. package/dist/types/components/dialog/step-dialog.d.ts +26 -0
  414. package/dist/types/components/display-options/display-options.d.ts +55 -0
  415. package/dist/types/components/display-options/docs.d.ts +14 -0
  416. package/dist/types/components/display-options/index.d.ts +1 -0
  417. package/dist/types/components/empty/docs.d.ts +12 -0
  418. package/dist/types/components/empty/empty.d.ts +29 -0
  419. package/dist/types/components/empty/index.d.ts +1 -0
  420. package/dist/types/components/field/docs.d.ts +20 -0
  421. package/dist/types/components/field/field.d.ts +78 -0
  422. package/dist/types/components/field/index.d.ts +1 -0
  423. package/dist/types/components/filter-chip/docs.d.ts +19 -0
  424. package/dist/types/components/filter-chip/filter-chip.d.ts +37 -0
  425. package/dist/types/components/filter-chip/index.d.ts +1 -0
  426. package/dist/types/components/filter-row/docs.d.ts +11 -0
  427. package/dist/types/components/filter-row/filter-row.d.ts +23 -0
  428. package/dist/types/components/filter-row/index.d.ts +1 -0
  429. package/dist/types/components/flow/docs.d.ts +12 -0
  430. package/dist/types/components/flow/flow.d.ts +34 -0
  431. package/dist/types/components/flow/index.d.ts +1 -0
  432. package/dist/types/components/heading/docs.d.ts +10 -0
  433. package/dist/types/components/heading/heading.d.ts +30 -0
  434. package/dist/types/components/heading/index.d.ts +1 -0
  435. package/dist/types/components/icon/docs.d.ts +10 -0
  436. package/dist/types/components/icon/icon.d.ts +37 -0
  437. package/dist/types/components/icon/index.d.ts +2 -0
  438. package/dist/types/components/icon-button/docs.d.ts +17 -0
  439. package/dist/types/components/icon-button/icon-button.d.ts +75 -0
  440. package/dist/types/components/icon-button/index.d.ts +1 -0
  441. package/dist/types/components/input/decimal.d.ts +11 -0
  442. package/dist/types/components/input/docs.d.ts +149 -0
  443. package/dist/types/components/input/index.d.ts +8 -0
  444. package/dist/types/components/input/input-group.d.ts +55 -0
  445. package/dist/types/components/input/input.d.ts +45 -0
  446. package/dist/types/components/input/number-input.d.ts +28 -0
  447. package/dist/types/components/input/otp-input.d.ts +27 -0
  448. package/dist/types/components/input/sensitive-input.d.ts +21 -0
  449. package/dist/types/components/input/tag-input.d.ts +27 -0
  450. package/dist/types/components/input/textarea.d.ts +25 -0
  451. package/dist/types/components/kaeso/conversation.d.ts +58 -0
  452. package/dist/types/components/kaeso/docs.d.ts +139 -0
  453. package/dist/types/components/kaeso/effective-access.d.ts +21 -0
  454. package/dist/types/components/kaeso/identity.d.ts +70 -0
  455. package/dist/types/components/kaeso/index.d.ts +8 -0
  456. package/dist/types/components/kaeso/moments.d.ts +30 -0
  457. package/dist/types/components/kaeso/provider-marks.d.ts +1 -0
  458. package/dist/types/components/kaeso/rights-logic.d.ts +13 -0
  459. package/dist/types/components/kaeso/rights.d.ts +69 -0
  460. package/dist/types/components/kaeso/role-picker.d.ts +38 -0
  461. package/dist/types/components/kaeso/usage.d.ts +35 -0
  462. package/dist/types/components/kbd/docs.d.ts +16 -0
  463. package/dist/types/components/kbd/index.d.ts +1 -0
  464. package/dist/types/components/kbd/kbd.d.ts +31 -0
  465. package/dist/types/components/key-value/docs.d.ts +10 -0
  466. package/dist/types/components/key-value/index.d.ts +1 -0
  467. package/dist/types/components/key-value/key-value.d.ts +50 -0
  468. package/dist/types/components/label/docs.d.ts +10 -0
  469. package/dist/types/components/label/index.d.ts +1 -0
  470. package/dist/types/components/label/label.d.ts +22 -0
  471. package/dist/types/components/layout/docs.d.ts +30 -0
  472. package/dist/types/components/layout/index.d.ts +1 -0
  473. package/dist/types/components/layout/layout.d.ts +100 -0
  474. package/dist/types/components/link/docs.d.ts +11 -0
  475. package/dist/types/components/link/index.d.ts +1 -0
  476. package/dist/types/components/link/link.d.ts +27 -0
  477. package/dist/types/components/list/docs.d.ts +75 -0
  478. package/dist/types/components/list/index.d.ts +1 -0
  479. package/dist/types/components/list/list.d.ts +119 -0
  480. package/dist/types/components/list/row-checkbox.d.ts +5 -0
  481. package/dist/types/components/list/virtual-rows.d.ts +10 -0
  482. package/dist/types/components/loader/docs.d.ts +21 -0
  483. package/dist/types/components/loader/index.d.ts +2 -0
  484. package/dist/types/components/loader/loader.d.ts +35 -0
  485. package/dist/types/components/loader/status.d.ts +55 -0
  486. package/dist/types/components/logo/docs.d.ts +10 -0
  487. package/dist/types/components/logo/index.d.ts +1 -0
  488. package/dist/types/components/logo/logo.d.ts +59 -0
  489. package/dist/types/components/logo/paths.d.ts +16 -0
  490. package/dist/types/components/markdown/docs.d.ts +15 -0
  491. package/dist/types/components/markdown/index.d.ts +1 -0
  492. package/dist/types/components/markdown/markdown.d.ts +54 -0
  493. package/dist/types/components/menu/docs.d.ts +19 -0
  494. package/dist/types/components/menu/index.d.ts +2 -0
  495. package/dist/types/components/menu/menu.d.ts +213 -0
  496. package/dist/types/components/menu/styles.d.ts +7 -0
  497. package/dist/types/components/meter/docs.d.ts +23 -0
  498. package/dist/types/components/meter/index.d.ts +1 -0
  499. package/dist/types/components/meter/meter.d.ts +51 -0
  500. package/dist/types/components/page-header/docs.d.ts +12 -0
  501. package/dist/types/components/page-header/index.d.ts +1 -0
  502. package/dist/types/components/page-header/page-header.d.ts +22 -0
  503. package/dist/types/components/pagination/docs.d.ts +17 -0
  504. package/dist/types/components/pagination/index.d.ts +1 -0
  505. package/dist/types/components/pagination/pagination.d.ts +33 -0
  506. package/dist/types/components/playground/compare-grid.d.ts +41 -0
  507. package/dist/types/components/playground/composer.d.ts +40 -0
  508. package/dist/types/components/playground/docs.d.ts +141 -0
  509. package/dist/types/components/playground/index.d.ts +7 -0
  510. package/dist/types/components/playground/model-picker.d.ts +37 -0
  511. package/dist/types/components/playground/parameter-panel.d.ts +52 -0
  512. package/dist/types/components/playground/prompt-suggestions.d.ts +23 -0
  513. package/dist/types/components/playground/response-metrics.d.ts +30 -0
  514. package/dist/types/components/playground/response-view.d.ts +55 -0
  515. package/dist/types/components/popover/docs.d.ts +21 -0
  516. package/dist/types/components/popover/hover-card.d.ts +24 -0
  517. package/dist/types/components/popover/index.d.ts +2 -0
  518. package/dist/types/components/popover/popover-root.d.ts +24 -0
  519. package/dist/types/components/popover/popover.d.ts +40 -0
  520. package/dist/types/components/portal/docs.d.ts +9 -0
  521. package/dist/types/components/portal/index.d.ts +1 -0
  522. package/dist/types/components/portal/portal.d.ts +11 -0
  523. package/dist/types/components/qr-code/docs.d.ts +10 -0
  524. package/dist/types/components/qr-code/index.d.ts +1 -0
  525. package/dist/types/components/qr-code/qr-code.d.ts +22 -0
  526. package/dist/types/components/radio/docs.d.ts +42 -0
  527. package/dist/types/components/radio/index.d.ts +1 -0
  528. package/dist/types/components/radio/labelled.d.ts +13 -0
  529. package/dist/types/components/radio/radio.d.ts +51 -0
  530. package/dist/types/components/scroll-area/docs.d.ts +11 -0
  531. package/dist/types/components/scroll-area/index.d.ts +1 -0
  532. package/dist/types/components/scroll-area/scroll-area.d.ts +28 -0
  533. package/dist/types/components/section/docs.d.ts +28 -0
  534. package/dist/types/components/section/index.d.ts +1 -0
  535. package/dist/types/components/section/section.d.ts +37 -0
  536. package/dist/types/components/segmented/docs.d.ts +15 -0
  537. package/dist/types/components/segmented/index.d.ts +1 -0
  538. package/dist/types/components/segmented/segmented.d.ts +37 -0
  539. package/dist/types/components/select/docs.d.ts +32 -0
  540. package/dist/types/components/select/index.d.ts +1 -0
  541. package/dist/types/components/select/select.d.ts +82 -0
  542. package/dist/types/components/separator/docs.d.ts +10 -0
  543. package/dist/types/components/separator/index.d.ts +1 -0
  544. package/dist/types/components/separator/separator.d.ts +33 -0
  545. package/dist/types/components/settings/docs.d.ts +32 -0
  546. package/dist/types/components/settings/index.d.ts +1 -0
  547. package/dist/types/components/settings/settings.d.ts +45 -0
  548. package/dist/types/components/sheet/docs.d.ts +20 -0
  549. package/dist/types/components/sheet/index.d.ts +1 -0
  550. package/dist/types/components/sheet/sheet.d.ts +51 -0
  551. package/dist/types/components/sidebar/docs.d.ts +20 -0
  552. package/dist/types/components/sidebar/index.d.ts +1 -0
  553. package/dist/types/components/sidebar/sidebar-menu.d.ts +16 -0
  554. package/dist/types/components/sidebar/sidebar.d.ts +178 -0
  555. package/dist/types/components/skeleton/docs.d.ts +14 -0
  556. package/dist/types/components/skeleton/index.d.ts +1 -0
  557. package/dist/types/components/skeleton/skeleton.d.ts +31 -0
  558. package/dist/types/components/slider/docs.d.ts +20 -0
  559. package/dist/types/components/slider/index.d.ts +1 -0
  560. package/dist/types/components/slider/slider.d.ts +29 -0
  561. package/dist/types/components/stat/docs.d.ts +35 -0
  562. package/dist/types/components/stat/index.d.ts +1 -0
  563. package/dist/types/components/stat/stat.d.ts +68 -0
  564. package/dist/types/components/status-dot/docs.d.ts +18 -0
  565. package/dist/types/components/status-dot/index.d.ts +1 -0
  566. package/dist/types/components/status-dot/status-dot.d.ts +36 -0
  567. package/dist/types/components/surface/docs.d.ts +8 -0
  568. package/dist/types/components/surface/index.d.ts +1 -0
  569. package/dist/types/components/surface/surface.d.ts +44 -0
  570. package/dist/types/components/swap-text/docs.d.ts +10 -0
  571. package/dist/types/components/swap-text/index.d.ts +1 -0
  572. package/dist/types/components/swap-text/swap-text.d.ts +22 -0
  573. package/dist/types/components/switch/docs.d.ts +21 -0
  574. package/dist/types/components/switch/index.d.ts +1 -0
  575. package/dist/types/components/switch/switch.d.ts +39 -0
  576. package/dist/types/components/table/docs.d.ts +6 -0
  577. package/dist/types/components/table/index.d.ts +1 -0
  578. package/dist/types/components/table/table.d.ts +30 -0
  579. package/dist/types/components/tabs/docs.d.ts +22 -0
  580. package/dist/types/components/tabs/index.d.ts +1 -0
  581. package/dist/types/components/tabs/tabs.d.ts +61 -0
  582. package/dist/types/components/tag/docs.d.ts +30 -0
  583. package/dist/types/components/tag/index.d.ts +1 -0
  584. package/dist/types/components/tag/tag.d.ts +63 -0
  585. package/dist/types/components/text/docs.d.ts +15 -0
  586. package/dist/types/components/text/index.d.ts +1 -0
  587. package/dist/types/components/text/text.d.ts +111 -0
  588. package/dist/types/components/theme-menu/docs.d.ts +9 -0
  589. package/dist/types/components/theme-menu/index.d.ts +1 -0
  590. package/dist/types/components/theme-menu/theme-menu.d.ts +22 -0
  591. package/dist/types/components/timeline/docs.d.ts +8 -0
  592. package/dist/types/components/timeline/index.d.ts +1 -0
  593. package/dist/types/components/timeline/timeline.d.ts +41 -0
  594. package/dist/types/components/toast/docs.d.ts +26 -0
  595. package/dist/types/components/toast/index.d.ts +1 -0
  596. package/dist/types/components/toast/toast.d.ts +91 -0
  597. package/dist/types/components/toc/docs.d.ts +10 -0
  598. package/dist/types/components/toc/index.d.ts +1 -0
  599. package/dist/types/components/toc/toc.d.ts +27 -0
  600. package/dist/types/components/toolbar/docs.d.ts +9 -0
  601. package/dist/types/components/toolbar/index.d.ts +1 -0
  602. package/dist/types/components/toolbar/toolbar.d.ts +28 -0
  603. package/dist/types/components/tooltip/docs.d.ts +33 -0
  604. package/dist/types/components/tooltip/index.d.ts +2 -0
  605. package/dist/types/components/tooltip/tooltip-provider.d.ts +8 -0
  606. package/dist/types/components/tooltip/tooltip-root.d.ts +9 -0
  607. package/dist/types/components/tooltip/tooltip.d.ts +60 -0
  608. package/dist/types/components/tooltip/trigger-props.d.ts +23 -0
  609. package/dist/types/components/visually-hidden/docs.d.ts +6 -0
  610. package/dist/types/components/visually-hidden/index.d.ts +1 -0
  611. package/dist/types/components/visually-hidden/visually-hidden.d.ts +4 -0
  612. package/dist/types/format/index.d.ts +26 -0
  613. package/dist/types/hooks/scroll-parent.d.ts +1 -0
  614. package/dist/types/hooks/use-copy.d.ts +4 -0
  615. package/dist/types/hooks/use-indicator.d.ts +9 -0
  616. package/dist/types/hooks/use-layout-width.d.ts +3 -0
  617. package/dist/types/hooks/use-scroll-margin.d.ts +2 -0
  618. package/dist/types/hooks/use-stored-state.d.ts +1 -0
  619. package/dist/types/hooks/use-truncated.d.ts +2 -0
  620. package/dist/types/i18n/context.d.ts +11 -0
  621. package/dist/types/i18n/index.d.ts +5 -0
  622. package/dist/types/i18n/locale-names.d.ts +2 -0
  623. package/dist/types/i18n/locale-tags.d.ts +4 -0
  624. package/dist/types/i18n/locales/de.d.ts +2 -0
  625. package/dist/types/i18n/locales/en.d.ts +2 -0
  626. package/dist/types/i18n/locales/zh-CN.d.ts +2 -0
  627. package/dist/types/i18n/message.d.ts +2 -0
  628. package/dist/types/i18n/provider.d.ts +10 -0
  629. package/dist/types/icons/groups.d.ts +8 -0
  630. package/dist/types/icons/vocabulary.d.ts +413 -0
  631. package/dist/types/index.d.ts +79 -0
  632. package/dist/types/theme/index.d.ts +1 -0
  633. package/dist/types/theme/theme-provider.d.ts +22 -0
  634. package/dist/types/utils/arrow-focus.d.ts +2 -0
  635. package/dist/types/utils/cn.d.ts +370 -0
  636. package/dist/types/utils/dev.d.ts +4 -0
  637. package/dist/types/utils/field-press.d.ts +2 -0
  638. package/dist/types/utils/index.d.ts +8 -0
  639. package/dist/types/utils/inset.d.ts +6 -0
  640. package/dist/types/utils/lazy-module.d.ts +8 -0
  641. package/dist/types/utils/link-provider.d.ts +15 -0
  642. package/dist/types/utils/portal-context.d.ts +10 -0
  643. package/dist/types/utils/restore-focus.d.ts +4 -0
  644. package/dist/types/utils/safe-href.d.ts +1 -0
  645. package/dist/types/utils/tone.d.ts +2 -0
  646. package/dist/types/utils/use-controllable.d.ts +1 -0
  647. package/dist/types/utils/variants.d.ts +5 -0
  648. package/dist/types/utils/when-idle.d.ts +1 -0
  649. package/dist/utils.js +9 -0
  650. package/foundations/accessibility.md +41 -0
  651. package/foundations/color.md +40 -0
  652. package/foundations/elevation.md +23 -0
  653. package/foundations/icons.md +14 -0
  654. package/foundations/motion.md +39 -0
  655. package/foundations/psychology.md +36 -0
  656. package/foundations/shape.md +41 -0
  657. package/foundations/tokens.md +24 -0
  658. package/foundations/typography.md +35 -0
  659. package/foundations/writing.md +39 -0
  660. package/package.json +144 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meter-DWhyzFGQ.js","names":["cn","KAESO_METER_VARIANTS","KAESO_METER_DEFAULT_VARIANTS","meterColor","value","thresholds","Meter","ariaLabel","pct","now","className","label","valueLabel","leading","trailing","tone","t","caption","KAESO_PROGRESS_VARIANTS","KAESO_PROGRESS_DEFAULT_VARIANTS","Progress","indeterminate"],"sources":["../../src/components/meter/meter.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_METER_VARIANTS = {\n tone: {\n auto: { classes: \"\" },\n neutral: { classes: \"bg-fg-secondary\" },\n },\n} as const;\nexport const KAESO_METER_DEFAULT_VARIANTS = { tone: \"auto\" } as const;\n\nexport interface MeterProps {\n value: number;\n label?: ReactNode | undefined;\n valueLabel?: ReactNode | undefined;\n caption?: ReactNode | undefined;\n thresholds?: number[] | undefined;\n tone?: keyof typeof KAESO_METER_VARIANTS.tone | undefined;\n leading?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport function meterColor(value: number, thresholds: number[] = []) {\n if (value >= 1) return \"bg-danger\";\n const first = thresholds.length ? Math.min(...thresholds) : 0.8;\n return value >= first ? \"bg-warning\" : \"bg-viz-1\";\n}\n\nexport const Meter = /* @__PURE__ */ forwardRef<HTMLDivElement, MeterProps>(function Meter(\n { value, label, valueLabel, caption, thresholds = [], tone = \"auto\", leading, trailing, className, \"aria-label\": ariaLabel },\n ref,\n) {\n const pct = Math.max(0, Math.min(1, value));\n const now = Math.round(value * 100);\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-8\", className)}>\n {(label || valueLabel) && (\n <div className=\"flex items-baseline justify-between gap-12\">\n <span className=\"flex min-w-0 items-center gap-8 text-body font-medium text-fg\">\n {leading}\n <span className=\"truncate\">{label}</span>\n {trailing}\n </span>\n {valueLabel && <span className=\"shrink-0 text-body text-fg-secondary tabular\">{valueLabel}</span>}\n </div>\n )}\n <div\n role=\"meter\"\n aria-valuemin={0}\n aria-valuemax={Math.max(100, now)}\n aria-valuenow={now}\n aria-label={ariaLabel ?? (typeof label === \"string\" ? label : undefined)}\n {...(typeof valueLabel === \"string\" ? { \"aria-valuetext\": valueLabel } : {})}\n className=\"relative h-6 overflow-hidden rounded-pill bg-fill-3\"\n >\n <div\n className={cn(\"h-full rounded-pill width-motion\", tone === \"auto\" ? meterColor(value, thresholds) : KAESO_METER_VARIANTS.tone.neutral.classes)}\n style={{ width: `${pct * 100}%` }}\n />\n {thresholds.map((t) => (\n <span key={t} aria-hidden className=\"absolute top-0 h-full w-2 bg-panel\" style={{ left: `${t * 100}%` }} />\n ))}\n </div>\n {caption && <span className=\"text-caption font-medium text-fg-tertiary\">{caption}</span>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Meter.displayName = \"Meter\";\n\nexport const KAESO_PROGRESS_VARIANTS = {\n kind: {\n determinate: { classes: \"h-6 rounded-pill bg-fill-3\" },\n indeterminate: { classes: \"h-2 bg-transparent\" },\n },\n} as const;\nexport const KAESO_PROGRESS_DEFAULT_VARIANTS = { kind: \"determinate\" } as const;\n\nexport interface ProgressProps {\n value?: number | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nexport const Progress = /* @__PURE__ */ forwardRef<HTMLDivElement, ProgressProps>(function Progress({ value, className, \"aria-label\": ariaLabel }, ref) {\n const indeterminate = value === undefined;\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={100}\n {...(!indeterminate ? { \"aria-valuenow\": Math.round(value * 100) } : {})}\n className={cn(\"relative w-full overflow-hidden\", KAESO_PROGRESS_VARIANTS.kind[indeterminate ? \"indeterminate\" : \"determinate\"].classes, className)}\n >\n {indeterminate ? (\n <span className=\"absolute inset-y-0 left-0 w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary\" />\n ) : (\n <span className=\"block h-full rounded-pill bg-ink width-motion\" style={{ width: `${Math.max(0, Math.min(1, value)) * 100}%` }} />\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Progress.displayName = \"Progress\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAuB,EAClC,MAAM;CACJ,MAAM,EAAE,SAAS,GAAG;CACpB,SAAS,EAAE,SAAS,kBAAkB;AACxC,EACF,GACaC,IAA+B,EAAE,MAAM,OAAO;AAe3D,SAAgBC,EAAW,GAAe,IAAuB,CAAC,GAAG;CAGnE,OAFIC,KAAS,IAAU,cAEhBA,MADOC,EAAW,SAAS,KAAK,IAAI,GAAGA,CAAU,IAAI,MACpC,eAAe;AACzC;AAEA,IAAaC,IAAwB,kBAAuC,SAC1E,EAAE,UAAO,UAAO,eAAY,YAAS,gBAAa,CAAC,GAAG,UAAO,QAAQ,YAAS,aAAU,cAAW,cAAcC,KACjH,GACA;CACA,IAAMC,IAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGJ,CAAK,CAAC,GACpCK,IAAM,KAAK,MAAML,IAAQ,GAAG;CAClC,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWJ,EAAG,uBAAuBU,CAAS;EAA7D,UAAA;IACIC,KAASC,MACT,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACGC;MACD,kBAAC,QAAD;OAAM,WAAU;OAAY,UAAAF;MAAY,CAAA;MACvCG;KACG;IACL,CAAA,GAAAF,KAAc,kBAAC,QAAD;KAAM,WAAU;KAAgD,UAAAA;IAAiB,CAAA,CAC7F;;GAEP,kBAAC,OAAD;IACE,MAAK;IACL,iBAAe;IACf,iBAAe,KAAK,IAAI,KAAKH,CAAG;IAChC,iBAAeA;IACf,cAAYF,MAAc,OAAOI,KAAU,WAAWA,IAAQ,KAAA;IAC9D,GAAK,OAAOC,KAAe,WAAW,EAAE,kBAAkBA,EAAW,IAAI,CAAC;IAC1E,WAAU;IAPZ,UAAA,CASE,kBAAC,OAAD;KACE,WAAWZ,EAAG,oCAAoCe,MAAS,SAASZ,EAAWC,GAAOC,CAAU,IAAIJ,EAAqB,KAAK,QAAQ,OAAO;KAC7I,OAAO,EAAE,OAAO,GAAGO,IAAM,IAAI,GAAG;IACjC,CAAA,GACAH,EAAW,KAAK,MACf,kBAAC,QAAD;KAAc,eAAA;KAAY,WAAU;KAAqC,OAAO,EAAE,MAAM,GAAGW,IAAI,IAAI,GAAG;IAAI,GAA/FA,CAA+F,CAC3G,CACE;;GACJC,KAAW,kBAAC,QAAD;IAAM,WAAU;IAA6C,UAAAA;GAAc,CAAA;EACpF;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAaC,IAA0B,EACrC,MAAM;CACJ,aAAa,EAAE,SAAS,6BAA6B;CACrD,eAAe,EAAE,SAAS,qBAAqB;AACjD,EACF,GACaC,IAAkC,EAAE,MAAM,cAAc,GAQxDC,IAA2B,kBAA0C,SAAkB,EAAE,UAAO,cAAW,cAAcb,KAAa,GAAK;CACtJ,IAAMc,IAAgBjB,MAAU,KAAA;CAChC,OACE,kBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAYG;EACZ,iBAAe;EACf,iBAAe;EACf,GAAMc,IAA+D,CAAC,IAAhD,EAAE,iBAAiB,KAAK,MAAMjB,IAAQ,GAAG,EAAE;EACjE,WAAWJ,EAAG,mCAAmCkB,EAAwB,KAAKG,IAAgB,kBAAkB,cAAc,CAAC,SAASX,CAAS;EAEhJ,UAAAW,IACC,kBAAC,QAAD,EAAM,WAAU,oFAAqF,CAAA,IAErG,kBAAC,QAAD;GAAM,WAAU;GAAgD,OAAO,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGjB,CAAK,CAAC,IAAI,IAAI,GAAG;EAAI,CAAA;CAE/H,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { t } from "./icon-CeNQtobn.js";
4
+ import { c as n } from "./app-frame-BBIMch8X.js";
5
+ import { forwardRef as r } from "react";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ //#region src/components/page-header/page-header.tsx
8
+ var o = { size: { md: { classes: "min-h-52 flex-wrap gap-x-12 gap-y-8 px-24 py-10 sm:h-52 sm:flex-nowrap sm:py-0" } } }, s = { size: "md" }, c = /* @__PURE__ */ r(function({ title: r, icon: s, tabs: c, actions: l, start: u, className: d }, f) {
9
+ let p = n().embedded ? "h2" : "h1";
10
+ return /* @__PURE__ */ a("header", {
11
+ ref: f,
12
+ className: e("flex shrink-0 items-center", o.size.md.classes, d),
13
+ children: [
14
+ u,
15
+ r && /* @__PURE__ */ a(p, {
16
+ className: "flex min-w-0 items-center gap-8 text-body-lg font-semibold text-fg",
17
+ children: [s && /* @__PURE__ */ i(t, {
18
+ icon: s,
19
+ size: "sm",
20
+ className: "text-fg-secondary"
21
+ }), /* @__PURE__ */ i("span", {
22
+ className: "truncate",
23
+ children: r
24
+ })]
25
+ }),
26
+ c && /* @__PURE__ */ i("div", {
27
+ className: "order-last -ml-12 min-w-0 basis-full sm:order-none sm:ml-8 sm:basis-auto",
28
+ children: c
29
+ }),
30
+ /* @__PURE__ */ i("div", {
31
+ className: "ml-auto flex shrink-0 items-center gap-8",
32
+ children: l
33
+ })
34
+ ]
35
+ });
36
+ });
37
+ process.env.NODE_ENV !== "production" && (c.displayName = "PageHeader");
38
+ //#endregion
39
+ export { o as n, c as r, s as t };
40
+
41
+ //# sourceMappingURL=page-header-BIRswR73.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header-BIRswR73.js","names":["cn","useAppFrame","KAESO_PAGE_HEADER_VARIANTS","KAESO_PAGE_HEADER_DEFAULT_VARIANTS","PageHeader","Heading","className","start","title","icon","Icon","tabs","actions"],"sources":["../../src/components/page-header/page-header.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { useAppFrame } from \"../app-frame/app-frame.js\";\n\nexport const KAESO_PAGE_HEADER_VARIANTS = {\n size: {\n md: {\n classes: \"min-h-52 flex-wrap gap-x-12 gap-y-8 px-24 py-10 sm:h-52 sm:flex-nowrap sm:py-0\",\n },\n },\n} as const;\nexport const KAESO_PAGE_HEADER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface PageHeaderProps {\n title?: ReactNode | undefined;\n icon?: IconData | undefined;\n tabs?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n start?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const PageHeader = /* @__PURE__ */ forwardRef<HTMLElement, PageHeaderProps>(function PageHeader({ title, icon, tabs, actions, start, className }, ref) {\n const Heading = useAppFrame().embedded ? \"h2\" : \"h1\";\n return (\n <header ref={ref} className={cn(\"flex shrink-0 items-center\", KAESO_PAGE_HEADER_VARIANTS.size.md.classes, className)}>\n {start}\n {title && (\n <Heading className=\"flex min-w-0 items-center gap-8 text-body-lg font-semibold text-fg\">\n {icon && <Icon icon={icon} size=\"sm\" className=\"text-fg-secondary\" />}\n <span className=\"truncate\">{title}</span>\n </Heading>\n )}\n {tabs && <div className=\"order-last -ml-12 min-w-0 basis-full sm:order-none sm:ml-8 sm:basis-auto\">{tabs}</div>}\n <div className=\"ml-auto flex shrink-0 items-center gap-8\">{actions}</div>\n </header>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PageHeader.displayName = \"PageHeader\";\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA6B,EACxC,MAAM,EACJ,IAAI,EACF,SAAS,iFACX,EACF,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAWlDC,IAA6B,kBAAyC,SAAoB,EAAE,UAAO,SAAM,SAAM,YAAS,UAAO,gBAAa,GAAK;CAC5J,IAAMC,IAAUJ,EAAY,CAAC,CAAC,WAAW,OAAO;CAChD,OACE,kBAAC,UAAD;EAAa;EAAK,WAAWD,EAAG,8BAA8BE,EAA2B,KAAK,GAAG,SAASI,CAAS;EAAnH,UAAA;GACGC;GACAC,KACC,kBAACH,GAAD;IAAS,WAAU;IAAnB,UAAA,CACGI,KAAQ,kBAACC,GAAD;KAAY;KAAM,MAAK;KAAK,WAAU;IAAqB,CAAA,GACpE,kBAAC,QAAD;KAAM,WAAU;KAAY,UAAAF;IAAY,CAAA,CACjC;;GAEVG,KAAQ,kBAAC,OAAD;IAAK,WAAU;IAA4E,UAAAA;GAAU,CAAA;GAC9G,kBAAC,OAAD;IAAK,WAAU;IAA4C,UAAAC;GAAa,CAAA;EAClE;;AAEZ,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { i as t } from "./context-BELWW79w.js";
4
+ import { n } from "./button-BHKAE6ui.js";
5
+ import { t as r } from "./icon-button-Bw67oKtx.js";
6
+ import { forwardRef as i } from "react";
7
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
+ import { ArrowLeft01Icon as s, ArrowRight01Icon as c } from "@hugeicons/core-free-icons";
9
+ //#region src/components/pagination/pagination.tsx
10
+ var l = { variant: {
11
+ "load-more": { classes: "" },
12
+ cursor: { classes: "" },
13
+ pages: { classes: "" }
14
+ } }, u = { variant: "load-more" }, d = /* @__PURE__ */ i(function({ variant: i = "load-more", hasMore: l, hasPrevious: u, loading: d, onLoadMore: f, onNext: p, onPrevious: m, page: h = 1, pageCount: g = 1, onPageChange: _, className: v }, y) {
15
+ let b = t(), x = b("pagination.label", "Pagination"), S = b("pagination.previous", "Previous page"), C = b("pagination.next", "Next page"), w = b("pagination.loadMore", "Load more");
16
+ if (i === "load-more") return l ? /* @__PURE__ */ a("nav", {
17
+ ref: y,
18
+ "aria-label": x,
19
+ className: e("flex items-center justify-center gap-12 py-12", v),
20
+ children: /* @__PURE__ */ a(n, {
21
+ variant: "ghost",
22
+ size: "sm",
23
+ loading: d,
24
+ onClick: f,
25
+ reserveLabels: [w],
26
+ children: w
27
+ })
28
+ }) : null;
29
+ if (i === "cursor") return /* @__PURE__ */ o("nav", {
30
+ ref: y,
31
+ "aria-label": x,
32
+ className: e("flex items-center gap-8", v),
33
+ children: [/* @__PURE__ */ a(r, {
34
+ icon: s,
35
+ "aria-label": S,
36
+ variant: "secondary",
37
+ disabled: !u,
38
+ onClick: m
39
+ }), /* @__PURE__ */ a(r, {
40
+ icon: c,
41
+ "aria-label": C,
42
+ variant: "secondary",
43
+ disabled: !l,
44
+ onClick: p
45
+ })]
46
+ });
47
+ let T = Array.from({ length: g }, (e, t) => t + 1).filter((e) => e === 1 || e === g || Math.abs(e - h) <= 1);
48
+ return /* @__PURE__ */ o("nav", {
49
+ ref: y,
50
+ "aria-label": x,
51
+ className: e("flex items-center gap-4", v),
52
+ children: [
53
+ /* @__PURE__ */ a(r, {
54
+ icon: s,
55
+ "aria-label": S,
56
+ disabled: h <= 1,
57
+ onClick: () => _?.(h - 1)
58
+ }),
59
+ T.map((t, n) => /* @__PURE__ */ o("span", {
60
+ className: "flex items-center gap-4",
61
+ children: [n > 0 && t - (T[n - 1] ?? t) > 1 && /* @__PURE__ */ a("span", {
62
+ className: "w-24 text-center text-fg-tertiary",
63
+ children: "…"
64
+ }), /* @__PURE__ */ a("button", {
65
+ type: "button",
66
+ "aria-current": t === h ? "page" : void 0,
67
+ onClick: () => _?.(t),
68
+ className: e("inline-flex h-32 min-w-32 cursor-pointer items-center justify-center rounded-pill px-8 text-body font-medium tabular transition-control focus-ring", t === h ? "bg-fill-2 text-fg" : "text-fg-secondary hover:bg-fill-1 hover:text-fg"),
69
+ children: t
70
+ })]
71
+ }, t)),
72
+ /* @__PURE__ */ a(r, {
73
+ icon: c,
74
+ "aria-label": C,
75
+ disabled: h >= g,
76
+ onClick: () => _?.(h + 1)
77
+ })
78
+ ]
79
+ });
80
+ });
81
+ process.env.NODE_ENV !== "production" && (d.displayName = "Pagination");
82
+ //#endregion
83
+ export { l as n, d as r, u as t };
84
+
85
+ //# sourceMappingURL=pagination-DYdLm18-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-DYdLm18-.js","names":["__icon_ArrowLeft01Icon","__icon_ArrowRight01Icon","cn","useUiText","IconButton","KAESO_PAGINATION_VARIANTS","KAESO_PAGINATION_DEFAULT_VARIANTS","Pagination","t","label","previous","next","loadMore","variant","hasMore","className","Button","onLoadMore","ArrowLeft01Icon","hasPrevious","onPrevious","ArrowRight01Icon","onNext","pages","pageCount","i","p","page","onPageChange"],"sources":["../../src/components/pagination/pagination.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ArrowLeft01Icon as __icon_ArrowLeft01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Button } from \"../button/button.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_PAGINATION_VARIANTS = {\n variant: {\n \"load-more\": { classes: \"\" },\n cursor: { classes: \"\" },\n pages: { classes: \"\" },\n },\n} as const;\nexport const KAESO_PAGINATION_DEFAULT_VARIANTS = { variant: \"load-more\" } as const;\n\nexport interface PaginationProps {\n variant?: keyof typeof KAESO_PAGINATION_VARIANTS.variant | undefined;\n hasMore?: boolean | undefined;\n hasPrevious?: boolean | undefined;\n loading?: boolean | undefined;\n onLoadMore?: (() => void) | undefined;\n onNext?: (() => void) | undefined;\n onPrevious?: (() => void) | undefined;\n page?: number | undefined;\n pageCount?: number | undefined;\n onPageChange?: ((page: number) => void) | undefined;\n className?: string | undefined;\n}\n\nexport const Pagination = /* @__PURE__ */ forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { variant = \"load-more\", hasMore, hasPrevious, loading, onLoadMore, onNext, onPrevious, page = 1, pageCount = 1, onPageChange, className },\n ref,\n) {\n const t = useUiText();\n const label = t(\"pagination.label\", \"Pagination\");\n const previous = t(\"pagination.previous\", \"Previous page\");\n const next = t(\"pagination.next\", \"Next page\");\n const loadMore = t(\"pagination.loadMore\", \"Load more\");\n\n if (variant === \"load-more\") {\n if (!hasMore) return null;\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center justify-center gap-12 py-12\", className)}>\n <Button variant=\"ghost\" size=\"sm\" loading={loading} onClick={onLoadMore} reserveLabels={[loadMore]}>\n {loadMore}\n </Button>\n </nav>\n );\n }\n if (variant === \"cursor\") {\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-8\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} variant=\"secondary\" disabled={!hasPrevious} onClick={onPrevious} />\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} variant=\"secondary\" disabled={!hasMore} onClick={onNext} />\n </nav>\n );\n }\n const pages = Array.from({ length: pageCount }, (_, i) => i + 1).filter((p) => p === 1 || p === pageCount || Math.abs(p - page) <= 1);\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-4\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} disabled={page <= 1} onClick={() => onPageChange?.(page - 1)} />\n {pages.map((p, i) => (\n <span key={p} className=\"flex items-center gap-4\">\n {i > 0 && p - (pages[i - 1] ?? p) > 1 && <span className=\"w-24 text-center text-fg-tertiary\">…</span>}\n <button\n type=\"button\"\n aria-current={p === page ? \"page\" : undefined}\n onClick={() => onPageChange?.(p)}\n className={cn(\n \"inline-flex h-32 min-w-32 cursor-pointer items-center justify-center rounded-pill px-8 text-body font-medium tabular transition-control focus-ring\",\n p === page ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-1 hover:text-fg\",\n )}\n >\n {p}\n </button>\n </span>\n ))}\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} disabled={page >= pageCount} onClick={() => onPageChange?.(page + 1)} />\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Pagination.displayName = \"Pagination\";\n"],"mappings":";;;;;;;;;AAOA,IAAaK,IAA4B,EACvC,SAAS;CACP,aAAa,EAAE,SAAS,GAAG;CAC3B,QAAQ,EAAE,SAAS,GAAG;CACtB,OAAO,EAAE,SAAS,GAAG;AACvB,EACF,GACaC,IAAoC,EAAE,SAAS,YAAY,GAgB3DC,IAA6B,kBAAyC,SACjF,EAAE,aAAU,aAAa,YAAS,gBAAa,YAAS,eAAY,WAAQ,eAAY,UAAO,GAAG,eAAY,GAAG,iBAAc,gBAC/H,GACA;CACA,IAAMC,IAAIL,EAAU,GACdM,IAAQD,EAAE,oBAAoB,YAAY,GAC1CE,IAAWF,EAAE,uBAAuB,eAAe,GACnDG,IAAOH,EAAE,mBAAmB,WAAW,GACvCI,IAAWJ,EAAE,uBAAuB,WAAW;CAErD,IAAIK,MAAY,aAEd,OADKC,IAEH,kBAAC,OAAD;EAAU;EAAK,cAAYL;EAAO,WAAWP,EAAG,iDAAiDa,CAAS;EACxG,UAAA,kBAACC,GAAD;GAAQ,SAAQ;GAAQ,MAAK;GAAc;GAAS,SAASC;GAAY,eAAe,CAACL,CAAQ;GAC9F,UAAAA;EACK,CAAA;CACL,CAAA,IANc;CASvB,IAAIC,MAAY,UACd,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYJ;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA,CACE,kBAACX,GAAD;GAAY,MAAMJ;GAAwB,cAAYU;GAAU,SAAQ;GAAY,UAAU,CAACS;GAAa,SAASC;EAAa,CAAA,GAClI,kBAAChB,GAAD;GAAY,MAAMH;GAAyB,cAAYU;GAAM,SAAQ;GAAY,UAAU,CAACG;GAAS,SAASQ;EAAS,CAAA,CACpH;;CAGT,IAAMC,IAAQ,MAAM,KAAK,EAAE,QAAQC,EAAU,IAAI,GAAG,MAAMC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAMC,MAAM,KAAKA,MAAMF,KAAa,KAAK,IAAIE,IAAIC,CAAI,KAAK,CAAC;CACpI,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYlB;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA;GACE,kBAACX,GAAD;IAAY,MAAMJ;IAAwB,cAAYU;IAAU,UAAUiB,KAAQ;IAAG,eAAeC,IAAeD,IAAO,CAAC;GAAI,CAAA;GAC9HJ,EAAM,KAAK,GAAG,MACb,kBAAC,QAAD;IAAc,WAAU;IAAxB,UAAA,CACGE,IAAI,KAAKC,KAAKH,EAAME,IAAI,MAAMC,KAAK,KAAK,kBAAC,QAAD;KAAM,WAAU;KAAoC,UAAA;IAAO,CAAA,GACpG,kBAAC,UAAD;KACE,MAAK;KACL,gBAAcA,MAAMC,IAAO,SAAS,KAAA;KACpC,eAAeC,IAAeF,CAAC;KAC/B,WAAWxB,EACT,sJACAwB,MAAMC,IAAO,sBAAsB,iDACrC;KAEC,UAAAD;IACK,CAAA,CACJ;GAbK,GAAAA,CAaL,CACP;GACD,kBAACtB,GAAD;IAAY,MAAMH;IAAyB,cAAYU;IAAM,UAAUgB,KAAQH;IAAW,eAAeI,IAAeD,IAAO,CAAC;GAAI,CAAA;EACjI;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { n as t, r as n } from "./portal-context-BBbzDKmY.js";
4
+ import { t as r } from "./inset-BLMdxX4I.js";
5
+ import { n as i, r as a, t as o } from "./popover-root-D3q89WNF.js";
6
+ import { forwardRef as s } from "react";
7
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
8
+ import { Popover as u } from "@base-ui/react/popover";
9
+ //#region src/components/popover/popover.tsx
10
+ var d = { padding: {
11
+ form: { classes: "p-12" },
12
+ list: { classes: "p-6" },
13
+ none: { classes: "p-0" }
14
+ } }, f = { padding: "form" }, p = "z-50 rounded-popover bg-raised text-body text-fg shadow-raised outline-none popup-motion max-h-(--available-height) overflow-auto scrollbar-quiet", m = /* @__PURE__ */ s(function({ children: i, side: a = "bottom", align: o = "start", sideOffset: s = 6, padding: f = "form", title: m, className: h, "aria-label": g }, _) {
15
+ return /* @__PURE__ */ c(u.Portal, {
16
+ container: n(),
17
+ children: /* @__PURE__ */ c(u.Positioner, {
18
+ positionMethod: "fixed",
19
+ collisionBoundary: t(),
20
+ side: a,
21
+ align: o,
22
+ sideOffset: s,
23
+ collisionPadding: 8,
24
+ className: "z-50 outline-none",
25
+ children: /* @__PURE__ */ l(u.Popup, {
26
+ ref: _,
27
+ ...g ? { "aria-label": g } : {},
28
+ className: e(p, d.padding[f].classes, h),
29
+ children: [m && /* @__PURE__ */ c(u.Title, {
30
+ className: "mb-8 text-body font-semibold text-fg",
31
+ children: m
32
+ }), /* @__PURE__ */ c(r, {
33
+ inset: !1,
34
+ children: i
35
+ })]
36
+ })
37
+ })
38
+ });
39
+ });
40
+ process.env.NODE_ENV !== "production" && (m.displayName = "Popover.Content");
41
+ var h = /* @__PURE__ */ Object.assign(i, {
42
+ Trigger: a,
43
+ Content: m,
44
+ Close: o
45
+ });
46
+ process.env.NODE_ENV !== "production" && (h.displayName = "Popover");
47
+ //#endregion
48
+ export { h as i, d as n, p as r, f as t };
49
+
50
+ //# sourceMappingURL=popover-BE7VO-a4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-BE7VO-a4.js","names":["BasePopover","Popover","cn","pageBoundary","usePortalContainer","InsetContent","PopoverRoot","PopoverTrigger","PopoverClose","KAESO_POPOVER_VARIANTS","KAESO_POPOVER_DEFAULT_VARIANTS","POPOVER_POPUP","Content","ariaLabel","Popover","padding","className","title","Popover$1"],"sources":["../../src/components/popover/popover.tsx"],"sourcesContent":["import { InsetContent } from \"../../utils/inset.js\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\nimport { cn } from \"../../utils/cn.js\";\nimport { PopoverClose, PopoverRoot, PopoverTrigger } from \"./popover-root.js\";\n\nexport type { PopoverProps } from \"./popover-root.js\";\n\nexport const KAESO_POPOVER_VARIANTS = {\n padding: {\n form: { classes: \"p-12\" },\n list: { classes: \"p-6\" },\n none: { classes: \"p-0\" },\n },\n} as const;\nexport const KAESO_POPOVER_DEFAULT_VARIANTS = { padding: \"form\" } as const;\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\nexport const POPOVER_POPUP =\n \"z-50 rounded-popover bg-raised text-body text-fg shadow-raised outline-none popup-motion max-h-(--available-height) overflow-auto scrollbar-quiet\";\n\nexport interface PopoverContentProps {\n children: ReactNode;\n side?: Side | undefined;\n align?: Align | undefined;\n sideOffset?: number | undefined;\n padding?: keyof typeof KAESO_POPOVER_VARIANTS.padding | undefined;\n title?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nconst Content = /* @__PURE__ */ forwardRef<HTMLDivElement, PopoverContentProps>(function PopoverContent(\n { children, side = \"bottom\", align = \"start\", sideOffset = 6, padding = \"form\", title, className, \"aria-label\": ariaLabel },\n ref,\n) {\n return (\n <BasePopover.Portal container={usePortalContainer()}>\n <BasePopover.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side={side}\n align={align}\n sideOffset={sideOffset}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BasePopover.Popup\n ref={ref}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n className={cn(POPOVER_POPUP, KAESO_POPOVER_VARIANTS.padding[padding].classes, className)}\n >\n {title && <BasePopover.Title className=\"mb-8 text-body font-semibold text-fg\">{title}</BasePopover.Title>}\n <InsetContent inset={false}>{children}</InsetContent>\n </BasePopover.Popup>\n </BasePopover.Positioner>\n </BasePopover.Portal>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Content.displayName = \"Popover.Content\";\n\nexport const Popover = /* @__PURE__ */ Object.assign(PopoverRoot, { Trigger: PopoverTrigger, Content, Close: PopoverClose });\nif (process.env.NODE_ENV !== \"production\") Popover.displayName = \"Popover\";\n"],"mappings":";;;;;;;;;AASA,IAAaS,IAAyB,EACpC,SAAS;CACP,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,EAAE,SAAS,MAAM;CACvB,MAAM,EAAE,SAAS,MAAM;AACzB,EACF,GACaC,IAAiC,EAAE,SAAS,OAAO,GAKnDC,IACX,qJAaIC,IAA0B,kBAAgD,SAC9E,EAAE,aAAU,UAAO,UAAU,WAAQ,SAAS,gBAAa,GAAG,aAAU,QAAQ,UAAO,cAAW,cAAcC,KAChH,GACA;CACA,OACE,kBAACb,EAAY,QAAb;EAAoB,WAAWI,EAAmB;EAChD,UAAA,kBAACJ,EAAY,YAAb;GACE,gBAAe;GACf,mBAAmBG,EAAa;GAC1B;GACC;GACK;GACZ,kBAAkB;GAClB,WAAU;GAEV,UAAA,kBAACH,EAAY,OAAb;IACO;IACL,GAAKa,IAAY,EAAE,cAAcA,EAAU,IAAI,CAAC;IAChD,WAAWX,EAAGS,GAAeF,EAAuB,QAAQM,EAAQ,CAAC,SAASC,CAAS;IAHzF,UAAA,CAKGC,KAAS,kBAACjB,EAAY,OAAb;KAAmB,WAAU;KAAwC,UAAAiB;IAAyB,CAAA,GACxG,kBAACZ,GAAD;KAAc,OAAO;KAAQ;IAAuB,CAAA,CACnC;;EACG,CAAA;CACN,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAEjE,IAAaJ,IAA0B,uBAAO,OAAOK,GAAa;CAAE,SAASC;CAAgB;CAAS,OAAOC;AAAa,CAAC;AAC3H,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ import { Popover as t } from "@base-ui/react/popover";
4
+ //#region src/components/popover/popover-root.tsx
5
+ function n({ open: n, defaultOpen: r, onOpenChange: i, trapFocus: a, children: o }) {
6
+ return /* @__PURE__ */ e(t.Root, {
7
+ ...n === void 0 ? {} : { open: n },
8
+ ...r === void 0 ? {} : { defaultOpen: r },
9
+ ...i ? { onOpenChange: (e) => i(e) } : {},
10
+ modal: a ? "trap-focus" : !1,
11
+ children: o
12
+ });
13
+ }
14
+ process.env.NODE_ENV !== "production" && (n.displayName = "Popover");
15
+ function r({ children: n }) {
16
+ return /* @__PURE__ */ e(t.Trigger, { render: n });
17
+ }
18
+ process.env.NODE_ENV !== "production" && (r.displayName = "Popover.Trigger");
19
+ function i({ children: n }) {
20
+ return /* @__PURE__ */ e(t.Close, { render: n });
21
+ }
22
+ process.env.NODE_ENV !== "production" && (i.displayName = "Popover.Close");
23
+ //#endregion
24
+ export { n, r, i as t };
25
+
26
+ //# sourceMappingURL=popover-root-D3q89WNF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-root-D3q89WNF.js","names":["BasePopover","PopoverRoot","Popover","open","defaultOpen","onOpenChange","o","trapFocus","PopoverTrigger","children","PopoverClose"],"sources":["../../src/components/popover/popover-root.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\n\nexport interface PopoverProps {\n children: ReactNode;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trapFocus?: boolean | undefined;\n}\n\nexport function PopoverRoot({ open, defaultOpen, onOpenChange, trapFocus, children }: PopoverProps) {\n return (\n <BasePopover.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n modal={trapFocus ? \"trap-focus\" : false}\n >\n {children}\n </BasePopover.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PopoverRoot.displayName = \"Popover\";\n\nexport function PopoverTrigger({ children }: { children: ReactElement }) {\n return <BasePopover.Trigger render={children} />;\n}\nif (process.env.NODE_ENV !== \"production\") PopoverTrigger.displayName = \"Popover.Trigger\";\n\nexport function PopoverClose({ children }: { children: ReactElement }) {\n return <BasePopover.Close render={children} />;\n}\nif (process.env.NODE_ENV !== \"production\") PopoverClose.displayName = \"Popover.Close\";\n"],"mappings":";;;;AAWA,SAAgBC,EAAY,EAAE,SAAM,gBAAa,iBAAc,cAAW,eAA0B;CAClG,OACE,kBAACD,EAAY,MAAb;EACE,GAAKG,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,GAAKC,IAAe,EAAE,eAAe,MAAeA,EAAaC,CAAC,EAAE,IAAI,CAAC;EACzE,OAAOC,IAAY,eAAe;EAEjC;CACe,CAAA;AAEtB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,SAAgBC,EAAe,EAAE,eAAwC;CACvE,OAAO,kBAACR,EAAY,SAAb,EAAqB,QAAQS,EAAW,CAAA;AACjD;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc;AAExE,SAAgBC,EAAa,EAAE,eAAwC;CACrE,OAAO,kBAACV,EAAY,OAAb,EAAmB,QAAQS,EAAW,CAAA;AAC/C;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAa,cAAc"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { createContext as e, use as t, useCallback as n, useState as r } from "react";
3
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ //#region src/utils/portal-context.tsx
5
+ var o = /* @__PURE__ */ e(null);
6
+ function s({ children: e, className: t }) {
7
+ let [s] = r(() => {
8
+ if (typeof document > "u") return null;
9
+ let e = document.createElement("div");
10
+ return e.setAttribute("data-portal-container", ""), e;
11
+ }), c = n((e) => {
12
+ e && s && s.parentNode !== e && e.appendChild(s);
13
+ }, [s]);
14
+ return /* @__PURE__ */ a(o.Provider, {
15
+ value: s,
16
+ children: [e, /* @__PURE__ */ i("div", {
17
+ ref: c,
18
+ className: t ?? "absolute top-0 left-0 size-0",
19
+ "data-portal-host": ""
20
+ })]
21
+ });
22
+ }
23
+ process.env.NODE_ENV !== "production" && (s.displayName = "PortalContainer");
24
+ function c() {
25
+ return t(o) ?? void 0;
26
+ }
27
+ function l() {
28
+ return typeof document > "u" ? "clipping-ancestors" : document.documentElement;
29
+ }
30
+ //#endregion
31
+ export { l as n, c as r, s as t };
32
+
33
+ //# sourceMappingURL=portal-context-BBbzDKmY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-context-BBbzDKmY.js","names":["PortalCtx","PortalContainer","el","useState","node","attach","useCallback","host","children","className","usePortalContainer","use","pageBoundary"],"sources":["../../src/utils/portal-context.tsx"],"sourcesContent":["import { createContext, use, useCallback, useState, type ReactNode } from \"react\";\n\nconst PortalCtx = /* @__PURE__ */ createContext<HTMLElement | null>(null);\n\nexport function PortalContainer({ children, className }: { children: ReactNode; className?: string }) {\n const [el] = useState<HTMLDivElement | null>(() => {\n if (typeof document === \"undefined\") return null;\n const node = document.createElement(\"div\");\n node.setAttribute(\"data-portal-container\", \"\");\n return node;\n });\n const attach = useCallback(\n (host: HTMLDivElement | null) => {\n if (host && el && el.parentNode !== host) host.appendChild(el);\n },\n [el],\n );\n return (\n <PortalCtx.Provider value={el}>\n {children}\n <div ref={attach} className={className ?? \"absolute top-0 left-0 size-0\"} data-portal-host=\"\" />\n </PortalCtx.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PortalContainer.displayName = \"PortalContainer\";\n\nexport function usePortalContainer(): HTMLElement | undefined {\n return use(PortalCtx) ?? undefined;\n}\n\nexport function pageBoundary(): Element | \"clipping-ancestors\" {\n return typeof document === \"undefined\" ? \"clipping-ancestors\" : document.documentElement;\n}\n"],"mappings":";;;;AAEA,IAAMA,IAA4B,kBAAkC,IAAI;AAExE,SAAgBC,EAAgB,EAAE,aAAU,gBAA0D;CACpG,IAAM,CAACC,KAAMC,QAAsC;EACjD,IAAI,OAAO,WAAa,KAAa,OAAO;EAC5C,IAAMC,IAAO,SAAS,cAAc,KAAK;EAEzC,OADAA,EAAK,aAAa,yBAAyB,EAAE,GACtCA;CACT,CAAC,GACKC,IAASC,GACZ,MAAgC;EAC/B,AAAIC,KAAQL,KAAMA,EAAG,eAAeK,KAAMA,EAAK,YAAYL,CAAE;CAC/D,GACA,CAACA,CAAE,CACL;CACA,OACE,kBAACF,EAAU,UAAX;EAAoB,OAAOE;EAA3B,UAAA,CACGM,GACD,kBAAC,OAAD;GAAK,KAAKH;GAAQ,WAAWI,KAAa;GAAgC,oBAAiB;EAAI,CAAA,CAC7E;;AAExB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc;AAEzE,SAAgBC,IAA8C;CAC5D,OAAOC,EAAIX,CAAS,KAAK,KAAA;AAC3B;AAEA,SAAgBY,IAA+C;CAC7D,OAAO,OAAO,WAAa,MAAc,uBAAuB,SAAS;AAC3E"}
@@ -0,0 +1,110 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { t } from "./labelled-D5udSPUI.js";
4
+ import { createContext as n, forwardRef as r, useContext as i, useId as a } from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { Radio as c } from "@base-ui/react/radio";
7
+ import { RadioGroup as l } from "@base-ui/react/radio-group";
8
+ //#region src/components/radio/radio.tsx
9
+ var u = { variant: {
10
+ default: { classes: "flex flex-col" },
11
+ cards: { classes: "flex flex-col overflow-hidden rounded-group bg-raised shadow-xs" }
12
+ } }, d = { variant: "default" }, f = /* @__PURE__ */ n({ variant: "default" }), p = /* @__PURE__ */ r(function({ value: t, defaultValue: n, onValueChange: r, disabled: i, name: a, variant: s = "default", orientation: c = "vertical", className: d, children: p, ...m }, h) {
13
+ return /* @__PURE__ */ o(f.Provider, {
14
+ value: { variant: s },
15
+ children: /* @__PURE__ */ o(l, {
16
+ ref: h,
17
+ ...t === void 0 ? {} : { value: t },
18
+ ...n === void 0 ? {} : { defaultValue: n },
19
+ ...r ? { onValueChange: (e) => r(String(e)) } : {},
20
+ ...i === void 0 ? {} : { disabled: i },
21
+ ...a ? { name: a } : {},
22
+ className: e(u.variant[s].classes, c === "horizontal" && s === "default" && "flex-row flex-wrap gap-x-24", d),
23
+ ...m,
24
+ children: p
25
+ })
26
+ });
27
+ });
28
+ process.env.NODE_ENV !== "production" && (p.displayName = "RadioGroup");
29
+ var m = /* @__PURE__ */ r(function({ value: t, disabled: n, id: r, className: i, "aria-label": a, "aria-labelledby": s, "aria-describedby": l, "data-force": u }, d) {
30
+ return /* @__PURE__ */ o(c.Root, {
31
+ ref: d,
32
+ value: t,
33
+ ...n === void 0 ? {} : { disabled: n },
34
+ ...r ? { id: r } : {},
35
+ ...a ? { "aria-label": a } : {},
36
+ ...s ? { "aria-labelledby": s } : {},
37
+ ...l ? { "aria-describedby": l } : {},
38
+ ...u ? { "data-force": u } : {},
39
+ className: e("relative inline-flex size-18 shrink-0 cursor-pointer items-center justify-center rounded-pill bg-raised shadow-selector radio-donut focus-ring tap-target", "not-checked:hover:shadow-selector-hover disabled:cursor-not-allowed disabled:bg-fill-1 disabled:shadow-none", i)
40
+ });
41
+ });
42
+ process.env.NODE_ENV !== "production" && (m.displayName = "Radio.Circle");
43
+ var h = /* @__PURE__ */ r(function({ label: n, description: r, id: c, className: l, ...u }, d) {
44
+ let { variant: p } = i(f), h = a(), g = c ?? `k-radio-${h}`, _ = t(g, n, r, u);
45
+ return p === "cards" ? /* @__PURE__ */ s("label", {
46
+ htmlFor: g,
47
+ className: e("flex min-h-56 cursor-pointer items-center gap-16 px-20 py-12 transition-control hover:bg-fill-1 not-first:hairline-t has-[:disabled]:cursor-not-allowed", l),
48
+ children: [/* @__PURE__ */ s("span", {
49
+ className: "flex min-w-0 flex-1 flex-col gap-2",
50
+ children: [/* @__PURE__ */ o("span", {
51
+ id: _.labelId,
52
+ className: e("text-body-lg font-medium text-fg", u.disabled && "text-fg-disabled"),
53
+ children: n
54
+ }), r && /* @__PURE__ */ o("span", {
55
+ id: _.descriptionId,
56
+ className: "text-small text-fg-secondary",
57
+ children: r
58
+ })]
59
+ }), /* @__PURE__ */ o(m, {
60
+ ref: d,
61
+ id: g,
62
+ ...u,
63
+ ..._.aria
64
+ })]
65
+ }) : n ? /* @__PURE__ */ s("label", {
66
+ htmlFor: g,
67
+ className: e("inline-flex min-h-32 cursor-pointer items-start gap-10 py-6 select-none", u.disabled && "cursor-not-allowed", l),
68
+ children: [/* @__PURE__ */ o("span", {
69
+ className: "flex h-20 items-center",
70
+ children: /* @__PURE__ */ o(m, {
71
+ ref: d,
72
+ id: g,
73
+ ...u,
74
+ ..._.aria
75
+ })
76
+ }), /* @__PURE__ */ s("span", {
77
+ className: "flex flex-col",
78
+ children: [/* @__PURE__ */ o("span", {
79
+ id: _.labelId,
80
+ className: e("text-body text-fg", u.disabled && "text-fg-disabled"),
81
+ children: n
82
+ }), r && /* @__PURE__ */ o("span", {
83
+ id: _.descriptionId,
84
+ className: "text-small text-fg-secondary",
85
+ children: r
86
+ })]
87
+ })]
88
+ }) : /* @__PURE__ */ o(m, {
89
+ ref: d,
90
+ id: g,
91
+ className: l,
92
+ ...u
93
+ });
94
+ });
95
+ process.env.NODE_ENV !== "production" && (h.displayName = "Radio");
96
+ var g = /* @__PURE__ */ Object.assign(h, {
97
+ Group: p,
98
+ Circle: m
99
+ }), _ = p;
100
+ function v(e) {
101
+ return /* @__PURE__ */ o(p, {
102
+ variant: "cards",
103
+ ...e
104
+ });
105
+ }
106
+ process.env.NODE_ENV !== "production" && (v.displayName = "RadioCards");
107
+ //#endregion
108
+ export { m as a, v as i, u as n, _ as o, g as r, d as t };
109
+
110
+ //# sourceMappingURL=radio-CUxbLCvD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-CUxbLCvD.js","names":["RadioGroup","BaseRadioGroup","BaseRadio","Radio","cn","KAESO_RADIO_VARIANTS","KAESO_RADIO_DEFAULT_VARIANTS","Ctx","Group","props","RadioGroup","value","defaultValue","onValueChange","v","disabled","name","variant","orientation","className","RadioCircle","ariaLabel","labelledBy","describedBy","force","Radio","id","Root","useContext","auto","useId","rid","named","labelled","label","description","Radio$1","RadioGroup$1","RadioCards"],"sources":["../../src/components/radio/radio.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type ReactNode } from \"react\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { labelled } from \"./labelled.js\";\n\nexport const KAESO_RADIO_VARIANTS = {\n variant: {\n default: { classes: \"flex flex-col\" },\n cards: {\n classes: \"flex flex-col overflow-hidden rounded-group bg-raised shadow-xs\",\n },\n },\n} as const;\nexport const KAESO_RADIO_DEFAULT_VARIANTS = { variant: \"default\" } as const;\n\nconst Ctx = /* @__PURE__ */ createContext<{ variant: keyof typeof KAESO_RADIO_VARIANTS.variant }>({ variant: \"default\" });\n\nexport interface RadioGroupProps {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n variant?: keyof typeof KAESO_RADIO_VARIANTS.variant | undefined;\n orientation?: \"vertical\" | \"horizontal\" | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}\n\nconst Group = /* @__PURE__ */ forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n { value, defaultValue, onValueChange, disabled, name, variant = \"default\", orientation = \"vertical\", className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ variant }}>\n <BaseRadioGroup\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n className={cn(\n KAESO_RADIO_VARIANTS.variant[variant].classes,\n orientation === \"horizontal\" && variant === \"default\" && \"flex-row flex-wrap gap-x-24\",\n className,\n )}\n {...props}\n >\n {children}\n </BaseRadioGroup>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Group.displayName = \"RadioGroup\";\n\nexport interface RadioProps {\n value: string;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n \"aria-describedby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const RadioCircle = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function RadioCircle(\n { value, disabled, id, className, \"aria-label\": ariaLabel, \"aria-labelledby\": labelledBy, \"aria-describedby\": describedBy, \"data-force\": force },\n ref,\n) {\n return (\n <BaseRadio.Root\n ref={ref}\n value={value}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(id ? { id } : {})}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(labelledBy ? { \"aria-labelledby\": labelledBy } : {})}\n {...(describedBy ? { \"aria-describedby\": describedBy } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative inline-flex size-18 shrink-0 cursor-pointer items-center justify-center rounded-pill bg-raised shadow-selector radio-donut focus-ring tap-target\",\n \"not-checked:hover:shadow-selector-hover disabled:cursor-not-allowed disabled:bg-fill-1 disabled:shadow-none\",\n className,\n )}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") RadioCircle.displayName = \"Radio.Circle\";\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function Radio({ label, description, id, className, ...props }, ref) {\n const { variant } = useContext(Ctx);\n const auto = useId();\n const rid = id ?? `k-radio-${auto}`;\n const named = labelled(rid, label, description, props);\n if (variant === \"cards\") {\n return (\n <label\n htmlFor={rid}\n className={cn(\n \"flex min-h-56 cursor-pointer items-center gap-16 px-20 py-12 transition-control hover:bg-fill-1 not-first:hairline-t has-[:disabled]:cursor-not-allowed\",\n className,\n )}\n >\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span id={named.labelId} className={cn(\"text-body-lg font-medium text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </label>\n );\n }\n if (!label) return <RadioCircle ref={ref} id={rid} className={className} {...props} />;\n return (\n <label\n htmlFor={rid}\n className={cn(\"inline-flex min-h-32 cursor-pointer items-start gap-10 py-6 select-none\", props.disabled && \"cursor-not-allowed\", className)}\n >\n <span className=\"flex h-20 items-center\">\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </span>\n <span className=\"flex flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Radio\";\n\nexport const Radio = /* @__PURE__ */ Object.assign(Root, { Group, Circle: RadioCircle });\nexport const RadioGroup = Group;\nexport function RadioCards(props: Omit<RadioGroupProps, \"variant\">) {\n return <Group variant=\"cards\" {...props} />;\n}\nif (process.env.NODE_ENV !== \"production\") RadioCards.displayName = \"RadioCards\";\n"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ "use client";
2
+ import { i as e } from "./styles-Btvg2DCf.js";
3
+ import { t } from "./cn-CidVUKMm.js";
4
+ import { i as n } from "./context-BELWW79w.js";
5
+ import { n as r } from "./button-BHKAE6ui.js";
6
+ import { i } from "./popover-BE7VO-a4.js";
7
+ import { t as a } from "./calendar-B5SSTE56.js";
8
+ import { t as o } from "./iso-field-CznqNVrH.js";
9
+ import { useState as s, useSyncExternalStore as c } from "react";
10
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
11
+ //#region src/components/date-picker/range-popup.tsx
12
+ var d = "(max-width: 767px)";
13
+ function f(e) {
14
+ if (typeof window > "u" || !window.matchMedia) return () => {};
15
+ let t = window.matchMedia(d);
16
+ return t.addEventListener("change", e), () => t.removeEventListener("change", e);
17
+ }
18
+ var p = () => typeof window < "u" && !!window.matchMedia?.(d).matches, m = () => !c(f, p, () => !1), h = (e) => new Date(e.getFullYear(), e.getMonth(), 1), g = (e, t) => new Date(e.getFullYear(), e.getMonth() + t, 1), _ = (e, t) => e?.toDateString() === t?.toDateString();
19
+ function v({ range: c, preset: d, presets: f, onPick: p, onClose: v, weekStartsOn: y, disabledDays: b }) {
20
+ let x = m(), S = n(), C = x ? 2 : 1, [w, T] = s(c ?? void 0), [E, D] = s(d === null), [O, k] = s(() => h(c?.to ?? c?.from ?? /* @__PURE__ */ new Date())), A = g(O, 1 - C), j = (e) => e >= A && h(e) <= O, M = E ? null : d, N = (e) => {
21
+ T(e), D(!0);
22
+ }, P = (e, t) => {
23
+ if (b?.(t)) return !1;
24
+ let n = e === "from" ? w?.to : w?.from;
25
+ return N(e === "from" ? {
26
+ from: t,
27
+ to: n && n < t ? t : n
28
+ } : {
29
+ from: n && n > t ? t : n,
30
+ to: t
31
+ }), j(t) || k(e === "to" || C === 1 ? h(t) : g(h(t), C - 1)), !0;
32
+ }, F = _(w?.from, c?.from) && _(w?.to ?? w?.from, c?.to), I = t(e, "cursor-pointer hover:bg-fill-1 focus-ring-inset aria-selected:bg-fill-2", x && "coarse:min-h-40");
33
+ return /* @__PURE__ */ l(i.Content, {
34
+ padding: "none",
35
+ "aria-label": S("datePicker.chooseRange", "Choose a date range"),
36
+ className: t(!x && "w-360 max-w-(--available-width)"),
37
+ children: /* @__PURE__ */ u("div", {
38
+ className: t("flex", !x && "flex-col"),
39
+ children: [/* @__PURE__ */ u("div", {
40
+ className: t("shrink-0 gap-2 p-6", x ? "flex min-w-160 flex-col hairline-r" : "grid grid-cols-2 hairline-b"),
41
+ role: "listbox",
42
+ "aria-label": S("datePicker.presets", "Presets"),
43
+ children: [f.map((e) => {
44
+ let t = e.id ?? e.label;
45
+ return /* @__PURE__ */ l("button", {
46
+ type: "button",
47
+ role: "option",
48
+ "aria-selected": M === t,
49
+ className: I,
50
+ onClick: () => p(e.range(), t),
51
+ children: e.label
52
+ }, t);
53
+ }), /* @__PURE__ */ l("button", {
54
+ type: "button",
55
+ role: "option",
56
+ "aria-selected": M === null,
57
+ className: I,
58
+ onClick: () => D(!0),
59
+ children: S("datePicker.custom", "Custom")
60
+ })]
61
+ }), /* @__PURE__ */ u("div", {
62
+ className: t("flex flex-col p-12", !x && "items-center"),
63
+ children: [/* @__PURE__ */ l(a, {
64
+ mode: "range",
65
+ numberOfMonths: C,
66
+ selected: w,
67
+ month: A,
68
+ onMonthChange: (e) => k(g(e, C - 1)),
69
+ onSelect: (e) => N(e),
70
+ weekStartsOn: y,
71
+ disabled: b
72
+ }), /* @__PURE__ */ u("div", {
73
+ className: "mt-12 flex items-center gap-8 self-stretch",
74
+ children: [
75
+ /* @__PURE__ */ l(o, {
76
+ label: S("datePicker.startDate", "Start date"),
77
+ value: w?.from,
78
+ onCommit: (e) => P("from", e)
79
+ }),
80
+ /* @__PURE__ */ l("span", {
81
+ className: "text-fg-tertiary",
82
+ "aria-hidden": !0,
83
+ children: "–"
84
+ }),
85
+ /* @__PURE__ */ l(o, {
86
+ label: S("datePicker.endDate", "End date"),
87
+ value: w?.to,
88
+ onCommit: (e) => P("to", e)
89
+ }),
90
+ /* @__PURE__ */ l(r, {
91
+ size: "sm",
92
+ variant: "primary",
93
+ disabled: !w?.from,
94
+ onClick: () => {
95
+ w?.from && (F && !E ? v() : p({
96
+ from: w.from,
97
+ to: w.to ?? w.from
98
+ }, null));
99
+ },
100
+ children: S("datePicker.apply", "Apply")
101
+ })
102
+ ]
103
+ })]
104
+ })]
105
+ })
106
+ });
107
+ }
108
+ //#endregion
109
+ export { v as RangePopup };
110
+
111
+ //# sourceMappingURL=range-popup-AbRzgHtY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-popup-AbRzgHtY.js","names":["MENU_ITEM","useUiText","Button","Calendar","IsoField","NARROW","subscribeNarrow","q","onChange","isNarrow","useWide","useSyncExternalStore","monthOf","d","addMonths","n","sameDay","a","b","RangePopup","wide","t","months","draft","setDraft","useState","range","custom","setCustom","preset","last","setLast","first","shows","selected","edit","next","typed","disabledDays","other","which","unchanged","item","cn","Popover","presets","id","p","onPick","m","r","onClose"],"sources":["../../src/components/date-picker/range-popup.tsx"],"sourcesContent":["import { useState, useSyncExternalStore } from \"react\";\nimport type { DateRange } from \"react-day-picker\";\nimport { Calendar, type CalendarProps } from \"../calendar/calendar.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Popover } from \"../popover/popover.js\";\nimport { Button } from \"../button/button.js\";\nimport { MENU_ITEM } from \"../menu/styles.js\";\nimport { IsoField } from \"./iso-field.js\";\nimport type { DateRangePreset } from \"./date-picker.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport interface RangePopupProps {\n range: DateRange | null;\n preset: string | null;\n presets: DateRangePreset[];\n onPick: (range: DateRange, preset: string | null) => void;\n onClose: () => void;\n weekStartsOn: CalendarProps[\"weekStartsOn\"];\n disabledDays: ((date: Date) => boolean) | undefined;\n}\n\nconst NARROW = \"(max-width: 767px)\";\nfunction subscribeNarrow(onChange: () => void) {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const q = window.matchMedia(NARROW);\n q.addEventListener(\"change\", onChange);\n return () => q.removeEventListener(\"change\", onChange);\n}\nconst isNarrow = () => typeof window !== \"undefined\" && !!window.matchMedia?.(NARROW).matches;\nconst useWide = () => !useSyncExternalStore(subscribeNarrow, isNarrow, () => false);\n\nconst monthOf = (d: Date) => new Date(d.getFullYear(), d.getMonth(), 1);\nconst addMonths = (d: Date, n: number) => new Date(d.getFullYear(), d.getMonth() + n, 1);\nconst sameDay = (a: Date | undefined, b: Date | undefined) => a?.toDateString() === b?.toDateString();\n\nexport function RangePopup({ range, preset, presets, onPick, onClose, weekStartsOn, disabledDays }: RangePopupProps) {\n const wide = useWide();\n const t = useUiText();\n const months = wide ? 2 : 1;\n const [draft, setDraft] = useState<DateRange | undefined>(range ?? undefined);\n const [custom, setCustom] = useState(preset === null);\n const [last, setLast] = useState(() => monthOf(range?.to ?? range?.from ?? new Date()));\n const first = addMonths(last, 1 - months);\n const shows = (d: Date) => d >= first && monthOf(d) <= last;\n const selected = custom ? null : preset;\n const edit = (next: DateRange | undefined) => {\n setDraft(next);\n setCustom(true);\n };\n const typed = (which: \"from\" | \"to\", d: Date) => {\n if (disabledDays?.(d)) return false;\n const other = which === \"from\" ? draft?.to : draft?.from;\n const next = which === \"from\" ? { from: d, to: other && other < d ? d : other } : { from: other && other > d ? d : other, to: d };\n edit(next);\n if (!shows(d)) setLast(which === \"to\" || months === 1 ? monthOf(d) : addMonths(monthOf(d), months - 1));\n return true;\n };\n const unchanged = sameDay(draft?.from, range?.from) && sameDay(draft?.to ?? draft?.from, range?.to);\n const item = cn(MENU_ITEM, \"cursor-pointer hover:bg-fill-1 focus-ring-inset aria-selected:bg-fill-2\", wide && \"coarse:min-h-40\");\n\n return (\n <Popover.Content padding=\"none\" aria-label={t(\"datePicker.chooseRange\", \"Choose a date range\")} className={cn(!wide && \"w-360 max-w-(--available-width)\")}>\n <div className={cn(\"flex\", !wide && \"flex-col\")}>\n <div\n className={cn(\"shrink-0 gap-2 p-6\", wide ? \"flex min-w-160 flex-col hairline-r\" : \"grid grid-cols-2 hairline-b\")}\n role=\"listbox\"\n aria-label={t(\"datePicker.presets\", \"Presets\")}\n >\n {presets.map((p) => {\n const id = p.id ?? p.label;\n return (\n <button key={id} type=\"button\" role=\"option\" aria-selected={selected === id} className={item} onClick={() => onPick(p.range(), id)}>\n {p.label}\n </button>\n );\n })}\n <button type=\"button\" role=\"option\" aria-selected={selected === null} className={item} onClick={() => setCustom(true)}>\n {t(\"datePicker.custom\", \"Custom\")}\n </button>\n </div>\n <div className={cn(\"flex flex-col p-12\", !wide && \"items-center\")}>\n <Calendar\n mode=\"range\"\n numberOfMonths={months}\n selected={draft}\n month={first}\n onMonthChange={(m) => setLast(addMonths(m, months - 1))}\n onSelect={(r) => edit(r as DateRange | undefined)}\n weekStartsOn={weekStartsOn}\n disabled={disabledDays}\n />\n <div className=\"mt-12 flex items-center gap-8 self-stretch\">\n <IsoField label={t(\"datePicker.startDate\", \"Start date\")} value={draft?.from} onCommit={(d) => typed(\"from\", d)} />\n <span className=\"text-fg-tertiary\" aria-hidden>\n –\n </span>\n <IsoField label={t(\"datePicker.endDate\", \"End date\")} value={draft?.to} onCommit={(d) => typed(\"to\", d)} />\n <Button\n size=\"sm\"\n variant=\"primary\"\n disabled={!draft?.from}\n onClick={() => {\n if (!draft?.from) return;\n if (unchanged && !custom) onClose();\n else onPick({ from: draft.from, to: draft.to ?? draft.from }, null);\n }}\n >\n {t(\"datePicker.apply\", \"Apply\")}\n </Button>\n </div>\n </div>\n </div>\n </Popover.Content>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { useRef as e } from "react";
3
+ //#region src/utils/restore-focus.ts
4
+ function t() {
5
+ if (typeof document > "u") return null;
6
+ let e = document.activeElement;
7
+ return e instanceof HTMLElement && e !== document.body ? e : null;
8
+ }
9
+ function n(n, r = () => !0) {
10
+ let i = e(null), a = e(!1);
11
+ return n && !a.current && (i.current = t()), n !== void 0 && (a.current = n), {
12
+ initialFocus: () => r(),
13
+ finalFocus: () => n !== void 0 && i.current?.isConnected ? i.current : !0
14
+ };
15
+ }
16
+ //#endregion
17
+ export { n as t };
18
+
19
+ //# sourceMappingURL=restore-focus-Cap1Q-R3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-focus-Cap1Q-R3.js","names":["focused","a","useRestoreFocus","opener","useRef","wasOpen","open","first"],"sources":["../../src/utils/restore-focus.ts"],"sourcesContent":["import { useRef } from \"react\";\n\nfunction focused(): HTMLElement | null {\n if (typeof document === \"undefined\") return null;\n const a = document.activeElement;\n return a instanceof HTMLElement && a !== document.body ? a : null;\n}\n\nexport function useRestoreFocus(open: boolean | undefined, first: () => HTMLElement | boolean = () => true) {\n const opener = useRef<HTMLElement | null>(null);\n const wasOpen = useRef(false);\n if (open && !wasOpen.current) opener.current = focused();\n if (open !== undefined) wasOpen.current = open;\n return {\n initialFocus: () => first(),\n finalFocus: () => (open !== undefined && opener.current?.isConnected ? opener.current : true),\n };\n}\n"],"mappings":";;;AAEA,SAASA,IAA8B;CACrC,IAAI,OAAO,WAAa,KAAa,OAAO;CAC5C,IAAMC,IAAI,SAAS;CACnB,OAAOA,aAAa,eAAeA,MAAM,SAAS,OAAOA,IAAI;AAC/D;AAEA,SAAgBC,EAAgB,GAA2B,UAA2C,IAAM;CAC1G,IAAMC,IAASC,EAA2B,IAAI,GACxCC,IAAUD,EAAO,EAAK;CAG5B,OAFIE,KAAQ,CAACD,EAAQ,YAAS,EAAO,UAAUL,EAAQ,IACnDM,MAAS,KAAA,MAAW,EAAQ,UAAUA,IACnC;EACL,oBAAoBC,EAAM;EAC1B,kBAAmBD,MAAS,KAAA,KAAaH,EAAO,SAAS,cAAcA,EAAO,UAAU;CAC1F;AACF"}