@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,283 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { r as t } from "./portal-context-BBbzDKmY.js";
4
+ import { t as n } from "./inset-BLMdxX4I.js";
5
+ import { i as r } from "./context-BELWW79w.js";
6
+ import { i, n as a } from "./button-BHKAE6ui.js";
7
+ import { t as o } from "./icon-button-Bw67oKtx.js";
8
+ import { t as s } from "./input-Biakz6GB.js";
9
+ import { t as c } from "./restore-focus-Cap1Q-R3.js";
10
+ import { forwardRef as l, useEffect as u, useLayoutEffect as d, useRef as f, useState as p } from "react";
11
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
12
+ import { ArrowLeft01Icon as _, Cancel01Icon as v } from "@hugeicons/core-free-icons";
13
+ import { Dialog as y } from "@base-ui/react/dialog";
14
+ import { AlertDialog as b } from "@base-ui/react/alert-dialog";
15
+ //#region src/components/dialog/focus.ts
16
+ var x = "input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"]", S = "a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])", C = (e) => !e.closest("[hidden], [inert]") && !e.matches(":disabled, [aria-disabled=true]"), w = (e, t) => [...e.querySelectorAll(t)].find(C) ?? null;
17
+ function T(e, t) {
18
+ let n = t ?? e.querySelector("[data-dialog-body]"), r = e.querySelector("[data-dialog-footer]"), a = r ? [...r.querySelectorAll("button, a[href]")].filter(C) : [], { primary: o, danger: s, "danger-secondary": c } = i.variant, l = a.filter((e) => !e.classList.contains(s.classes) && !e.classList.contains(c.classes));
19
+ return (n && (w(n, "[data-autofocus]") ?? w(n, x))) ?? l.find((e) => e.classList.contains(o.classes)) ?? l[0] ?? (n && w(n, S)) ?? w(e, S);
20
+ }
21
+ function E(e, t) {
22
+ let n = e?.closest("[data-dialog-frame]");
23
+ e && n && !n.closest("[data-closed]") && ((t?.isConnected && n.contains(t) && C(t) ? t : null) ?? T(n, e))?.focus({ preventScroll: !0 });
24
+ }
25
+ //#endregion
26
+ //#region src/components/dialog/dialog.tsx
27
+ var D = { size: {
28
+ sm: { classes: "w-440" },
29
+ md: { classes: "w-560" },
30
+ lg: { classes: "w-720" }
31
+ } }, O = { size: "md" }, k = "fixed inset-0 z-50 bg-overlay backdrop-motion", A = "fixed inset-0 z-50 flex items-center justify-center p-16", j = "relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion";
32
+ function M() {
33
+ let e = f(null), [t, n] = p(!1);
34
+ return u(() => {
35
+ let t = e.current;
36
+ if (!t) return;
37
+ let r = () => n(t.scrollHeight - t.scrollTop - t.clientHeight > 1);
38
+ r(), t.addEventListener("scroll", r, { passive: !0 });
39
+ let i = typeof ResizeObserver < "u" ? new ResizeObserver(r) : null, a = () => {
40
+ for (let e of t.children) i?.observe(e);
41
+ };
42
+ i?.observe(t), a();
43
+ let o = new MutationObserver(() => {
44
+ a(), r();
45
+ });
46
+ return o.observe(t, { childList: !0 }), () => {
47
+ t.removeEventListener("scroll", r), i?.disconnect(), o.disconnect();
48
+ };
49
+ }, []), {
50
+ ref: e,
51
+ under: t
52
+ };
53
+ }
54
+ function N({ title: t, description: n, children: i, footer: a, onSubmit: s, hideClose: c, headerStart: l, size: u = "md", className: d, inline: f }) {
55
+ let { ref: p, under: _ } = M(), b = r(), x = f ? "h2" : y.Title, S = /* @__PURE__ */ h(o, {
56
+ icon: v,
57
+ "aria-label": b("dialog.close", "Close"),
58
+ tooltip: !1
59
+ }), C = c ? null : f ? S : /* @__PURE__ */ h(y.Close, { render: S }), w = f ? "p" : y.Description;
60
+ return /* @__PURE__ */ g("div", {
61
+ "data-dialog-frame": "",
62
+ className: e("flex min-h-0 flex-col", f && "rounded-dialog bg-raised shadow-dialog", f && D.size[u].classes, d),
63
+ onKeyDown: (e) => {
64
+ s && e.key === "Enter" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), s());
65
+ },
66
+ children: [
67
+ l === void 0 ? /* @__PURE__ */ g("div", {
68
+ className: "flex items-start gap-12 px-24 pt-20 pb-4",
69
+ children: [/* @__PURE__ */ g("div", {
70
+ className: "flex min-w-0 flex-1 flex-col gap-4 pt-4",
71
+ children: [/* @__PURE__ */ h(x, {
72
+ className: "text-title-sm font-semibold text-fg text-balance",
73
+ children: t
74
+ }), n && /* @__PURE__ */ h(w, {
75
+ className: "text-body text-fg-secondary text-pretty",
76
+ children: n
77
+ })]
78
+ }), C && /* @__PURE__ */ h("span", {
79
+ className: "-mr-8 flex",
80
+ children: C
81
+ })]
82
+ }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ g("div", {
83
+ className: "flex h-32 items-center justify-between px-16 pt-16 box-content",
84
+ children: [/* @__PURE__ */ h("span", {
85
+ className: "flex items-center",
86
+ children: l
87
+ }), C]
88
+ }), /* @__PURE__ */ g("div", {
89
+ className: "flex flex-col gap-4 px-24 pt-8 pb-4",
90
+ children: [/* @__PURE__ */ h(x, {
91
+ className: "text-title-sm font-semibold text-fg text-balance",
92
+ children: t
93
+ }), n && /* @__PURE__ */ h(w, {
94
+ className: "text-body text-fg-secondary text-pretty",
95
+ children: n
96
+ })]
97
+ })] }),
98
+ i && /* @__PURE__ */ h("div", {
99
+ ref: p,
100
+ "data-dialog-body": "",
101
+ className: e("min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet", a ? "pb-8" : "pb-24"),
102
+ children: i
103
+ }),
104
+ a && /* @__PURE__ */ h("div", {
105
+ "data-dialog-footer": "",
106
+ className: e("flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control", _ && "hairline-t"),
107
+ children: a
108
+ })
109
+ ]
110
+ });
111
+ }
112
+ function P() {
113
+ let e = [...document.querySelectorAll("[role=dialog], [role=alertdialog]")].pop(), t = e?.querySelector("[data-dialog-frame]");
114
+ return (t && T(t)) ?? e ?? !0;
115
+ }
116
+ var F = /* @__PURE__ */ l(function(r, i) {
117
+ let { open: a, defaultOpen: o, onOpenChange: s, trigger: l, size: u = "md", inline: d } = r, f = c(a, P), p = t();
118
+ return d ? /* @__PURE__ */ h(N, { ...r }) : /* @__PURE__ */ g(y.Root, {
119
+ ...a === void 0 ? {} : { open: a },
120
+ ...o === void 0 ? {} : { defaultOpen: o },
121
+ ...s ? { onOpenChange: (e) => s(e) } : {},
122
+ children: [l && /* @__PURE__ */ h(y.Trigger, { render: l }), /* @__PURE__ */ g(y.Portal, {
123
+ container: p,
124
+ children: [/* @__PURE__ */ h(y.Backdrop, { className: k }), /* @__PURE__ */ h(y.Viewport, {
125
+ className: A,
126
+ children: /* @__PURE__ */ h(y.Popup, {
127
+ ref: i,
128
+ initialFocus: f.initialFocus,
129
+ finalFocus: f.finalFocus,
130
+ className: e(j, D.size[u].classes),
131
+ children: /* @__PURE__ */ h(n, {
132
+ inset: !1,
133
+ children: /* @__PURE__ */ h(N, { ...r })
134
+ })
135
+ })
136
+ })]
137
+ })]
138
+ });
139
+ });
140
+ process.env.NODE_ENV !== "production" && (F.displayName = "Dialog");
141
+ function I({ children: e }) {
142
+ return /* @__PURE__ */ h(y.Close, { render: e });
143
+ }
144
+ process.env.NODE_ENV !== "production" && (I.displayName = "Dialog.Close");
145
+ var L = /* @__PURE__ */ Object.assign(F, { Close: I }), R = { tone: {
146
+ danger: { classes: "bg-danger-tint text-danger-text" },
147
+ warning: { classes: "bg-warning-tint text-warning-text" },
148
+ info: { classes: "bg-info-tint text-info-text" }
149
+ } }, z = { tone: "danger" };
150
+ function B({ title: t, description: n, confirmLabel: i, cancelLabel: o, onConfirm: c, tone: l = "danger", confirmText: u, loading: d, inline: m, close: _ }) {
151
+ let [v, y] = p(""), [x, S] = p(!1), C = f(!1), w = r(), T = o ?? w("alertDialog.cancel", "Cancel"), [E, D = ""] = w("alertDialog.typeToConfirm", "Type {text} to confirm").split("{text}"), O = m ? "h2" : b.Title, k = m ? "p" : b.Description, A = !u || v === u, j = async () => {
152
+ if (!A || d || C.current) return;
153
+ let e = c();
154
+ if (!(e instanceof Promise)) return _();
155
+ C.current = !0, S(!0);
156
+ let t = await e.then(() => !0, () => !1);
157
+ C.current = !1, S(!1), t && _();
158
+ };
159
+ return /* @__PURE__ */ g("div", {
160
+ className: e("flex flex-col gap-20 p-24", m && "w-440 rounded-dialog bg-raised shadow-dialog"),
161
+ children: [
162
+ /* @__PURE__ */ g("div", {
163
+ className: "flex flex-col gap-6",
164
+ children: [/* @__PURE__ */ h(O, {
165
+ className: "text-title-sm font-semibold text-fg text-balance",
166
+ children: t
167
+ }), /* @__PURE__ */ h(k, {
168
+ className: "text-body text-fg-secondary text-pretty",
169
+ children: n
170
+ })]
171
+ }),
172
+ u && /* @__PURE__ */ h(s, {
173
+ label: /* @__PURE__ */ g("span", {
174
+ className: "font-regular text-fg-secondary",
175
+ children: [
176
+ E,
177
+ /* @__PURE__ */ h("span", {
178
+ className: "mono font-medium text-fg",
179
+ children: u
180
+ }),
181
+ D
182
+ ]
183
+ }),
184
+ value: v,
185
+ onChange: (e) => y(e.target.value),
186
+ autoComplete: "off",
187
+ spellCheck: !1,
188
+ onKeyDown: (e) => e.key === "Enter" && j()
189
+ }),
190
+ /* @__PURE__ */ g("div", {
191
+ className: "flex flex-wrap justify-end gap-8",
192
+ children: [m ? /* @__PURE__ */ h(a, { children: T }) : /* @__PURE__ */ h(b.Close, { render: /* @__PURE__ */ h(a, { children: T }) }), /* @__PURE__ */ h(a, {
193
+ variant: l === "danger" ? "danger" : "primary",
194
+ onClick: j,
195
+ disabled: !A,
196
+ loading: x || d,
197
+ children: i
198
+ })]
199
+ })
200
+ ]
201
+ });
202
+ }
203
+ function V(r) {
204
+ let { open: i, defaultOpen: a, onOpenChange: o, trigger: s, inline: l } = r, [u, d] = p(a ?? !1), f = i ?? u, m = (e) => {
205
+ i === void 0 && d(e), o?.(e);
206
+ }, _ = c(f), v = t();
207
+ return l ? /* @__PURE__ */ h(B, {
208
+ ...r,
209
+ close: () => void 0
210
+ }) : /* @__PURE__ */ g(b.Root, {
211
+ open: f,
212
+ onOpenChange: (e) => m(e),
213
+ children: [s && /* @__PURE__ */ h(b.Trigger, { render: s }), /* @__PURE__ */ g(b.Portal, {
214
+ container: v,
215
+ children: [/* @__PURE__ */ h(b.Backdrop, { className: k }), /* @__PURE__ */ h(b.Viewport, {
216
+ className: A,
217
+ children: /* @__PURE__ */ h(b.Popup, {
218
+ initialFocus: _.initialFocus,
219
+ finalFocus: _.finalFocus,
220
+ className: e(j, "w-440"),
221
+ children: /* @__PURE__ */ h(n, {
222
+ inset: !1,
223
+ children: /* @__PURE__ */ h(B, {
224
+ ...r,
225
+ close: () => m(!1)
226
+ })
227
+ })
228
+ })
229
+ })]
230
+ })]
231
+ });
232
+ }
233
+ process.env.NODE_ENV !== "production" && (V.displayName = "AlertDialog");
234
+ var H = D, U = O, W = (e) => e?.closest("[data-dialog-body]") ?? null;
235
+ function G({ layers: e, layer: t, onLayerChange: n, ...i }) {
236
+ let [a, s] = p(0), c = r(), l = t ?? a, u = l > 0 && l < e.length ? l : 0, m = f([]), g = f([]), v = f([]), y = f(u), b = f(u);
237
+ y.current !== u && (v.current[y.current] = W(m.current[y.current])?.scrollTop ?? 0, y.current = u), d(() => {
238
+ let e = b.current;
239
+ if (b.current = u, e === u) return;
240
+ let t = u < e;
241
+ t || (g.current[u] = null), g.current.length = u + 1;
242
+ let n = m.current[u], r = W(n);
243
+ r && (r.scrollTop = t ? v.current[u] ?? 0 : 0), E(n, t ? g.current[u] : null);
244
+ }, [u]);
245
+ let x = (e) => {
246
+ t === void 0 && s(e), n?.(e);
247
+ }, S = e.slice(0, u + 1), C = S[u];
248
+ if (!C) return null;
249
+ let w = (e) => (t) => {
250
+ t.target instanceof HTMLElement && (g.current[e] = t.target);
251
+ };
252
+ return /* @__PURE__ */ h(L, {
253
+ ...i,
254
+ title: C.title,
255
+ description: C.description,
256
+ footer: C.footer ? S.map((e, t) => e.footer ? /* @__PURE__ */ h("div", {
257
+ hidden: t !== u,
258
+ className: "contents",
259
+ onFocus: w(t),
260
+ children: e.footer
261
+ }, t) : null) : void 0,
262
+ headerStart: u > 0 ? /* @__PURE__ */ h(o, {
263
+ icon: _,
264
+ "aria-label": c("dialog.back", "Back"),
265
+ onClick: () => x(u - 1),
266
+ className: "animate-layer-in"
267
+ }, "back") : null,
268
+ children: S.map((e, t) => /* @__PURE__ */ h("div", {
269
+ ref: (e) => {
270
+ m.current[t] = e;
271
+ },
272
+ hidden: t !== u,
273
+ className: "animate-layer-in",
274
+ onFocus: w(t),
275
+ children: e.content
276
+ }, t))
277
+ });
278
+ }
279
+ process.env.NODE_ENV !== "production" && (G.displayName = "LayerDialog");
280
+ //#endregion
281
+ export { O as a, H as c, R as i, G as l, L as n, D as o, z as r, U as s, V as t, E as u };
282
+
283
+ //# sourceMappingURL=dialog-CVqSVk3T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-CVqSVk3T.js","names":["BaseDialog","__icon_Cancel01Icon","_Fragment","Dialog","BaseAlertDialog","AlertDialog","__icon_ArrowLeft01Icon","cn","usePortalContainer","InsetContent","useUiText","Button","IconButton","Input","useRestoreFocus","Fragment$1","DIALOG_FIELD","FOCUSABLE","usable","el","firstUsable","scope","selector","initialDialogControl","content","frame","footer","actions","dangerSecondary","KAESO_BUTTON_VARIANTS","safe","a","danger","primary","focusDialogSection","section","previous","KAESO_DIALOG_VARIANTS","KAESO_DIALOG_DEFAULT_VARIANTS","BACKDROP","DIALOG_VIEWPORT","DIALOG_POPUP","useScrolledUnder","ref","useRef","under","setUnder","useState","useEffect","check","ro","observe","child","mo","DialogFrame","t","Title","inline","Dialog","closeButton","Cancel01Icon","close","hideClose","Description","size","className","onSubmit","headerStart","title","description","children","focusFirstControl","open","Root","props","focus","container","defaultOpen","onOpenChange","o","trigger","Close","Dialog$1","KAESO_ALERT_DIALOG_VARIANTS","KAESO_ALERT_DIALOG_DEFAULT_VARIANTS","AlertFrame","cancelProp","typed","setTyped","busy","setBusy","pending","cancelLabel","typeBefore","typeAfter","AlertDialog","ok","confirmText","confirm","loading","r","onConfirm","done","tone","confirmLabel","AlertDialog$1","inner","setInner","isOpen","setOpen","KAESO_LAYER_DIALOG_VARIANTS","KAESO_LAYER_DIALOG_DEFAULT_VARIANTS","bodyOf","LayerDialog","wanted","layer","index","layers","sections","focused","tops","left","shown","useLayoutEffect","from","back","body","go","i","onLayerChange","stack","current","remember","e","l","ArrowLeft01Icon"],"sources":["../../src/components/dialog/focus.ts","../../src/components/dialog/dialog.tsx"],"sourcesContent":["import { KAESO_BUTTON_VARIANTS } from \"../button/button.js\";\n\nconst DIALOG_FIELD =\n 'input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"]';\nconst FOCUSABLE = 'a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst usable = (el: HTMLElement) => !el.closest(\"[hidden], [inert]\") && !el.matches(\":disabled, [aria-disabled=true]\");\nconst firstUsable = (scope: ParentNode, selector: string) => [...scope.querySelectorAll<HTMLElement>(selector)].find(usable) ?? null;\n\nexport function initialDialogControl(frame: HTMLElement, scope?: HTMLElement | undefined): HTMLElement | null {\n const content = scope ?? frame.querySelector<HTMLElement>(\"[data-dialog-body]\");\n const footer = frame.querySelector<HTMLElement>(\"[data-dialog-footer]\");\n const actions = footer ? [...footer.querySelectorAll<HTMLElement>(\"button, a[href]\")].filter(usable) : [];\n const { primary, danger, \"danger-secondary\": dangerSecondary } = KAESO_BUTTON_VARIANTS.variant;\n const safe = actions.filter((a) => !a.classList.contains(danger.classes) && !a.classList.contains(dangerSecondary.classes));\n return (\n (content && (firstUsable(content, \"[data-autofocus]\") ?? firstUsable(content, DIALOG_FIELD))) ??\n safe.find((a) => a.classList.contains(primary.classes)) ??\n safe[0] ??\n (content && firstUsable(content, FOCUSABLE)) ??\n firstUsable(frame, FOCUSABLE)\n );\n}\n\nexport function focusDialogSection(section: HTMLElement | null | undefined, previous?: HTMLElement | null | undefined) {\n const frame = section?.closest<HTMLElement>(\"[data-dialog-frame]\");\n if (!section || !frame || frame.closest(\"[data-closed]\")) return;\n const back = previous?.isConnected && frame.contains(previous) && usable(previous) ? previous : null;\n (back ?? initialDialogControl(frame, section))?.focus({ preventScroll: true });\n}\n","import { InsetContent } from \"../../utils/inset.js\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { forwardRef, useEffect, useLayoutEffect, useRef, useState, type FocusEvent, type KeyboardEvent, type ReactElement, type ReactNode } from \"react\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useRestoreFocus } from \"../../utils/restore-focus.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowLeft01Icon as __icon_ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Button } from \"../button/button.js\";\nimport { Input } from \"../input/input.js\";\nimport { focusDialogSection, initialDialogControl } from \"./focus.js\";\n\nexport const KAESO_DIALOG_VARIANTS = {\n size: {\n sm: { classes: \"w-440\" },\n md: { classes: \"w-560\" },\n lg: { classes: \"w-720\" },\n },\n} as const;\nexport const KAESO_DIALOG_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst BACKDROP = \"fixed inset-0 z-50 bg-overlay backdrop-motion\";\nconst DIALOG_VIEWPORT = \"fixed inset-0 z-50 flex items-center justify-center p-16\";\nconst DIALOG_POPUP = \"relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion\";\n\nfunction useScrolledUnder<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [under, setUnder] = useState(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const check = () => setUnder(el.scrollHeight - el.scrollTop - el.clientHeight > 1);\n check();\n el.addEventListener(\"scroll\", check, { passive: true });\n const ro = typeof ResizeObserver !== \"undefined\" ? new ResizeObserver(check) : null;\n const observe = () => {\n for (const child of el.children) ro?.observe(child);\n };\n ro?.observe(el);\n observe();\n const mo = new MutationObserver(() => {\n observe();\n check();\n });\n mo.observe(el, { childList: true });\n return () => {\n el.removeEventListener(\"scroll\", check);\n ro?.disconnect();\n mo.disconnect();\n };\n }, []);\n return { ref, under };\n}\n\nexport interface DialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n size?: keyof typeof KAESO_DIALOG_VARIANTS.size | undefined;\n children?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n onSubmit?: (() => void) | undefined;\n hideClose?: boolean | undefined;\n headerStart?: ReactNode | undefined;\n className?: string | undefined;\n inline?: boolean | undefined;\n}\n\nfunction DialogFrame({ title, description, children, footer, onSubmit, hideClose, headerStart, size = \"md\", className, inline }: DialogProps) {\n const { ref, under } = useScrolledUnder<HTMLDivElement>();\n const t = useUiText();\n const Title = inline ? \"h2\" : BaseDialog.Title;\n const closeButton = <IconButton icon={__icon_Cancel01Icon} aria-label={t(\"dialog.close\", \"Close\")} tooltip={false} />;\n const close = hideClose ? null : inline ? closeButton : <BaseDialog.Close render={closeButton} />;\n const Description = inline ? \"p\" : BaseDialog.Description;\n return (\n <div\n data-dialog-frame=\"\"\n className={cn(\"flex min-h-0 flex-col\", inline && \"rounded-dialog bg-raised shadow-dialog\", inline && KAESO_DIALOG_VARIANTS.size[size].classes, className)}\n onKeyDown={(e: KeyboardEvent) => {\n if (onSubmit && e.key === \"Enter\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n onSubmit();\n }\n }}\n >\n {headerStart !== undefined ? (\n <>\n <div className=\"flex h-32 items-center justify-between px-16 pt-16 box-content\">\n <span className=\"flex items-center\">{headerStart}</span>\n {close}\n </div>\n <div className=\"flex flex-col gap-4 px-24 pt-8 pb-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n </>\n ) : (\n <div className=\"flex items-start gap-12 px-24 pt-20 pb-4\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-4 pt-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n {close && <span className=\"-mr-8 flex\">{close}</span>}\n </div>\n )}\n {children && (\n <div ref={ref} data-dialog-body=\"\" className={cn(\"min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet\", footer ? \"pb-8\" : \"pb-24\")}>\n {children}\n </div>\n )}\n {footer && (\n <div\n data-dialog-footer=\"\"\n className={cn(\"flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control\", under && \"hairline-t\")}\n >\n {footer}\n </div>\n )}\n </div>\n );\n}\n\nfunction focusFirstControl(): HTMLElement | true {\n const open = [...document.querySelectorAll<HTMLElement>(\"[role=dialog], [role=alertdialog]\")].pop();\n const frame = open?.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n return (frame && initialDialogControl(frame)) ?? open ?? true;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, DialogProps>(function Dialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, size = \"md\", inline } = props;\n const focus = useRestoreFocus(open, focusFirstControl);\n const container = usePortalContainer();\n if (inline) return <DialogFrame {...props} />;\n return (\n <BaseDialog.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className={BACKDROP} />\n <BaseDialog.Viewport className={DIALOG_VIEWPORT}>\n <BaseDialog.Popup\n ref={ref}\n initialFocus={focus.initialFocus}\n finalFocus={focus.finalFocus}\n className={cn(DIALOG_POPUP, KAESO_DIALOG_VARIANTS.size[size].classes)}\n >\n <InsetContent inset={false}>\n <DialogFrame {...props} />\n </InsetContent>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Dialog\";\n\nfunction Close({ children }: { children: ReactElement }) {\n return <BaseDialog.Close render={children} />;\n}\nif (process.env.NODE_ENV !== \"production\") Close.displayName = \"Dialog.Close\";\n\nexport const Dialog = /* @__PURE__ */ Object.assign(Root, { Close });\n\nexport const KAESO_ALERT_DIALOG_VARIANTS = {\n tone: {\n danger: { classes: \"bg-danger-tint text-danger-text\" },\n warning: { classes: \"bg-warning-tint text-warning-text\" },\n info: { classes: \"bg-info-tint text-info-text\" },\n },\n} as const;\nexport const KAESO_ALERT_DIALOG_DEFAULT_VARIANTS = { tone: \"danger\" } as const;\n\nexport interface AlertDialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel?: string | undefined;\n onConfirm: () => void | Promise<void>;\n tone?: keyof typeof KAESO_ALERT_DIALOG_VARIANTS.tone | undefined;\n confirmText?: string | undefined;\n loading?: boolean | undefined;\n inline?: boolean | undefined;\n}\n\nfunction AlertFrame({\n title,\n description,\n confirmLabel,\n cancelLabel: cancelProp,\n onConfirm,\n tone = \"danger\",\n confirmText,\n loading,\n inline,\n close,\n}: AlertDialogProps & { close: () => void }) {\n const [typed, setTyped] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const pending = useRef(false);\n const t = useUiText();\n const cancelLabel = cancelProp ?? t(\"alertDialog.cancel\", \"Cancel\");\n const [typeBefore, typeAfter = \"\"] = t(\"alertDialog.typeToConfirm\", \"Type {text} to confirm\").split(\"{text}\");\n const Title = inline ? \"h2\" : BaseAlertDialog.Title;\n const Description = inline ? \"p\" : BaseAlertDialog.Description;\n const ok = !confirmText || typed === confirmText;\n const confirm = async () => {\n if (!ok || loading || pending.current) return;\n const r = onConfirm();\n if (!(r instanceof Promise)) return close();\n pending.current = true;\n setBusy(true);\n const done = await r.then(\n () => true,\n () => false,\n );\n pending.current = false;\n setBusy(false);\n if (done) close();\n };\n return (\n <div className={cn(\"flex flex-col gap-20 p-24\", inline && \"w-440 rounded-dialog bg-raised shadow-dialog\")}>\n <div className=\"flex flex-col gap-6\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>\n </div>\n {confirmText && (\n <Input\n label={\n <span className=\"font-regular text-fg-secondary\">\n {typeBefore}\n <span className=\"mono font-medium text-fg\">{confirmText}</span>\n {typeAfter}\n </span>\n }\n value={typed}\n onChange={(e) => setTyped(e.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n onKeyDown={(e) => e.key === \"Enter\" && confirm()}\n />\n )}\n <div className=\"flex flex-wrap justify-end gap-8\">\n {inline ? <Button>{cancelLabel}</Button> : <BaseAlertDialog.Close render={<Button>{cancelLabel}</Button>} />}\n <Button variant={tone === \"danger\" ? \"danger\" : \"primary\"} onClick={confirm} disabled={!ok} loading={busy || loading}>\n {confirmLabel}\n </Button>\n </div>\n </div>\n );\n}\n\nexport function AlertDialog(props: AlertDialogProps) {\n const { open, defaultOpen, onOpenChange, trigger, inline } = props;\n const [inner, setInner] = useState(defaultOpen ?? false);\n const isOpen = open ?? inner;\n const setOpen = (o: boolean) => {\n if (open === undefined) setInner(o);\n onOpenChange?.(o);\n };\n const focus = useRestoreFocus(isOpen);\n const container = usePortalContainer();\n if (inline) return <AlertFrame {...props} close={() => undefined} />;\n return (\n <BaseAlertDialog.Root open={isOpen} onOpenChange={(o: boolean) => setOpen(o)}>\n {trigger && <BaseAlertDialog.Trigger render={trigger} />}\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className={BACKDROP} />\n <BaseAlertDialog.Viewport className={DIALOG_VIEWPORT}>\n <BaseAlertDialog.Popup initialFocus={focus.initialFocus} finalFocus={focus.finalFocus} className={cn(DIALOG_POPUP, \"w-440\")}>\n <InsetContent inset={false}>\n <AlertFrame {...props} close={() => setOpen(false)} />\n </InsetContent>\n </BaseAlertDialog.Popup>\n </BaseAlertDialog.Viewport>\n </BaseAlertDialog.Portal>\n </BaseAlertDialog.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") AlertDialog.displayName = \"AlertDialog\";\n\nexport const KAESO_LAYER_DIALOG_VARIANTS = KAESO_DIALOG_VARIANTS;\nexport const KAESO_LAYER_DIALOG_DEFAULT_VARIANTS = KAESO_DIALOG_DEFAULT_VARIANTS;\n\nexport interface DialogLayer {\n title: ReactNode;\n description?: ReactNode | undefined;\n content: ReactNode;\n footer?: ReactNode | undefined;\n}\n\nexport interface LayerDialogProps extends Omit<DialogProps, \"title\" | \"description\" | \"children\" | \"footer\" | \"headerStart\"> {\n layers: DialogLayer[];\n layer?: number | undefined;\n onLayerChange?: ((layer: number) => void) | undefined;\n}\n\nconst bodyOf = (el: HTMLElement | null | undefined) => el?.closest<HTMLElement>(\"[data-dialog-body]\") ?? null;\n\nexport function LayerDialog({ layers, layer, onLayerChange, ...props }: LayerDialogProps) {\n const [inner, setInner] = useState(0);\n const t = useUiText();\n const wanted = layer ?? inner;\n const index = wanted > 0 && wanted < layers.length ? wanted : 0;\n const sections = useRef<(HTMLDivElement | null)[]>([]);\n const focused = useRef<(HTMLElement | null)[]>([]);\n const tops = useRef<number[]>([]);\n const left = useRef(index);\n const shown = useRef(index);\n if (left.current !== index) {\n tops.current[left.current] = bodyOf(sections.current[left.current])?.scrollTop ?? 0;\n left.current = index;\n }\n useLayoutEffect(() => {\n const from = shown.current;\n shown.current = index;\n if (from === index) return;\n const back = index < from;\n if (!back) focused.current[index] = null;\n focused.current.length = index + 1;\n const section = sections.current[index];\n const body = bodyOf(section);\n if (body) body.scrollTop = back ? (tops.current[index] ?? 0) : 0;\n focusDialogSection(section, back ? focused.current[index] : null);\n }, [index]);\n const go = (i: number) => {\n if (layer === undefined) setInner(i);\n onLayerChange?.(i);\n };\n const stack = layers.slice(0, index + 1);\n const current = stack[index];\n if (!current) return null;\n const remember = (i: number) => (e: FocusEvent<HTMLElement>) => {\n if (e.target instanceof HTMLElement) focused.current[i] = e.target;\n };\n return (\n <Dialog\n {...props}\n title={current.title}\n description={current.description}\n footer={\n current.footer\n ? stack.map((l, i) =>\n l.footer ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footer}\n </div>\n ) : null,\n )\n : undefined\n }\n headerStart={\n index > 0 ? (\n <IconButton key=\"back\" icon={__icon_ArrowLeft01Icon} aria-label={t(\"dialog.back\", \"Back\")} onClick={() => go(index - 1)} className=\"animate-layer-in\" />\n ) : null\n }\n >\n {stack.map((l, i) => (\n <div\n key={i}\n ref={(el) => {\n sections.current[i] = el;\n }}\n hidden={i !== index}\n className=\"animate-layer-in\"\n onFocus={remember(i)}\n >\n {l.content}\n </div>\n ))}\n </Dialog>\n );\n}\nif (process.env.NODE_ENV !== \"production\") LayerDialog.displayName = \"LayerDialog\";\n"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { forwardRef as t } from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ //#region src/components/empty/empty.tsx
6
+ var i = { size: {
7
+ lg: { classes: "py-80 gap-16" },
8
+ md: { classes: "py-48 gap-12" },
9
+ compact: { classes: "py-32 gap-8" }
10
+ } }, a = { size: "lg" }, o = /* @__PURE__ */ t(function({ title: t, description: a, actions: o, size: s = "lg", children: c, className: l }, u) {
11
+ let d = s === "compact";
12
+ return /* @__PURE__ */ r("div", {
13
+ ref: u,
14
+ className: e("flex flex-col items-center text-center", i.size[s].classes, l),
15
+ children: [
16
+ /* @__PURE__ */ r("div", {
17
+ className: e("flex flex-col items-center", d ? "gap-2" : "gap-6"),
18
+ children: [/* @__PURE__ */ n("h2", {
19
+ className: e("font-semibold text-fg text-balance", d ? "text-body" : "text-title"),
20
+ children: t
21
+ }), a && /* @__PURE__ */ n("p", {
22
+ className: e("max-w-44ch text-fg-secondary text-pretty", d ? "text-small" : "text-body"),
23
+ children: a
24
+ })]
25
+ }),
26
+ o && /* @__PURE__ */ n("div", {
27
+ className: e("flex flex-wrap items-center justify-center gap-8", !d && "mt-8"),
28
+ children: o
29
+ }),
30
+ c
31
+ ]
32
+ });
33
+ });
34
+ process.env.NODE_ENV !== "production" && (o.displayName = "Empty");
35
+ //#endregion
36
+ export { a as n, i as r, o as t };
37
+
38
+ //# sourceMappingURL=empty-DIbBpytW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-DIbBpytW.js","names":["cn","KAESO_EMPTY_VARIANTS","KAESO_EMPTY_DEFAULT_VARIANTS","Empty","compact","size","className","title","description","actions","children"],"sources":["../../src/components/empty/empty.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_EMPTY_VARIANTS = {\n size: {\n lg: { classes: \"py-80 gap-16\" },\n md: { classes: \"py-48 gap-12\" },\n compact: { classes: \"py-32 gap-8\" },\n },\n} as const;\nexport const KAESO_EMPTY_DEFAULT_VARIANTS = { size: \"lg\" } as const;\n\nexport interface EmptyProps {\n title: ReactNode;\n description?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n size?: keyof typeof KAESO_EMPTY_VARIANTS.size | undefined;\n children?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const Empty = /* @__PURE__ */ forwardRef<HTMLDivElement, EmptyProps>(function Empty({ title, description, actions, size = \"lg\", children, className }, ref) {\n const compact = size === \"compact\";\n return (\n <div ref={ref} className={cn(\"flex flex-col items-center text-center\", KAESO_EMPTY_VARIANTS.size[size].classes, className)}>\n <div className={cn(\"flex flex-col items-center\", compact ? \"gap-2\" : \"gap-6\")}>\n <h2 className={cn(\"font-semibold text-fg text-balance\", compact ? \"text-body\" : \"text-title\")}>{title}</h2>\n {description && <p className={cn(\"max-w-44ch text-fg-secondary text-pretty\", compact ? \"text-small\" : \"text-body\")}>{description}</p>}\n </div>\n {actions && <div className={cn(\"flex flex-wrap items-center justify-center gap-8\", !compact && \"mt-8\")}>{actions}</div>}\n {children}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Empty.displayName = \"Empty\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAuB,EAClC,MAAM;CACJ,IAAI,EAAE,SAAS,eAAe;CAC9B,IAAI,EAAE,SAAS,eAAe;CAC9B,SAAS,EAAE,SAAS,cAAc;AACpC,EACF,GACaC,IAA+B,EAAE,MAAM,KAAK,GAW5CC,IAAwB,kBAAuC,SAAe,EAAE,UAAO,gBAAa,YAAS,UAAO,MAAM,aAAU,gBAAa,GAAK;CACjK,IAAMC,IAAUC,MAAS;CACzB,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWL,EAAG,0CAA0CC,EAAqB,KAAKI,EAAK,CAAC,SAASC,CAAS;EAAzH,UAAA;GACE,kBAAC,OAAD;IAAK,WAAWN,EAAG,8BAA8BI,IAAU,UAAU,OAAO;IAA5E,UAAA,CACE,kBAAC,MAAD;KAAI,WAAWJ,EAAG,sCAAsCI,IAAU,cAAc,YAAY;KAAI,UAAAG;IAAU,CAAA,GACzGC,KAAe,kBAAC,KAAD;KAAG,WAAWR,EAAG,4CAA4CI,IAAU,eAAe,WAAW;KAAI,UAAAI;IAAe,CAAA,CACjI;;GACJC,KAAW,kBAAC,OAAD;IAAK,WAAWT,EAAG,oDAAoD,CAACI,KAAW,MAAM;IAAI,UAAAK;GAAa,CAAA;GACrHC;EACE;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc"}
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import { t as e } from "./cn-CidVUKMm.js";
3
+ import { i as t } from "./context-BELWW79w.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
+ //#region src/components/field/field.tsx
7
+ var c = { layout: {
8
+ vertical: { classes: "flex flex-col gap-8" },
9
+ horizontal: { classes: "grid grid-cols-1 gap-8 md:grid-cols-label md:gap-x-24" }
10
+ } }, l = { layout: "vertical" }, u = /* @__PURE__ */ n(null), d = () => i(u), f = /* @__PURE__ */ r(function({ label: n, description: r, invalid: i, error: l, optional: d, required: f = !1, disabled: p = !1, layout: m = "vertical", id: h, className: g, children: _, ...v }, y) {
11
+ let b = a(), x = t(), S = h ?? `k-field-${b}`, C = n ? `${S}-label` : void 0, w = r ? `${S}-description` : void 0, T = l ? `${S}-error` : void 0, E = !!i || !!l, D = [w, T].filter(Boolean).join(" ") || void 0, O = {
12
+ controlId: S,
13
+ labelId: C,
14
+ descriptionId: w,
15
+ errorId: T,
16
+ invalid: E,
17
+ disabled: p,
18
+ required: f,
19
+ controlProps: {
20
+ id: S,
21
+ ...D ? { "aria-describedby": D } : {},
22
+ ...E ? { "aria-invalid": !0 } : {},
23
+ ...f ? { "aria-required": !0 } : {}
24
+ }
25
+ };
26
+ return /* @__PURE__ */ o(u.Provider, {
27
+ value: O,
28
+ children: /* @__PURE__ */ s("div", {
29
+ ref: y,
30
+ className: e(c.layout[m].classes, g),
31
+ "data-disabled": p || void 0,
32
+ ...v,
33
+ children: [n && /* @__PURE__ */ s("label", {
34
+ id: C,
35
+ htmlFor: S,
36
+ className: e("flex items-baseline gap-6 text-body font-medium text-fg", m === "horizontal" && "md:pt-8", p && "text-fg-disabled"),
37
+ children: [n, d && /* @__PURE__ */ o("span", {
38
+ className: "text-small font-regular text-fg-tertiary",
39
+ children: x("field.optional", "Optional")
40
+ })]
41
+ }), /* @__PURE__ */ s("div", {
42
+ className: "flex min-w-0 flex-col gap-6",
43
+ children: [
44
+ _,
45
+ r && /* @__PURE__ */ o("p", {
46
+ id: w,
47
+ className: "text-small text-fg-secondary",
48
+ children: r
49
+ }),
50
+ l && /* @__PURE__ */ o("p", {
51
+ id: T,
52
+ className: "sr-only",
53
+ children: l
54
+ })
55
+ ]
56
+ })]
57
+ })
58
+ });
59
+ });
60
+ process.env.NODE_ENV !== "production" && (f.displayName = "Field");
61
+ var p = /* @__PURE__ */ r(function({ legend: t, description: n, className: r, children: i, ...a }, c) {
62
+ return /* @__PURE__ */ s("fieldset", {
63
+ ref: c,
64
+ className: e("flex min-w-0 flex-col gap-16", r),
65
+ ...a,
66
+ children: [/* @__PURE__ */ s("div", {
67
+ className: "flex flex-col gap-4",
68
+ children: [/* @__PURE__ */ o("legend", {
69
+ className: "text-body-lg font-semibold text-fg",
70
+ children: t
71
+ }), n && /* @__PURE__ */ o("p", {
72
+ className: "text-small text-fg-secondary",
73
+ children: n
74
+ })]
75
+ }), i]
76
+ });
77
+ });
78
+ process.env.NODE_ENV !== "production" && (p.displayName = "Fieldset");
79
+ function m(e) {
80
+ let t = d(), n = a();
81
+ if (t) return {
82
+ controlProps: t.controlProps,
83
+ wrapId: void 0
84
+ };
85
+ if (e.label === void 0 && e.description === void 0 && e.error === void 0) return {
86
+ controlProps: e.invalid ? { "aria-invalid": !0 } : {},
87
+ wrapId: void 0
88
+ };
89
+ let r = e.id ?? `k-field-${n}`, i = [e.description ? `${r}-description` : "", e.error ? `${r}-error` : ""].filter(Boolean).join(" ");
90
+ return {
91
+ controlProps: {
92
+ id: r,
93
+ ...i ? { "aria-describedby": i } : {},
94
+ ...e.error || e.invalid ? { "aria-invalid": !0 } : {},
95
+ ...e.required ? { "aria-required": !0 } : {}
96
+ },
97
+ wrapId: r
98
+ };
99
+ }
100
+ function h(e, t) {
101
+ let { label: n, description: r, error: i, optional: a, required: s, layout: c } = e;
102
+ return n === void 0 && r === void 0 && i === void 0 ? t : /* @__PURE__ */ o(f, {
103
+ label: n,
104
+ description: r,
105
+ error: i,
106
+ invalid: e.invalid,
107
+ optional: a,
108
+ required: s,
109
+ layout: c,
110
+ id: e.id,
111
+ disabled: e.disabled,
112
+ className: e.className,
113
+ children: t
114
+ });
115
+ }
116
+ //#endregion
117
+ export { d as a, c as i, p as n, m as o, l as r, h as s, f as t };
118
+
119
+ //# sourceMappingURL=field-d8V94bvZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-d8V94bvZ.js","names":["cn","useUiText","KAESO_FIELD_VARIANTS","KAESO_FIELD_DEFAULT_VARIANTS","FieldContext","useField","useContext","Field","invalidProp","props","auto","useId","t","controlId","id","labelId","label","descriptionId","description","errorId","error","invalid","describedBy","value","required","layout","className","disabled","optional","children","Fieldset","legend","useFieldControl","field","withField","control"],"sources":["../../src/components/field/field.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type FieldsetHTMLAttributes, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FIELD_VARIANTS = {\n layout: {\n vertical: { classes: \"flex flex-col gap-8\" },\n horizontal: {\n classes: \"grid grid-cols-1 gap-8 md:grid-cols-label md:gap-x-24\",\n },\n },\n} as const;\nexport const KAESO_FIELD_DEFAULT_VARIANTS = { layout: \"vertical\" } as const;\n\nexport interface FieldContextValue {\n controlId: string;\n labelId: string | undefined;\n descriptionId: string | undefined;\n errorId: string | undefined;\n invalid: boolean;\n disabled: boolean;\n required: boolean;\n controlProps: { id: string; \"aria-describedby\"?: string | undefined; \"aria-invalid\"?: true | undefined; \"aria-required\"?: true | undefined };\n}\n\nconst FieldContext = /* @__PURE__ */ createContext<FieldContextValue | null>(null);\nexport const useField = () => useContext(FieldContext);\n\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n invalid?: boolean | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n id?: string | undefined;\n children: ReactNode;\n}\n\nexport const Field = /* @__PURE__ */ forwardRef<HTMLDivElement, FieldProps>(function Field(\n { label, description, invalid: invalidProp, error, optional, required = false, disabled = false, layout = \"vertical\", id, className, children, ...props },\n ref,\n) {\n const auto = useId();\n const t = useUiText();\n const controlId = id ?? `k-field-${auto}`;\n const labelId = label ? `${controlId}-label` : undefined;\n const descriptionId = description ? `${controlId}-description` : undefined;\n const errorId = error ? `${controlId}-error` : undefined;\n const invalid = !!invalidProp || !!error;\n const describedBy = [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\n const value: FieldContextValue = {\n controlId,\n labelId,\n descriptionId,\n errorId,\n invalid,\n disabled,\n required,\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(invalid ? { \"aria-invalid\": true as const } : {}),\n ...(required ? { \"aria-required\": true as const } : {}),\n },\n };\n return (\n <FieldContext.Provider value={value}>\n <div ref={ref} className={cn(KAESO_FIELD_VARIANTS.layout[layout].classes, className)} data-disabled={disabled || undefined} {...props}>\n {label && (\n <label\n id={labelId}\n htmlFor={controlId}\n className={cn(\"flex items-baseline gap-6 text-body font-medium text-fg\", layout === \"horizontal\" && \"md:pt-8\", disabled && \"text-fg-disabled\")}\n >\n {label}\n {optional && <span className=\"text-small font-regular text-fg-tertiary\">{t(\"field.optional\", \"Optional\")}</span>}\n </label>\n )}\n <div className=\"flex min-w-0 flex-col gap-6\">\n {children}\n {description && (\n <p id={descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </p>\n )}\n {error && (\n <p id={errorId} className=\"sr-only\">\n {error}\n </p>\n )}\n </div>\n </div>\n </FieldContext.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Field.displayName = \"Field\";\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n legend: ReactNode;\n description?: ReactNode | undefined;\n}\n\nexport const Fieldset = /* @__PURE__ */ forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset({ legend, description, className, children, ...props }, ref) {\n return (\n <fieldset ref={ref} className={cn(\"flex min-w-0 flex-col gap-16\", className)} {...props}>\n <div className=\"flex flex-col gap-4\">\n <legend className=\"text-body-lg font-semibold text-fg\">{legend}</legend>\n {description && <p className=\"text-small text-fg-secondary\">{description}</p>}\n </div>\n {children}\n </fieldset>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Fieldset.displayName = \"Fieldset\";\n\nexport function useFieldControl(props: {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n invalid?: boolean | undefined;\n required?: boolean | undefined;\n id?: string | undefined;\n}) {\n const field = useField();\n const auto = useId();\n if (field) return { controlProps: field.controlProps as Record<string, unknown>, wrapId: undefined };\n const wraps = props.label !== undefined || props.description !== undefined || props.error !== undefined;\n if (!wraps) return { controlProps: (props.invalid ? { \"aria-invalid\": true } : {}) as Record<string, unknown>, wrapId: undefined };\n const controlId = props.id ?? `k-field-${auto}`;\n const describedBy = [props.description ? `${controlId}-description` : \"\", props.error ? `${controlId}-error` : \"\"].filter(Boolean).join(\" \");\n return {\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(props.error || props.invalid ? { \"aria-invalid\": true } : {}),\n ...(props.required ? { \"aria-required\": true } : {}),\n } as Record<string, unknown>,\n wrapId: controlId,\n };\n}\n\nexport interface FieldWrapProps {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n}\n\nexport function withField(\n props: FieldWrapProps & { id?: string | undefined; disabled?: boolean | undefined; invalid?: boolean | undefined; className?: string | undefined },\n control: ReactNode,\n) {\n const { label, description, error, optional, required, layout } = props;\n if (label === undefined && description === undefined && error === undefined) return control;\n return (\n <Field\n label={label}\n description={description}\n error={error}\n invalid={props.invalid}\n optional={optional}\n required={required}\n layout={layout}\n id={props.id}\n disabled={props.disabled}\n className={props.className}\n >\n {control}\n </Field>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ //#region src/utils/field-press.ts
2
+ function e(e) {
3
+ if (e.target !== e.currentTarget) return;
4
+ let t = e.currentTarget.querySelector("input:not([type=hidden])");
5
+ t && !t.disabled && (e.preventDefault(), t.focus());
6
+ }
7
+ //#endregion
8
+ export { e as t };
9
+
10
+ //# sourceMappingURL=field-press-DwzBFafd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-press-DwzBFafd.js","names":["focusInputOnPress","input"],"sources":["../../src/utils/field-press.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n"],"mappings":";AAEA,SAAgBA,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd"}
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/locale-names.ts
2
+ var e = {
3
+ en: "English",
4
+ de: "Deutsch",
5
+ "zh-CN": "简体中文"
6
+ };
7
+ //#endregion
8
+ export { e as t };
9
+
10
+ //# sourceMappingURL=i18n-0RW0IAf3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-0RW0IAf3.js","names":["UI_LOCALE_NAMES"],"sources":["../../src/i18n/locale-names.ts"],"sourcesContent":["import type { UiLocale } from \"./locale-tags.js\";\n\nexport const UI_LOCALE_NAMES: Readonly<Record<UiLocale, string>> = {\n en: \"English\",\n de: \"Deutsch\",\n \"zh-CN\": \"简体中文\",\n};\n"],"mappings":";AAEA,IAAaA,IAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,SAAS;AACX"}