@logicplanes/kaeso-ui 0.4.1 → 0.4.2

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 (249) hide show
  1. package/ai/component-guides.md +51 -1
  2. package/ai/component-registry.json +104 -8
  3. package/ai/component-registry.md +30 -4
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +1 -1
  6. package/dist/blocks/delete-resource.js +1 -1
  7. package/dist/blocks/pages.js +5 -5
  8. package/dist/blocks/resource-list.js +4 -4
  9. package/dist/chunks/{app-frame-DZPEf2NQ.js → app-frame-C8csevkL.js} +7 -7
  10. package/dist/chunks/{app-frame-DZPEf2NQ.js.map → app-frame-C8csevkL.js.map} +1 -1
  11. package/dist/chunks/{avatar-HnvBUoe5.js → avatar-CWbdwbJv.js} +2 -2
  12. package/dist/chunks/{avatar-HnvBUoe5.js.map → avatar-CWbdwbJv.js.map} +1 -1
  13. package/dist/chunks/{badge-CM8ahjDR.js → badge-C2KtxCLB.js} +2 -2
  14. package/dist/chunks/{badge-CM8ahjDR.js.map → badge-C2KtxCLB.js.map} +1 -1
  15. package/dist/chunks/{banner-CvYgPwCc.js → banner-Cb8OWnqJ.js} +4 -4
  16. package/dist/chunks/{banner-CvYgPwCc.js.map → banner-Cb8OWnqJ.js.map} +1 -1
  17. package/dist/chunks/{button-9q66Ta23.js → button-Dzu7_csE.js} +7 -7
  18. package/dist/chunks/{button-9q66Ta23.js.map → button-Dzu7_csE.js.map} +1 -1
  19. package/dist/chunks/{calendar-CeNcqLFd.js → calendar--YemJsv4.js} +2 -2
  20. package/dist/chunks/{calendar-CeNcqLFd.js.map → calendar--YemJsv4.js.map} +1 -1
  21. package/dist/chunks/{checkbox-C_DrNA2N.js → checkbox-CDfC6E-M.js} +2 -2
  22. package/dist/chunks/{checkbox-C_DrNA2N.js.map → checkbox-CDfC6E-M.js.map} +1 -1
  23. package/dist/chunks/{cn-Isw2DnQX.js → cn-Dj6sRgkF.js} +8 -1
  24. package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
  25. package/dist/chunks/{code-block-mEH6Sy3h.js → code-block-U5fCqwgC.js} +75 -54
  26. package/dist/chunks/code-block-U5fCqwgC.js.map +1 -0
  27. package/dist/chunks/{code-Bp2p9AuD.js → code-tqj0uhBL.js} +2 -2
  28. package/dist/chunks/{code-Bp2p9AuD.js.map → code-tqj0uhBL.js.map} +1 -1
  29. package/dist/chunks/{collapsible-CtQNJn9b.js → collapsible-CKrCX_T9.js} +3 -3
  30. package/dist/chunks/{collapsible-CtQNJn9b.js.map → collapsible-CKrCX_T9.js.map} +1 -1
  31. package/dist/chunks/{combobox-D8ZOm8uT.js → combobox-BARyrpXH.js} +6 -6
  32. package/dist/chunks/{combobox-D8ZOm8uT.js.map → combobox-BARyrpXH.js.map} +1 -1
  33. package/dist/chunks/{command-list-CzMbdtJs.js → command-list-0RR4DpUe.js} +54 -54
  34. package/dist/chunks/command-list-0RR4DpUe.js.map +1 -0
  35. package/dist/chunks/{copy-button-Cdea0wKl.js → copy-button-7-irieJw.js} +5 -5
  36. package/dist/chunks/{copy-button-Cdea0wKl.js.map → copy-button-7-irieJw.js.map} +1 -1
  37. package/dist/chunks/{core-FtMDNELx.js → core-Bl9NrBLS.js} +4 -4
  38. package/dist/chunks/{core-FtMDNELx.js.map → core-Bl9NrBLS.js.map} +1 -1
  39. package/dist/chunks/{date-popup-NytWvSNh.js → date-popup-RQkqhko4.js} +4 -4
  40. package/dist/chunks/{date-popup-NytWvSNh.js.map → date-popup-RQkqhko4.js.map} +1 -1
  41. package/dist/chunks/{dialog-BZCVFmGF.js → dialog-DQ9vZ7vr.js} +5 -5
  42. package/dist/chunks/{dialog-BZCVFmGF.js.map → dialog-DQ9vZ7vr.js.map} +1 -1
  43. package/dist/chunks/{empty-By1qTJr6.js → empty-DvhyMXQq.js} +2 -2
  44. package/dist/chunks/{empty-By1qTJr6.js.map → empty-DvhyMXQq.js.map} +1 -1
  45. package/dist/chunks/{field-DfITT6Jm.js → field-TviMvYa2.js} +2 -2
  46. package/dist/chunks/{field-DfITT6Jm.js.map → field-TviMvYa2.js.map} +1 -1
  47. package/dist/chunks/{icon-D5uD_mnL.js → icon-D7ja-_Yk.js} +2 -2
  48. package/dist/chunks/{icon-D5uD_mnL.js.map → icon-D7ja-_Yk.js.map} +1 -1
  49. package/dist/chunks/{icon-button-C7Du4pvb.js → icon-button-CPYR21Sz.js} +3 -3
  50. package/dist/chunks/{icon-button-C7Du4pvb.js.map → icon-button-CPYR21Sz.js.map} +1 -1
  51. package/dist/chunks/{identity-BcVQd-7H.js → identity-DPuTkMsa.js} +6 -6
  52. package/dist/chunks/{identity-BcVQd-7H.js.map → identity-DPuTkMsa.js.map} +1 -1
  53. package/dist/chunks/{input-B6Docqrk.js → input-TyLIaQ5k.js} +5 -5
  54. package/dist/chunks/{input-B6Docqrk.js.map → input-TyLIaQ5k.js.map} +1 -1
  55. package/dist/chunks/{input-group-Dgdb0JpZ.js → input-group-CUSNsQjQ.js} +4 -4
  56. package/dist/chunks/{input-group-Dgdb0JpZ.js.map → input-group-CUSNsQjQ.js.map} +1 -1
  57. package/dist/chunks/{iso-field-SOZ7Z-yE.js → iso-field-CWbxlll-.js} +2 -2
  58. package/dist/chunks/{iso-field-SOZ7Z-yE.js.map → iso-field-CWbxlll-.js.map} +1 -1
  59. package/dist/chunks/{json-view-DCTMY_j4.js → json-view-Dqd2TDkc.js} +3 -3
  60. package/dist/chunks/{json-view-DCTMY_j4.js.map → json-view-Dqd2TDkc.js.map} +1 -1
  61. package/dist/chunks/{kbd-9A9rX60U.js → kbd-BF1vKXJf.js} +2 -2
  62. package/dist/chunks/{kbd-9A9rX60U.js.map → kbd-BF1vKXJf.js.map} +1 -1
  63. package/dist/chunks/{link-CtII7u3h.js → link-B2I55xg9.js} +3 -3
  64. package/dist/chunks/{link-CtII7u3h.js.map → link-B2I55xg9.js.map} +1 -1
  65. package/dist/chunks/{list-CMXBTVkI.js → list-CkOozrVY.js} +8 -8
  66. package/dist/chunks/{list-CMXBTVkI.js.map → list-CkOozrVY.js.map} +1 -1
  67. package/dist/chunks/{loader-DqOUwS1j.js → loader-DCfPndXa.js} +2 -2
  68. package/dist/chunks/{loader-DqOUwS1j.js.map → loader-DCfPndXa.js.map} +1 -1
  69. package/dist/chunks/{markdown-CwVQ0niB.js → markdown-BEgwZFlu.js} +9 -9
  70. package/dist/chunks/{markdown-CwVQ0niB.js.map → markdown-BEgwZFlu.js.map} +1 -1
  71. package/dist/chunks/{menu-Cjg4RggA.js → menu-fl_QQb38.js} +4 -4
  72. package/dist/chunks/{menu-Cjg4RggA.js.map → menu-fl_QQb38.js.map} +1 -1
  73. package/dist/chunks/{meter-VrC2J2GF.js → meter-Bj4N3Xuh.js} +2 -2
  74. package/dist/chunks/{meter-VrC2J2GF.js.map → meter-Bj4N3Xuh.js.map} +1 -1
  75. package/dist/chunks/{nav-sheet-Y2Ite-iF.js → nav-sheet-B2rNb8GB.js} +2 -2
  76. package/dist/chunks/{nav-sheet-Y2Ite-iF.js.map → nav-sheet-B2rNb8GB.js.map} +1 -1
  77. package/dist/chunks/{nav-wordmark-CjWM3NYa.js → nav-wordmark-_pjheAsZ.js} +2 -2
  78. package/dist/chunks/{nav-wordmark-CjWM3NYa.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
  79. package/dist/chunks/{page-header-CZCQVHYE.js → page-header-DjUMDG69.js} +4 -4
  80. package/dist/chunks/{page-header-CZCQVHYE.js.map → page-header-DjUMDG69.js.map} +1 -1
  81. package/dist/chunks/{pagination-BStrMDqM.js → pagination-BaY8jdli.js} +4 -4
  82. package/dist/chunks/{pagination-BStrMDqM.js.map → pagination-BaY8jdli.js.map} +1 -1
  83. package/dist/chunks/{picker-popover-BerQAEBT.js → picker-popover-DShea4b8.js} +6 -6
  84. package/dist/chunks/{picker-popover-BerQAEBT.js.map → picker-popover-DShea4b8.js.map} +1 -1
  85. package/dist/chunks/{popover-CgLt_4yG.js → popover-CFMwaeIP.js} +2 -2
  86. package/dist/chunks/{popover-CgLt_4yG.js.map → popover-CFMwaeIP.js.map} +1 -1
  87. package/dist/chunks/{radio-07Muf4cX.js → radio-Yl0nO-Sj.js} +2 -2
  88. package/dist/chunks/{radio-07Muf4cX.js.map → radio-Yl0nO-Sj.js.map} +1 -1
  89. package/dist/chunks/{range-popup-BCov1iPe.js → range-popup-CkhsK3wI.js} +6 -6
  90. package/dist/chunks/{range-popup-BCov1iPe.js.map → range-popup-CkhsK3wI.js.map} +1 -1
  91. package/dist/chunks/{release-art-69WpgVik.js → release-art-ZwfFQImt.js} +2 -2
  92. package/dist/chunks/{release-art-69WpgVik.js.map → release-art-ZwfFQImt.js.map} +1 -1
  93. package/dist/chunks/{rights-UVngOX_4.js → rights-BlQx9C_j.js} +9 -9
  94. package/dist/chunks/{rights-UVngOX_4.js.map → rights-BlQx9C_j.js.map} +1 -1
  95. package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
  96. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
  97. package/dist/chunks/{section-Bvg0EUnr.js → section-Ce1efbsP.js} +3 -3
  98. package/dist/chunks/{section-Bvg0EUnr.js.map → section-Ce1efbsP.js.map} +1 -1
  99. package/dist/chunks/{segmented-DRLDN8EW.js → segmented-C97zvDR1.js} +4 -4
  100. package/dist/chunks/{segmented-DRLDN8EW.js.map → segmented-C97zvDR1.js.map} +1 -1
  101. package/dist/chunks/{select-eFTHLeYG.js → select-x4XVsdCI.js} +4 -4
  102. package/dist/chunks/{select-eFTHLeYG.js.map → select-x4XVsdCI.js.map} +1 -1
  103. package/dist/chunks/{separator-D86IW7Ge.js → separator-D7TzNHmX.js} +2 -2
  104. package/dist/chunks/{separator-D86IW7Ge.js.map → separator-D7TzNHmX.js.map} +1 -1
  105. package/dist/chunks/{sidebar-DifJ5KgE.js → sidebar-DtFlejU7.js} +7 -7
  106. package/dist/chunks/{sidebar-DifJ5KgE.js.map → sidebar-DtFlejU7.js.map} +1 -1
  107. package/dist/chunks/{sidebar-menu-XKOiwrQp.js → sidebar-menu-CxQbGwyj.js} +2 -2
  108. package/dist/chunks/{sidebar-menu-XKOiwrQp.js.map → sidebar-menu-CxQbGwyj.js.map} +1 -1
  109. package/dist/chunks/{skeleton-Cu74kGJA.js → skeleton-Dcz57Zyp.js} +2 -2
  110. package/dist/chunks/{skeleton-Cu74kGJA.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
  111. package/dist/chunks/{slider-Dh0qq1wa.js → slider-Ci83PGtj.js} +2 -2
  112. package/dist/chunks/{slider-Dh0qq1wa.js.map → slider-Ci83PGtj.js.map} +1 -1
  113. package/dist/chunks/{status-dot-u4Izk-uC.js → status-dot-QJTF0Yv4.js} +3 -3
  114. package/dist/chunks/{status-dot-u4Izk-uC.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
  115. package/dist/chunks/{swap-text-CC77iKJF.js → swap-text-Dr0Irxz6.js} +2 -2
  116. package/dist/chunks/{swap-text-CC77iKJF.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
  117. package/dist/chunks/{switch-CbU9m9gi.js → switch-b-VkStWj.js} +3 -3
  118. package/dist/chunks/{switch-CbU9m9gi.js.map → switch-b-VkStWj.js.map} +1 -1
  119. package/dist/chunks/table-BeOSKl_3.js +84 -0
  120. package/dist/chunks/table-BeOSKl_3.js.map +1 -0
  121. package/dist/chunks/{tag-CqSk8F7M.js → tag-DNdX1XRR.js} +4 -4
  122. package/dist/chunks/{tag-CqSk8F7M.js.map → tag-DNdX1XRR.js.map} +1 -1
  123. package/dist/chunks/{text-hFc6TDp9.js → text-DCGGNqTM.js} +3 -3
  124. package/dist/chunks/{text-hFc6TDp9.js.map → text-DCGGNqTM.js.map} +1 -1
  125. package/dist/chunks/{textarea-17Ftvph_.js → textarea-CT2S2JVM.js} +5 -5
  126. package/dist/chunks/{textarea-17Ftvph_.js.map → textarea-CT2S2JVM.js.map} +1 -1
  127. package/dist/chunks/{timeseries-CbnSFD5q.js → timeseries-B-8OfeZm.js} +3 -3
  128. package/dist/chunks/{timeseries-CbnSFD5q.js.map → timeseries-B-8OfeZm.js.map} +1 -1
  129. package/dist/chunks/{toolbar-B_960Ttx.js → toolbar-DL6zVrzU.js} +2 -2
  130. package/dist/chunks/{toolbar-B_960Ttx.js.map → toolbar-DL6zVrzU.js.map} +1 -1
  131. package/dist/chunks/{tooltip-CRApbLF6.js → tooltip-BMQ9BtPp.js} +4 -4
  132. package/dist/chunks/{tooltip-CRApbLF6.js.map → tooltip-BMQ9BtPp.js.map} +1 -1
  133. package/dist/chunks/{tooltip-root-Dssjjp-E.js → tooltip-root-BeAMXzxU.js} +4 -4
  134. package/dist/chunks/{tooltip-root-Dssjjp-E.js.map → tooltip-root-BeAMXzxU.js.map} +1 -1
  135. package/dist/components/app-frame.js +2 -2
  136. package/dist/components/avatar.js +1 -1
  137. package/dist/components/badge.js +1 -1
  138. package/dist/components/banner.js +1 -1
  139. package/dist/components/button-group.js +4 -4
  140. package/dist/components/button.js +1 -1
  141. package/dist/components/calendar.js +1 -1
  142. package/dist/components/charts/bar.js +2 -2
  143. package/dist/components/charts/donut.js +2 -2
  144. package/dist/components/charts/gauge.js +2 -2
  145. package/dist/components/charts/heatmap.js +1 -1
  146. package/dist/components/charts/sankey.js +2 -2
  147. package/dist/components/charts/sparkline.js +1 -1
  148. package/dist/components/charts/timeseries.js +1 -1
  149. package/dist/components/charts.js +2 -2
  150. package/dist/components/checkbox.js +1 -1
  151. package/dist/components/code-block.js +2 -2
  152. package/dist/components/code.js +1 -1
  153. package/dist/components/collapsible.js +1 -1
  154. package/dist/components/combobox.js +1 -1
  155. package/dist/components/command-list.js +2 -2
  156. package/dist/components/command-palette.js +32 -31
  157. package/dist/components/command-palette.js.map +1 -1
  158. package/dist/components/copy-button.js +1 -1
  159. package/dist/components/data-table.js +12 -12
  160. package/dist/components/date-picker.js +6 -6
  161. package/dist/components/dialog.js +2 -2
  162. package/dist/components/display-options.js +8 -8
  163. package/dist/components/empty.js +1 -1
  164. package/dist/components/field.js +1 -1
  165. package/dist/components/figure.js +60 -0
  166. package/dist/components/figure.js.map +1 -0
  167. package/dist/components/filter-chip.js +5 -5
  168. package/dist/components/filter-row.js +1 -1
  169. package/dist/components/flow.js +2 -2
  170. package/dist/components/heading.js +1 -1
  171. package/dist/components/icon-button.js +1 -1
  172. package/dist/components/icon.js +1 -1
  173. package/dist/components/input.js +7 -7
  174. package/dist/components/kaeso/conversation.js +8 -8
  175. package/dist/components/kaeso/identity.js +1 -1
  176. package/dist/components/kaeso/moments.js +5 -5
  177. package/dist/components/kaeso/rights.js +1 -1
  178. package/dist/components/kaeso/usage.js +5 -5
  179. package/dist/components/kaeso.js +10 -10
  180. package/dist/components/kbd.js +1 -1
  181. package/dist/components/key-value.js +3 -3
  182. package/dist/components/label.js +1 -1
  183. package/dist/components/layout.js +1 -1
  184. package/dist/components/link.js +1 -1
  185. package/dist/components/list.js +1 -1
  186. package/dist/components/loader.js +2 -2
  187. package/dist/components/logo.js +2 -2
  188. package/dist/components/markdown.js +1 -1
  189. package/dist/components/menu.js +1 -1
  190. package/dist/components/meter.js +1 -1
  191. package/dist/components/page-header.js +1 -1
  192. package/dist/components/pagination.js +1 -1
  193. package/dist/components/playground.js +16 -16
  194. package/dist/components/popover.js +2 -2
  195. package/dist/components/qr-code.js +1 -1
  196. package/dist/components/radio.js +1 -1
  197. package/dist/components/release-art.js +1 -1
  198. package/dist/components/scroll-area.js +1 -41
  199. package/dist/components/section.js +1 -1
  200. package/dist/components/segmented.js +1 -1
  201. package/dist/components/select.js +1 -1
  202. package/dist/components/separator.js +1 -1
  203. package/dist/components/settings.js +2 -2
  204. package/dist/components/sheet.js +2 -2
  205. package/dist/components/sidebar.js +1 -1
  206. package/dist/components/skeleton.js +1 -1
  207. package/dist/components/slider.js +1 -1
  208. package/dist/components/stat.js +3 -3
  209. package/dist/components/status-dot.js +1 -1
  210. package/dist/components/surface.js +1 -1
  211. package/dist/components/swap-text.js +1 -1
  212. package/dist/components/switch.js +1 -1
  213. package/dist/components/table.js +1 -1
  214. package/dist/components/tabs.js +2 -2
  215. package/dist/components/tag.js +1 -1
  216. package/dist/components/text.js +1 -1
  217. package/dist/components/theme-image.js +1 -1
  218. package/dist/components/theme-menu.js +2 -2
  219. package/dist/components/theme-select.js +1 -1
  220. package/dist/components/timeline.js +1 -1
  221. package/dist/components/toast.js +4 -4
  222. package/dist/components/toc.js +37 -22
  223. package/dist/components/toc.js.map +1 -1
  224. package/dist/components/toolbar.js +1 -1
  225. package/dist/components/tooltip.js +1 -1
  226. package/dist/components/visually-hidden.js +1 -1
  227. package/dist/index.js +88 -86
  228. package/dist/styles.css +1 -1
  229. package/dist/types/components/code-block/code-block.d.ts +1 -1
  230. package/dist/types/components/code-block/indent.d.ts +3 -0
  231. package/dist/types/components/command-list/command-list.d.ts +1 -0
  232. package/dist/types/components/command-list/docs.d.ts +1 -0
  233. package/dist/types/components/command-palette/command-palette.d.ts +1 -0
  234. package/dist/types/components/command-palette/docs.d.ts +1 -0
  235. package/dist/types/components/figure/docs.d.ts +12 -0
  236. package/dist/types/components/figure/figure.d.ts +25 -0
  237. package/dist/types/components/figure/index.d.ts +1 -0
  238. package/dist/types/components/table/docs.d.ts +3 -1
  239. package/dist/types/components/table/table.d.ts +18 -1
  240. package/dist/types/index.d.ts +1 -0
  241. package/dist/types/utils/cn.d.ts +4 -0
  242. package/dist/utils.js +1 -1
  243. package/package.json +3 -3
  244. package/dist/chunks/cn-Isw2DnQX.js.map +0 -1
  245. package/dist/chunks/code-block-mEH6Sy3h.js.map +0 -1
  246. package/dist/chunks/command-list-CzMbdtJs.js.map +0 -1
  247. package/dist/chunks/table-CTxDp7zC.js +0 -67
  248. package/dist/chunks/table-CTxDp7zC.js.map +0 -1
  249. package/dist/components/scroll-area.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slider-Dh0qq1wa.js","names":["Slider","BaseSlider","cn","useUiText","useLocale","KAESO_SLIDER_VARIANTS","KAESO_SLIDER_DEFAULT_VARIANTS","Slider$1","formatValueProp","ariaLabel","force","t","locale","formatValue","v","initial","value","defaultValue","min","count","tickValues","ticks","max","step","i","Slider","onValueChange","onValueCommitted","disabled","name","className","getAriaLabel","index","formatted","values","tick"],"sources":["../../src/components/slider/slider.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_SLIDER_VARIANTS = {\n size: {\n md: { classes: \"h-20\" },\n },\n} as const;\nexport const KAESO_SLIDER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface SliderProps {\n value?: number | number[] | undefined;\n defaultValue?: number | number[] | undefined;\n onValueChange?: ((value: number | number[]) => void) | undefined;\n onValueCommitted?: ((value: number | number[]) => void) | undefined;\n min?: number | undefined;\n max?: number | undefined;\n step?: number | undefined;\n ticks?: boolean | number[] | undefined;\n formatValue?: ((value: number) => string) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n \"aria-label\"?: string | undefined;\n getAriaLabel?: ((index: number) => string) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Slider = /* @__PURE__ */ forwardRef<HTMLDivElement, SliderProps>(function Slider(\n {\n value,\n defaultValue,\n onValueChange,\n onValueCommitted,\n min = 0,\n max = 100,\n step = 1,\n ticks,\n formatValue: formatValueProp,\n disabled,\n name,\n className,\n \"aria-label\": ariaLabel,\n getAriaLabel,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const formatValue =\n formatValueProp ?? (locale === \"en\" ? String : (v: number) => new Intl.NumberFormat(locale, { useGrouping: false, maximumFractionDigits: 20 }).format(v));\n const initial = value ?? defaultValue ?? min;\n const count = Array.isArray(initial) ? initial.length : 1;\n const tickValues = Array.isArray(ticks) ? ticks : ticks ? Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step) : [];\n return (\n <BaseSlider.Root\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: number | readonly number[]) => onValueChange(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n {...(onValueCommitted ? { onValueCommitted: (v: number | readonly number[]) => onValueCommitted(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n min={min}\n max={max}\n step={step}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n {...(locale === \"en\" ? {} : { locale })}\n className={cn(\"relative w-full min-w-120 touch-none select-none data-disabled:opacity-40\", className)}\n {...(force ? { \"data-force\": force } : {})}\n >\n <BaseSlider.Control className=\"relative flex h-20 w-full cursor-pointer items-center data-disabled:cursor-not-allowed\">\n <BaseSlider.Track className=\"relative h-4 w-full rounded-pill bg-fill-3\">\n <BaseSlider.Indicator className=\"rounded-pill bg-ink\" />\n {Array.from({ length: count }, (_, i) => (\n <BaseSlider.Thumb\n key={i}\n index={i}\n {...(getAriaLabel ? { getAriaLabel } : ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(count === 2\n ? {\n getAriaValueText: (formatted: string, _v: number, index: number) =>\n index === 0\n ? t(\"slider.rangeStart\", \"{value} start range\", { value: formatted })\n : t(\"slider.rangeEnd\", \"{value} end range\", { value: formatted }),\n }\n : {})}\n className={cn(\n \"group/thumb size-16 rounded-pill bg-ink ring-thumb outline-2 outline-offset-2 outline-transparent transition-control focus-within-visible:outline-focus\",\n force?.includes(\"focus\") && \"outline-focus\",\n )}\n >\n <span\n aria-hidden\n className={cn(\n \"pointer-events-none absolute bottom-full left-1/2 mb-8 inline-flex h-24 -translate-x-1/2 items-center rounded-pill bg-tooltip px-8 text-caption font-medium tabular text-fg opacity-0 shadow-raised transition-opacity duration-120 group-data-dragging/thumb:opacity-100\",\n force?.includes(\"dragging\") && \"opacity-100\",\n )}\n >\n <BaseSlider.Value>{(_, values) => formatValue(values[i] ?? 0)}</BaseSlider.Value>\n </span>\n </BaseSlider.Thumb>\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n {tickValues.length > 0 && (\n <div className=\"relative mt-2 h-4\" aria-hidden>\n {tickValues.map((tick) => (\n <span key={tick} className=\"absolute top-0 h-4 w-1 -translate-x-1/2 bg-line-strong\" style={{ left: `${((tick - min) / (max - min)) * 100}%` }} />\n ))}\n </div>\n )}\n </BaseSlider.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Slider.displayName = \"Slider\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"slider-Ci83PGtj.js","names":["Slider","BaseSlider","cn","useUiText","useLocale","KAESO_SLIDER_VARIANTS","KAESO_SLIDER_DEFAULT_VARIANTS","Slider$1","formatValueProp","ariaLabel","force","t","locale","formatValue","v","initial","value","defaultValue","min","count","tickValues","ticks","max","step","i","Slider","onValueChange","onValueCommitted","disabled","name","className","getAriaLabel","index","formatted","values","tick"],"sources":["../../src/components/slider/slider.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_SLIDER_VARIANTS = {\n size: {\n md: { classes: \"h-20\" },\n },\n} as const;\nexport const KAESO_SLIDER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface SliderProps {\n value?: number | number[] | undefined;\n defaultValue?: number | number[] | undefined;\n onValueChange?: ((value: number | number[]) => void) | undefined;\n onValueCommitted?: ((value: number | number[]) => void) | undefined;\n min?: number | undefined;\n max?: number | undefined;\n step?: number | undefined;\n ticks?: boolean | number[] | undefined;\n formatValue?: ((value: number) => string) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n \"aria-label\"?: string | undefined;\n getAriaLabel?: ((index: number) => string) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Slider = /* @__PURE__ */ forwardRef<HTMLDivElement, SliderProps>(function Slider(\n {\n value,\n defaultValue,\n onValueChange,\n onValueCommitted,\n min = 0,\n max = 100,\n step = 1,\n ticks,\n formatValue: formatValueProp,\n disabled,\n name,\n className,\n \"aria-label\": ariaLabel,\n getAriaLabel,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const formatValue =\n formatValueProp ?? (locale === \"en\" ? String : (v: number) => new Intl.NumberFormat(locale, { useGrouping: false, maximumFractionDigits: 20 }).format(v));\n const initial = value ?? defaultValue ?? min;\n const count = Array.isArray(initial) ? initial.length : 1;\n const tickValues = Array.isArray(ticks) ? ticks : ticks ? Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step) : [];\n return (\n <BaseSlider.Root\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: number | readonly number[]) => onValueChange(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n {...(onValueCommitted ? { onValueCommitted: (v: number | readonly number[]) => onValueCommitted(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n min={min}\n max={max}\n step={step}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n {...(locale === \"en\" ? {} : { locale })}\n className={cn(\"relative w-full min-w-120 touch-none select-none data-disabled:opacity-40\", className)}\n {...(force ? { \"data-force\": force } : {})}\n >\n <BaseSlider.Control className=\"relative flex h-20 w-full cursor-pointer items-center data-disabled:cursor-not-allowed\">\n <BaseSlider.Track className=\"relative h-4 w-full rounded-pill bg-fill-3\">\n <BaseSlider.Indicator className=\"rounded-pill bg-ink\" />\n {Array.from({ length: count }, (_, i) => (\n <BaseSlider.Thumb\n key={i}\n index={i}\n {...(getAriaLabel ? { getAriaLabel } : ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(count === 2\n ? {\n getAriaValueText: (formatted: string, _v: number, index: number) =>\n index === 0\n ? t(\"slider.rangeStart\", \"{value} start range\", { value: formatted })\n : t(\"slider.rangeEnd\", \"{value} end range\", { value: formatted }),\n }\n : {})}\n className={cn(\n \"group/thumb size-16 rounded-pill bg-ink ring-thumb outline-2 outline-offset-2 outline-transparent transition-control focus-within-visible:outline-focus\",\n force?.includes(\"focus\") && \"outline-focus\",\n )}\n >\n <span\n aria-hidden\n className={cn(\n \"pointer-events-none absolute bottom-full left-1/2 mb-8 inline-flex h-24 -translate-x-1/2 items-center rounded-pill bg-tooltip px-8 text-caption font-medium tabular text-fg opacity-0 shadow-raised transition-opacity duration-120 group-data-dragging/thumb:opacity-100\",\n force?.includes(\"dragging\") && \"opacity-100\",\n )}\n >\n <BaseSlider.Value>{(_, values) => formatValue(values[i] ?? 0)}</BaseSlider.Value>\n </span>\n </BaseSlider.Thumb>\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n {tickValues.length > 0 && (\n <div className=\"relative mt-2 h-4\" aria-hidden>\n {tickValues.map((tick) => (\n <span key={tick} className=\"absolute top-0 h-4 w-1 -translate-x-1/2 bg-line-strong\" style={{ left: `${((tick - min) / (max - min)) * 100}%` }} />\n ))}\n </div>\n )}\n </BaseSlider.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Slider.displayName = \"Slider\";\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { t } from "./dev-CR1p7gCm.js";
4
- import { t as n } from "./icon-D5uD_mnL.js";
4
+ import { t as n } from "./icon-D7ja-_Yk.js";
5
5
  import { forwardRef as r } from "react";
6
6
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
7
  //#region src/components/status-dot/status-dot.tsx
@@ -26,4 +26,4 @@ var l = c;
26
26
  //#endregion
27
27
  export { c as i, o as n, l as r, s as t };
28
28
 
29
- //# sourceMappingURL=status-dot-u4Izk-uC.js.map
29
+ //# sourceMappingURL=status-dot-QJTF0Yv4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-dot-u4Izk-uC.js","names":["cn","Icon","KAESO_STATUS_DOT_VARIANTS","KAESO_STATUS_DOT_DEFAULT_VARIANTS","StatusDot","children","devWarn","size","tone","className","icon","Status"],"sources":["../../src/components/status-dot/status-dot.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_STATUS_DOT_VARIANTS = {\n tone: {\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n danger: { classes: \"text-danger-text\" },\n info: { classes: \"text-info-text\" },\n neutral: { classes: \"text-fg-secondary\" },\n },\n} as const;\nexport const KAESO_STATUS_DOT_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\n\nexport interface StatusDotProps {\n tone?: keyof typeof KAESO_STATUS_DOT_VARIANTS.tone | undefined;\n children?: ReactNode | undefined;\n size?: \"sm\" | \"md\" | undefined;\n icon?: IconData | undefined;\n className?: string | undefined;\n}\n\nexport const StatusDot = /* @__PURE__ */ forwardRef<HTMLSpanElement, StatusDotProps>(function StatusDot({ tone = \"neutral\", children, size = \"md\", icon, className }, ref) {\n if (children === undefined || children === null || children === \"\")\n devWarn(\"StatusDot: a status is a word in its color; pass the word as children (it renders nothing without one).\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-6 font-medium\",\n size === \"md\" ? \"text-body\" : \"text-small\",\n KAESO_STATUS_DOT_VARIANTS.tone[tone].classes,\n className,\n )}\n >\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") StatusDot.displayName = \"StatusDot\";\n\nexport const Status = StatusDot;\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA4B,EACvC,MAAM;CACJ,SAAS,EAAE,SAAS,oBAAoB;CACxC,SAAS,EAAE,SAAS,oBAAoB;CACxC,QAAQ,EAAE,SAAS,mBAAmB;CACtC,MAAM,EAAE,SAAS,iBAAiB;CAClC,SAAS,EAAE,SAAS,oBAAoB;AAC1C,EACF,GACaC,IAAoC,EAAE,MAAM,UAAU,GAUtDC,IAA4B,kBAA4C,SAAmB,EAAE,UAAO,WAAW,aAAU,UAAO,MAAM,SAAM,gBAAa,GAAK;CAGzK,QAFIC,KAAuC,QAAQA,MAAa,OAC9DC,EAAQ,yGAAyG,GAEjH,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,8CACAO,MAAS,OAAO,cAAc,cAC9BL,EAA0B,KAAKM,EAAK,CAAC,SACrCC,CACF;EAPF,UAAA,CASGC,KAAQ,kBAACT,GAAD;GAAY;GAAM,MAAK;EAAM,CAAA,GACrCI,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc;AAEnE,IAAaM,IAASP"}
1
+ {"version":3,"file":"status-dot-QJTF0Yv4.js","names":["cn","Icon","KAESO_STATUS_DOT_VARIANTS","KAESO_STATUS_DOT_DEFAULT_VARIANTS","StatusDot","children","devWarn","size","tone","className","icon","Status"],"sources":["../../src/components/status-dot/status-dot.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_STATUS_DOT_VARIANTS = {\n tone: {\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n danger: { classes: \"text-danger-text\" },\n info: { classes: \"text-info-text\" },\n neutral: { classes: \"text-fg-secondary\" },\n },\n} as const;\nexport const KAESO_STATUS_DOT_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\n\nexport interface StatusDotProps {\n tone?: keyof typeof KAESO_STATUS_DOT_VARIANTS.tone | undefined;\n children?: ReactNode | undefined;\n size?: \"sm\" | \"md\" | undefined;\n icon?: IconData | undefined;\n className?: string | undefined;\n}\n\nexport const StatusDot = /* @__PURE__ */ forwardRef<HTMLSpanElement, StatusDotProps>(function StatusDot({ tone = \"neutral\", children, size = \"md\", icon, className }, ref) {\n if (children === undefined || children === null || children === \"\")\n devWarn(\"StatusDot: a status is a word in its color; pass the word as children (it renders nothing without one).\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-6 font-medium\",\n size === \"md\" ? \"text-body\" : \"text-small\",\n KAESO_STATUS_DOT_VARIANTS.tone[tone].classes,\n className,\n )}\n >\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") StatusDot.displayName = \"StatusDot\";\n\nexport const Status = StatusDot;\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA4B,EACvC,MAAM;CACJ,SAAS,EAAE,SAAS,oBAAoB;CACxC,SAAS,EAAE,SAAS,oBAAoB;CACxC,QAAQ,EAAE,SAAS,mBAAmB;CACtC,MAAM,EAAE,SAAS,iBAAiB;CAClC,SAAS,EAAE,SAAS,oBAAoB;AAC1C,EACF,GACaC,IAAoC,EAAE,MAAM,UAAU,GAUtDC,IAA4B,kBAA4C,SAAmB,EAAE,UAAO,WAAW,aAAU,UAAO,MAAM,SAAM,gBAAa,GAAK;CAGzK,QAFIC,KAAuC,QAAQA,MAAa,OAC9DC,EAAQ,yGAAyG,GAEjH,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,8CACAO,MAAS,OAAO,cAAc,cAC9BL,EAA0B,KAAKM,EAAK,CAAC,SACrCC,CACF;EAPF,UAAA,CASGC,KAAQ,kBAACT,GAAD;GAAY;GAAM,MAAK;EAAM,CAAA,GACrCI,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc;AAEnE,IAAaM,IAASP"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
5
  //#region src/components/swap-text/swap-text.tsx
@@ -25,4 +25,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "SwapText");
25
25
  //#endregion
26
26
  export { i as n, o as r, a as t };
27
27
 
28
- //# sourceMappingURL=swap-text-CC77iKJF.js.map
28
+ //# sourceMappingURL=swap-text-Dr0Irxz6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swap-text-CC77iKJF.js","names":["cn","KAESO_SWAP_TEXT_VARIANTS","KAESO_SWAP_TEXT_DEFAULT_VARIANTS","SwapText","props","align","className","reserve","r","i"],"sources":["../../src/components/swap-text/swap-text.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SWAP_TEXT_VARIANTS = {\n align: {\n center: { classes: \"justify-items-center\" },\n start: { classes: \"justify-items-start\" },\n },\n} as const;\nexport const KAESO_SWAP_TEXT_DEFAULT_VARIANTS = { align: \"center\" } as const;\n\nexport interface SwapTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n children: ReactNode;\n reserve: ReactNode[];\n align?: keyof typeof KAESO_SWAP_TEXT_VARIANTS.align | undefined;\n}\n\nexport const SwapText = /* @__PURE__ */ forwardRef<HTMLSpanElement, SwapTextProps>(function SwapText({ children, reserve, align = \"center\", className, ...props }, ref) {\n return (\n <span ref={ref} className={cn(\"inline-grid\", KAESO_SWAP_TEXT_VARIANTS.align[align].classes, className)} {...props}>\n <span className=\"col-start-1 row-start-1\">{children}</span>\n {reserve.map((r, i) => (\n <span key={i} aria-hidden className=\"invisible col-start-1 row-start-1\">\n {r}\n </span>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SwapText.displayName = \"SwapText\";\n"],"mappings":";;;;;AAGA,IAAaC,IAA2B,EACtC,OAAO;CACL,QAAQ,EAAE,SAAS,uBAAuB;CAC1C,OAAO,EAAE,SAAS,sBAAsB;AAC1C,EACF,GACaC,IAAmC,EAAE,OAAO,SAAS,GAQrDC,IAA2B,kBAA2C,SAAkB,EAAE,aAAU,YAAS,WAAQ,UAAU,cAAW,GAAGC,KAAS,GAAK;CACtK,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWJ,EAAG,eAAeC,EAAyB,MAAMI,EAAM,CAAC,SAASC,CAAS;EAAG,GAAIF;EAA5G,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAA2B;EAAe,CAAA,GACzDG,EAAQ,KAAK,GAAG,MACf,kBAAC,QAAD;GAAc,eAAA;GAAY,WAAU;GACjC,UAAAC;EACG,GAFKC,CAEL,CACP,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
1
+ {"version":3,"file":"swap-text-Dr0Irxz6.js","names":["cn","KAESO_SWAP_TEXT_VARIANTS","KAESO_SWAP_TEXT_DEFAULT_VARIANTS","SwapText","props","align","className","reserve","r","i"],"sources":["../../src/components/swap-text/swap-text.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SWAP_TEXT_VARIANTS = {\n align: {\n center: { classes: \"justify-items-center\" },\n start: { classes: \"justify-items-start\" },\n },\n} as const;\nexport const KAESO_SWAP_TEXT_DEFAULT_VARIANTS = { align: \"center\" } as const;\n\nexport interface SwapTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n children: ReactNode;\n reserve: ReactNode[];\n align?: keyof typeof KAESO_SWAP_TEXT_VARIANTS.align | undefined;\n}\n\nexport const SwapText = /* @__PURE__ */ forwardRef<HTMLSpanElement, SwapTextProps>(function SwapText({ children, reserve, align = \"center\", className, ...props }, ref) {\n return (\n <span ref={ref} className={cn(\"inline-grid\", KAESO_SWAP_TEXT_VARIANTS.align[align].classes, className)} {...props}>\n <span className=\"col-start-1 row-start-1\">{children}</span>\n {reserve.map((r, i) => (\n <span key={i} aria-hidden className=\"invisible col-start-1 row-start-1\">\n {r}\n </span>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SwapText.displayName = \"SwapText\";\n"],"mappings":";;;;;AAGA,IAAaC,IAA2B,EACtC,OAAO;CACL,QAAQ,EAAE,SAAS,uBAAuB;CAC1C,OAAO,EAAE,SAAS,sBAAsB;AAC1C,EACF,GACaC,IAAmC,EAAE,OAAO,SAAS,GAQrDC,IAA2B,kBAA2C,SAAkB,EAAE,aAAU,YAAS,WAAQ,UAAU,cAAW,GAAGC,KAAS,GAAK;CACtK,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWJ,EAAG,eAAeC,EAAyB,MAAMI,EAAM,CAAC,SAASC,CAAS;EAAG,GAAIF;EAA5G,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAA2B;EAAe,CAAA,GACzDG,EAAQ,KAAK,GAAG,MACf,kBAAC,QAAD;GAAc,eAAA;GAAY,WAAU;GACjC,UAAAC;EACG,GAFKC,CAEL,CACP,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
3
- import { r as t } from "./tooltip-CRApbLF6.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
+ import { r as t } from "./tooltip-BMQ9BtPp.js";
4
4
  import { t as n } from "./labelled-D5udSPUI.js";
5
5
  import { forwardRef as r, useId as i } from "react";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
@@ -56,4 +56,4 @@ process.env.NODE_ENV !== "production" && (d.displayName = "Switch");
56
56
  //#endregion
57
57
  export { c as n, d as r, l as t };
58
58
 
59
- //# sourceMappingURL=switch-CbU9m9gi.js.map
59
+ //# sourceMappingURL=switch-b-VkStWj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-CbU9m9gi.js","names":["Switch","BaseSwitch","cn","Tooltip","labelled","KAESO_SWITCH_VARIANTS","KAESO_SWITCH_DEFAULT_VARIANTS","THUMB","Switch$1","force","aria","auto","useId","sid","id","soft","disabledReason","disabled","named","label","description","switchEl","Switch","checked","defaultChecked","onCheckedChange","c","readOnly","loading","name","size","className","control"],"sources":["../../src/components/switch/switch.tsx"],"sourcesContent":["import { forwardRef, useId, type ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { labelled } from \"../radio/labelled.js\";\n\nexport const KAESO_SWITCH_VARIANTS = {\n size: {\n sm: { classes: \"h-16 w-28 p-2\" },\n md: { classes: \"h-20 w-36 p-2\" },\n lg: { classes: \"h-24 w-44 p-2\" },\n },\n} as const;\nexport const KAESO_SWITCH_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst THUMB = {\n sm: \"size-12 data-checked:translate-x-12 rtl:data-checked:-translate-x-12\",\n md: \"size-16 data-checked:translate-x-16 rtl:data-checked:-translate-x-16\",\n lg: \"size-20 data-checked:translate-x-20 rtl:data-checked:-translate-x-20\",\n} as const;\n\nexport interface SwitchProps {\n checked?: boolean | undefined;\n defaultChecked?: boolean | undefined;\n onCheckedChange?: ((checked: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n readOnly?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n size?: keyof typeof KAESO_SWITCH_VARIANTS.size | undefined;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Switch = /* @__PURE__ */ forwardRef<HTMLButtonElement, SwitchProps>(function Switch(\n {\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n disabledReason,\n readOnly,\n loading,\n name,\n size = \"md\",\n label,\n description,\n id,\n className,\n \"data-force\": force,\n ...aria\n },\n ref,\n) {\n const auto = useId();\n const sid = id ?? `k-switch-${auto}`;\n const soft = !!disabledReason && !!disabled;\n const named = labelled(sid, label, label ? description : undefined, aria);\n const switchEl = (\n <BaseSwitch.Root\n ref={ref}\n id={sid}\n {...(checked !== undefined ? { checked } : {})}\n {...(defaultChecked !== undefined ? { defaultChecked } : {})}\n {...(onCheckedChange ? { onCheckedChange: (c: boolean) => onCheckedChange(c) } : {})}\n {...(disabled !== undefined && !soft ? { disabled } : {})}\n {...(readOnly || loading || soft ? { readOnly: true } : {})}\n {...(soft ? { \"aria-disabled\": true } : {})}\n {...(name ? { name } : {})}\n {...(loading ? { \"aria-busy\": true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n {...aria}\n {...named.aria}\n className={cn(\n \"group/sw relative inline-flex shrink-0 cursor-pointer items-center rounded-pill bg-fill-3 shadow-selector transition-control focus-ring tap-target\",\n \"hover:bg-line-strong hover:shadow-selector-hover checked:bg-ink checked:shadow-none checked:hover:bg-ink checked:hover:shadow-none\",\n \"disabled:cursor-not-allowed disabled:opacity-40\",\n soft && \"cursor-not-allowed opacity-40 hover:bg-fill-3 hover:shadow-selector checked:hover:bg-ink checked:hover:shadow-none\",\n KAESO_SWITCH_VARIANTS.size[size].classes,\n !label && className,\n )}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"block rounded-pill bg-switch-thumb shadow-thumb indicator-motion data-checked:bg-on-ink data-checked:shadow-none\",\n THUMB[size],\n loading && \"animate-pulse-quiet\",\n )}\n />\n </BaseSwitch.Root>\n );\n const control = soft ? <Tooltip content={disabledReason}>{switchEl}</Tooltip> : switchEl;\n if (!label) return control;\n return (\n <label htmlFor={sid} className={cn(\"flex min-h-32 cursor-pointer items-center justify-between gap-16\", disabled && \"cursor-not-allowed\", className)}>\n <span className=\"flex min-w-0 flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", 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 {control}\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Switch.displayName = \"Switch\";\n"],"mappings":";;;;;;;;AAMA,IAAaK,IAAwB,EACnC,MAAM;CACJ,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;AACjC,EACF,GACaC,IAAgC,EAAE,MAAM,KAAK,GAEpDC,IAAQ;CACZ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAqBaP,IAAyB,kBAA2C,SAC/E,EACE,YACA,mBACA,oBACA,aACA,mBACA,aACA,YACA,SACA,UAAO,MACP,UACA,gBACA,OACA,cACA,cAAcS,GACd,GAAGC,KAEL,GACA;CACA,IAAMC,IAAOC,EAAM,GACbC,IAAMC,KAAM,YAAYH,KACxBI,IAAO,CAAC,CAACC,KAAkB,CAAC,CAACC,GAC7BC,IAAQd,EAASS,GAAKM,GAAOA,IAAQC,IAAc,KAAA,GAAWV,CAAI,GAClEW,IACJ,kBAACpB,EAAW,MAAZ;EACO;EACL,IAAIY;EACJ,GAAKU,MAAY,KAAA,IAA0B,CAAC,IAAf,EAAE,WAAQ;EACvC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAKC,IAAkB,EAAE,kBAAkB,MAAeA,EAAgBC,CAAC,EAAE,IAAI,CAAC;EAClF,GAAKT,MAAa,KAAA,KAAa,CAACF,IAAO,EAAE,YAAS,IAAI,CAAC;EACvD,GAAKY,KAAYC,KAAWb,IAAO,EAAE,UAAU,GAAK,IAAI,CAAC;EACzD,GAAKA,IAAO,EAAE,iBAAiB,GAAK,IAAI,CAAC;EACzC,GAAKc,IAAO,EAAE,QAAK,IAAI,CAAC;EACxB,GAAKD,IAAU,EAAE,aAAa,GAAK,IAAI,CAAC;EACxC,GAAKnB,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC;EACxC,GAAIC;EACJ,GAAIQ,EAAM;EACV,WAAWhB,EACT,sJACA,sIACA,mDACAa,KAAQ,sHACRV,EAAsB,KAAKyB,EAAK,CAAC,SACjC,CAACX,KAASY,CACZ;EAEA,UAAA,kBAAC9B,EAAW,OAAZ,EACE,WAAWC,EACT,oHACAK,EAAMuB,IACNF,KAAW,qBACb,EACD,CAAA;CACc,CAAA,GAEbI,IAAUjB,IAAO,kBAACZ,GAAD;EAAS,SAASa;EAAiB,UAAAK;CAAkB,CAAA,IAAIA;CAEhF,OADKF,IAEH,kBAAC,SAAD;EAAO,SAASN;EAAK,WAAWX,EAAG,oEAAoEe,KAAY,sBAAsBc,CAAS;EAAlJ,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACE,kBAAC,QAAD;IAAM,IAAIb,EAAM;IAAS,WAAWhB,EAAG,qBAAqBe,KAAY,kBAAkB;IACvF,UAAAE;GACG,CAAA,GACLC,KACC,kBAAC,QAAD;IAAM,IAAIF,EAAM;IAAe,WAAU;IACtC,UAAAE;GACG,CAAA,CAEJ;EACL,CAAA,GAAAY,CACI;C,KAdUA;AAgBrB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
1
+ {"version":3,"file":"switch-b-VkStWj.js","names":["Switch","BaseSwitch","cn","Tooltip","labelled","KAESO_SWITCH_VARIANTS","KAESO_SWITCH_DEFAULT_VARIANTS","THUMB","Switch$1","force","aria","auto","useId","sid","id","soft","disabledReason","disabled","named","label","description","switchEl","Switch","checked","defaultChecked","onCheckedChange","c","readOnly","loading","name","size","className","control"],"sources":["../../src/components/switch/switch.tsx"],"sourcesContent":["import { forwardRef, useId, type ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { labelled } from \"../radio/labelled.js\";\n\nexport const KAESO_SWITCH_VARIANTS = {\n size: {\n sm: { classes: \"h-16 w-28 p-2\" },\n md: { classes: \"h-20 w-36 p-2\" },\n lg: { classes: \"h-24 w-44 p-2\" },\n },\n} as const;\nexport const KAESO_SWITCH_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst THUMB = {\n sm: \"size-12 data-checked:translate-x-12 rtl:data-checked:-translate-x-12\",\n md: \"size-16 data-checked:translate-x-16 rtl:data-checked:-translate-x-16\",\n lg: \"size-20 data-checked:translate-x-20 rtl:data-checked:-translate-x-20\",\n} as const;\n\nexport interface SwitchProps {\n checked?: boolean | undefined;\n defaultChecked?: boolean | undefined;\n onCheckedChange?: ((checked: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n readOnly?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n size?: keyof typeof KAESO_SWITCH_VARIANTS.size | undefined;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Switch = /* @__PURE__ */ forwardRef<HTMLButtonElement, SwitchProps>(function Switch(\n {\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n disabledReason,\n readOnly,\n loading,\n name,\n size = \"md\",\n label,\n description,\n id,\n className,\n \"data-force\": force,\n ...aria\n },\n ref,\n) {\n const auto = useId();\n const sid = id ?? `k-switch-${auto}`;\n const soft = !!disabledReason && !!disabled;\n const named = labelled(sid, label, label ? description : undefined, aria);\n const switchEl = (\n <BaseSwitch.Root\n ref={ref}\n id={sid}\n {...(checked !== undefined ? { checked } : {})}\n {...(defaultChecked !== undefined ? { defaultChecked } : {})}\n {...(onCheckedChange ? { onCheckedChange: (c: boolean) => onCheckedChange(c) } : {})}\n {...(disabled !== undefined && !soft ? { disabled } : {})}\n {...(readOnly || loading || soft ? { readOnly: true } : {})}\n {...(soft ? { \"aria-disabled\": true } : {})}\n {...(name ? { name } : {})}\n {...(loading ? { \"aria-busy\": true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n {...aria}\n {...named.aria}\n className={cn(\n \"group/sw relative inline-flex shrink-0 cursor-pointer items-center rounded-pill bg-fill-3 shadow-selector transition-control focus-ring tap-target\",\n \"hover:bg-line-strong hover:shadow-selector-hover checked:bg-ink checked:shadow-none checked:hover:bg-ink checked:hover:shadow-none\",\n \"disabled:cursor-not-allowed disabled:opacity-40\",\n soft && \"cursor-not-allowed opacity-40 hover:bg-fill-3 hover:shadow-selector checked:hover:bg-ink checked:hover:shadow-none\",\n KAESO_SWITCH_VARIANTS.size[size].classes,\n !label && className,\n )}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"block rounded-pill bg-switch-thumb shadow-thumb indicator-motion data-checked:bg-on-ink data-checked:shadow-none\",\n THUMB[size],\n loading && \"animate-pulse-quiet\",\n )}\n />\n </BaseSwitch.Root>\n );\n const control = soft ? <Tooltip content={disabledReason}>{switchEl}</Tooltip> : switchEl;\n if (!label) return control;\n return (\n <label htmlFor={sid} className={cn(\"flex min-h-32 cursor-pointer items-center justify-between gap-16\", disabled && \"cursor-not-allowed\", className)}>\n <span className=\"flex min-w-0 flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", 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 {control}\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Switch.displayName = \"Switch\";\n"],"mappings":";;;;;;;;AAMA,IAAaK,IAAwB,EACnC,MAAM;CACJ,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;CAC/B,IAAI,EAAE,SAAS,gBAAgB;AACjC,EACF,GACaC,IAAgC,EAAE,MAAM,KAAK,GAEpDC,IAAQ;CACZ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAqBaP,IAAyB,kBAA2C,SAC/E,EACE,YACA,mBACA,oBACA,aACA,mBACA,aACA,YACA,SACA,UAAO,MACP,UACA,gBACA,OACA,cACA,cAAcS,GACd,GAAGC,KAEL,GACA;CACA,IAAMC,IAAOC,EAAM,GACbC,IAAMC,KAAM,YAAYH,KACxBI,IAAO,CAAC,CAACC,KAAkB,CAAC,CAACC,GAC7BC,IAAQd,EAASS,GAAKM,GAAOA,IAAQC,IAAc,KAAA,GAAWV,CAAI,GAClEW,IACJ,kBAACpB,EAAW,MAAZ;EACO;EACL,IAAIY;EACJ,GAAKU,MAAY,KAAA,IAA0B,CAAC,IAAf,EAAE,WAAQ;EACvC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAKC,IAAkB,EAAE,kBAAkB,MAAeA,EAAgBC,CAAC,EAAE,IAAI,CAAC;EAClF,GAAKT,MAAa,KAAA,KAAa,CAACF,IAAO,EAAE,YAAS,IAAI,CAAC;EACvD,GAAKY,KAAYC,KAAWb,IAAO,EAAE,UAAU,GAAK,IAAI,CAAC;EACzD,GAAKA,IAAO,EAAE,iBAAiB,GAAK,IAAI,CAAC;EACzC,GAAKc,IAAO,EAAE,QAAK,IAAI,CAAC;EACxB,GAAKD,IAAU,EAAE,aAAa,GAAK,IAAI,CAAC;EACxC,GAAKnB,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC;EACxC,GAAIC;EACJ,GAAIQ,EAAM;EACV,WAAWhB,EACT,sJACA,sIACA,mDACAa,KAAQ,sHACRV,EAAsB,KAAKyB,EAAK,CAAC,SACjC,CAACX,KAASY,CACZ;EAEA,UAAA,kBAAC9B,EAAW,OAAZ,EACE,WAAWC,EACT,oHACAK,EAAMuB,IACNF,KAAW,qBACb,EACD,CAAA;CACc,CAAA,GAEbI,IAAUjB,IAAO,kBAACZ,GAAD;EAAS,SAASa;EAAiB,UAAAK;CAAkB,CAAA,IAAIA;CAEhF,OADKF,IAEH,kBAAC,SAAD;EAAO,SAASN;EAAK,WAAWX,EAAG,oEAAoEe,KAAY,sBAAsBc,CAAS;EAAlJ,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACE,kBAAC,QAAD;IAAM,IAAIb,EAAM;IAAS,WAAWhB,EAAG,qBAAqBe,KAAY,kBAAkB;IACvF,UAAAE;GACG,CAAA,GACLC,KACC,kBAAC,QAAD;IAAM,IAAIF,EAAM;IAAe,WAAU;IACtC,UAAAE;GACG,CAAA,CAEJ;EACL,CAAA,GAAAY,CACI;C,KAdUA;AAgBrB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
+ import { t } from "./tone-CWpsHPb6.js";
4
+ import { createContext as n, forwardRef as r, useContext as i } from "react";
5
+ import { jsx as a } from "react/jsx-runtime";
6
+ //#region src/components/table/table.tsx
7
+ var o = {
8
+ align: {
9
+ start: { classes: "text-left" },
10
+ end: { classes: "text-right tabular" }
11
+ },
12
+ density: {
13
+ default: { classes: "px-12" },
14
+ compact: { classes: "px-8" }
15
+ }
16
+ }, s = {
17
+ align: "start",
18
+ density: "default"
19
+ }, c = /* @__PURE__ */ n("default"), l = {
20
+ start: "last:pr-2",
21
+ end: "last:pr-0"
22
+ }, u = /* @__PURE__ */ r(function({ density: t = "default", className: n, ...r }, i) {
23
+ return /* @__PURE__ */ a(c.Provider, {
24
+ value: t,
25
+ children: /* @__PURE__ */ a("table", {
26
+ ref: i,
27
+ className: e("w-full border-collapse text-body", n),
28
+ ...r
29
+ })
30
+ });
31
+ });
32
+ process.env.NODE_ENV !== "production" && (u.displayName = "Table");
33
+ var d = /* @__PURE__ */ r(function(e, t) {
34
+ return /* @__PURE__ */ a("thead", {
35
+ ref: t,
36
+ ...e
37
+ });
38
+ });
39
+ process.env.NODE_ENV !== "production" && (d.displayName = "Table.Head");
40
+ var f = /* @__PURE__ */ r(function(e, t) {
41
+ return /* @__PURE__ */ a("tbody", {
42
+ ref: t,
43
+ ...e
44
+ });
45
+ });
46
+ process.env.NODE_ENV !== "production" && (f.displayName = "Table.Body");
47
+ var p = /* @__PURE__ */ r(function({ className: t, ...n }, r) {
48
+ return /* @__PURE__ */ a("tr", {
49
+ ref: r,
50
+ className: e("hairline-b last:shadow-none", t),
51
+ ...n
52
+ });
53
+ });
54
+ process.env.NODE_ENV !== "production" && (p.displayName = "Table.Row");
55
+ var m = /* @__PURE__ */ r(function({ align: t = "start", wrap: n = !1, className: r, ...s }, u) {
56
+ let d = i(c);
57
+ return /* @__PURE__ */ a("th", {
58
+ ref: u,
59
+ scope: "col",
60
+ className: e("h-36 text-caption font-medium text-fg-secondary hairline-b-strong first:pl-0", o.density[d].classes, n ? "py-8 align-bottom text-balance" : "whitespace-nowrap", l[t], o.align[t].classes, r),
61
+ ...s
62
+ });
63
+ });
64
+ process.env.NODE_ENV !== "production" && (m.displayName = "Table.HeaderCell");
65
+ var h = /* @__PURE__ */ r(function({ align: n = "start", tone: r, className: s, ...u }, d) {
66
+ let f = i(c);
67
+ return /* @__PURE__ */ a("td", {
68
+ ref: d,
69
+ className: e("h-44 py-12 align-middle text-fg first:pl-0", o.density[f].classes, l[n], o.align[n].classes, r && t[r], s),
70
+ ...u
71
+ });
72
+ });
73
+ process.env.NODE_ENV !== "production" && (h.displayName = "Table.Cell");
74
+ var g = /* @__PURE__ */ Object.assign(u, {
75
+ Head: d,
76
+ Body: f,
77
+ Row: p,
78
+ HeaderCell: m,
79
+ Cell: h
80
+ });
81
+ //#endregion
82
+ export { o as n, g as r, s as t };
83
+
84
+ //# sourceMappingURL=table-BeOSKl_3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-BeOSKl_3.js","names":["cn","KAESO_TABLE_VARIANTS","KAESO_TABLE_DEFAULT_VARIANTS","DensityContext","LAST","Root","props","density","className","Head","Body","Row","HeaderCell","useContext","wrap","align","Cell","tone","STATUS_TONE_TEXT","Table"],"sources":["../../src/components/table/table.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, type HTMLAttributes, type TdHTMLAttributes, type ThHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { STATUS_TONE_TEXT, type StatusTone } from \"../../utils/tone.js\";\n\nexport const KAESO_TABLE_VARIANTS = {\n align: {\n start: { classes: \"text-left\" },\n end: { classes: \"text-right tabular\" },\n },\n density: {\n default: { classes: \"px-12\" },\n compact: { classes: \"px-8\" },\n },\n} as const;\nexport const KAESO_TABLE_DEFAULT_VARIANTS = { align: \"start\", density: \"default\" } as const;\n\ntype Density = keyof typeof KAESO_TABLE_VARIANTS.density;\nconst DensityContext = /* @__PURE__ */ createContext<Density>(\"default\");\n\nconst LAST = { start: \"last:pr-2\", end: \"last:pr-0\" } as const;\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {\n density?: Density | undefined;\n}\nconst Root = /* @__PURE__ */ forwardRef<HTMLTableElement, TableProps>(function Table({ density = \"default\", className, ...props }, ref) {\n return (\n <DensityContext.Provider value={density}>\n <table ref={ref} className={cn(\"w-full border-collapse text-body\", className)} {...props} />\n </DensityContext.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Table\";\nconst Head = /* @__PURE__ */ forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(function TableHead(props, ref) {\n return <thead ref={ref} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Head.displayName = \"Table.Head\";\nconst Body = /* @__PURE__ */ forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(function TableBody(props, ref) {\n return <tbody ref={ref} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Body.displayName = \"Table.Body\";\nconst Row = /* @__PURE__ */ forwardRef<HTMLTableRowElement, HTMLAttributes<HTMLTableRowElement>>(function TableRow({ className, ...props }, ref) {\n return <tr ref={ref} className={cn(\"hairline-b last:shadow-none\", className)} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Row.displayName = \"Table.Row\";\nconst HeaderCell = /* @__PURE__ */ forwardRef<\n HTMLTableCellElement,\n Omit<ThHTMLAttributes<HTMLTableCellElement>, \"align\"> & { align?: \"start\" | \"end\" | undefined; wrap?: boolean | undefined }\n>(function TableHeaderCell({ align = \"start\", wrap = false, className, ...props }, ref) {\n const density = useContext(DensityContext);\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cn(\n \"h-36 text-caption font-medium text-fg-secondary hairline-b-strong first:pl-0\",\n KAESO_TABLE_VARIANTS.density[density].classes,\n wrap ? \"py-8 align-bottom text-balance\" : \"whitespace-nowrap\",\n LAST[align],\n KAESO_TABLE_VARIANTS.align[align].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") HeaderCell.displayName = \"Table.HeaderCell\";\nexport interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, \"align\"> {\n align?: \"start\" | \"end\" | undefined;\n tone?: StatusTone | undefined;\n}\nconst Cell = /* @__PURE__ */ forwardRef<HTMLTableCellElement, TableCellProps>(function TableCell({ align = \"start\", tone, className, ...props }, ref) {\n const density = useContext(DensityContext);\n return (\n <td\n ref={ref}\n className={cn(\n \"h-44 py-12 align-middle text-fg first:pl-0\",\n KAESO_TABLE_VARIANTS.density[density].classes,\n LAST[align],\n KAESO_TABLE_VARIANTS.align[align].classes,\n tone && STATUS_TONE_TEXT[tone],\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Cell.displayName = \"Table.Cell\";\n\nexport const Table = /* @__PURE__ */ Object.assign(Root, { Head, Body, Row, HeaderCell, Cell });\n"],"mappings":";;;;;;AAIA,IAAaC,IAAuB;CAClC,OAAO;EACL,OAAO,EAAE,SAAS,YAAY;EAC9B,KAAK,EAAE,SAAS,qBAAqB;CACvC;CACA,SAAS;EACP,SAAS,EAAE,SAAS,QAAQ;EAC5B,SAAS,EAAE,SAAS,OAAO;CAC7B;AACF,GACaC,IAA+B;CAAE,OAAO;CAAS,SAAS;AAAU,GAG3EC,IAAiC,kBAAuB,SAAS,GAEjEC,IAAO;CAAE,OAAO;CAAa,KAAK;AAAY,GAK9CC,IAAuB,kBAAyC,SAAe,EAAE,aAAU,WAAW,cAAW,GAAGC,KAAS,GAAK;CACtI,OACE,kBAACH,EAAe,UAAhB;EAAyB,OAAOI;EAC9B,UAAA,kBAAC,SAAD;GAAY;GAAK,WAAWP,EAAG,oCAAoCQ,CAAS;GAAG,GAAIF;EAAQ,CAAA;CACpE,CAAA;AAE7B,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAMG,IAAuB,kBAA6E,SAAmB,GAAO,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,GAAIH;CAAQ,CAAA;AACtC,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAMI,IAAuB,kBAA6E,SAAmB,GAAO,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,GAAIJ;CAAQ,CAAA;AACtC,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAMK,IAAsB,kBAAqE,SAAkB,EAAE,cAAW,GAAGL,KAAS,GAAK;CAC/I,OAAO,kBAAC,MAAD;EAAS;EAAK,WAAWN,EAAG,+BAA+BQ,CAAS;EAAG,GAAIF;CAAQ,CAAA;AAC5F,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAI,cAAc;AAC7D,IAAMM,IAA6B,kBAGjC,SAAyB,EAAE,WAAQ,SAAS,UAAO,IAAO,cAAW,GAAGN,KAAS,GAAK;CACtF,IAAMC,IAAUM,EAAWV,CAAc;CACzC,OACE,kBAAC,MAAD;EACO;EACL,OAAM;EACN,WAAWH,EACT,gFACAC,EAAqB,QAAQM,EAAQ,CAAC,SACtCO,IAAO,mCAAmC,qBAC1CV,EAAKW,IACLd,EAAqB,MAAMc,EAAM,CAAC,SAClCP,CACF;EACA,GAAIF;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc;AAKpE,IAAMU,IAAuB,kBAAiD,SAAmB,EAAE,WAAQ,SAAS,SAAM,cAAW,GAAGV,KAAS,GAAK;CACpJ,IAAMC,IAAUM,EAAWV,CAAc;CACzC,OACE,kBAAC,MAAD;EACO;EACL,WAAWH,EACT,8CACAC,EAAqB,QAAQM,EAAQ,CAAC,SACtCH,EAAKW,IACLd,EAAqB,MAAMc,EAAM,CAAC,SAClCE,KAAQC,EAAiBD,IACzBT,CACF;EACA,GAAIF;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,IAAaa,IAAwB,uBAAO,OAAOd,GAAM;CAAE;CAAM;CAAM;CAAK;CAAY;AAAK,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t } from "./context-BELWW79w.js";
4
- import { t as n } from "./icon-D5uD_mnL.js";
5
- import { r } from "./tooltip-CRApbLF6.js";
4
+ import { t as n } from "./icon-D7ja-_Yk.js";
5
+ import { r } from "./tooltip-BMQ9BtPp.js";
6
6
  import { t as i } from "./use-truncated-CW0hByYt.js";
7
7
  import { forwardRef as a, useRef as o } from "react";
8
8
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -84,4 +84,4 @@ var h = m;
84
84
  //#endregion
85
85
  export { m as a, d as i, f as n, h as r, p as t };
86
86
 
87
- //# sourceMappingURL=tag-CqSk8F7M.js.map
87
+ //# sourceMappingURL=tag-DNdX1XRR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag-CqSk8F7M.js","names":["_Fragment","__icon_Cancel01Icon","cn","useUiText","Icon","useTruncated","Fragment$1","TAG_DOT","KAESO_TAG_VARIANTS","KAESO_TAG_DEFAULT_VARIANTS","Tag","force","props","t","clickable","onClick","split","onRemove","labelRef","useRef","tip","children","label","content","icon","Tooltip","forced","press","pressed","size","variant","invalid","className","removeLabel","Cancel01Icon","Pill"],"sources":["../../src/components/tag/tag.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useRef, type HTMLAttributes, type MouseEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const TAG_DOT = {\n \"viz-1\": \"bg-viz-1\",\n \"viz-2\": \"bg-viz-2\",\n \"viz-3\": \"bg-viz-3\",\n \"viz-4\": \"bg-viz-4\",\n \"viz-5\": \"bg-viz-5\",\n \"viz-6\": \"bg-viz-6\",\n \"viz-7\": \"bg-viz-7\",\n \"viz-8\": \"bg-viz-8\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n danger: \"bg-danger\",\n info: \"bg-info\",\n neutral: \"bg-fg-tertiary\",\n} as const;\nexport type TagDot = keyof typeof TAG_DOT;\n\nexport const KAESO_TAG_VARIANTS = {\n size: {\n md: { classes: \"h-28 px-10 gap-6 text-small\" },\n sm: { classes: \"h-24 px-8 gap-4 text-caption\" },\n },\n variant: {\n raised: { classes: \"bg-raised shadow-control text-fg\" },\n outline: { classes: \"bg-transparent shadow-ring text-fg-secondary\" },\n soft: { classes: \"bg-fill-2 text-fg\" },\n },\n} as const;\nexport const KAESO_TAG_DEFAULT_VARIANTS = { size: \"md\", variant: \"raised\" } as const;\n\nexport interface TagProps extends Omit<HTMLAttributes<HTMLElement>, \"children\"> {\n children: ReactNode;\n size?: keyof typeof KAESO_TAG_VARIANTS.size | undefined;\n variant?: keyof typeof KAESO_TAG_VARIANTS.variant | undefined;\n icon?: IconData | undefined;\n onRemove?: ((e: MouseEvent<HTMLButtonElement>) => void) | undefined;\n removeLabel?: string | undefined;\n onClick?: ((e: MouseEvent<HTMLElement>) => void) | undefined;\n pressed?: boolean | undefined;\n invalid?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Tag = /* @__PURE__ */ forwardRef<HTMLElement, TagProps>(function Tag(\n { children, size = \"md\", variant = \"raised\", icon, onRemove, removeLabel, onClick, pressed, invalid, className, \"data-force\": force, ...props },\n ref,\n) {\n const t = useUiText();\n const clickable = !!onClick;\n const split = clickable && !!onRemove;\n const labelRef = useRef<HTMLSpanElement>(null);\n const truncated = useTruncated(labelRef);\n const tip = truncated && typeof children === \"string\";\n const label = (\n <span ref={labelRef} className=\"min-w-0 truncate\" {...(tip && !clickable ? { tabIndex: 0 } : {})}>\n {children}\n </span>\n );\n const content = (\n <>\n {icon && <Icon icon={icon} size=\"xs\" className=\"text-fg-secondary\" />}\n {tip ? (\n <Tooltip content={children} shape=\"multiline\">\n {label}\n </Tooltip>\n ) : (\n label\n )}\n </>\n );\n const forced = force ? { \"data-force\": force } : {};\n const press = {\n type: \"button\" as const,\n onClick,\n ...(pressed !== undefined ? { \"aria-pressed\": pressed } : {}),\n };\n const Comp = (clickable && !split ? \"button\" : \"span\") as \"span\";\n return (\n <Comp\n ref={ref as React.Ref<HTMLSpanElement>}\n {...(clickable && !split ? press : {})}\n {...forced}\n className={cn(\n \"inline-flex max-w-full shrink-0 items-center rounded-pill font-medium whitespace-nowrap transition-control\",\n KAESO_TAG_VARIANTS.size[size].classes,\n KAESO_TAG_VARIANTS.variant[variant].classes,\n icon && (size === \"md\" ? \"pl-8\" : \"pl-6\"),\n onRemove && \"pr-2\",\n clickable && !split && \"relative cursor-pointer focus-ring tap-target\",\n split && \"pl-0\",\n clickable && (variant === \"soft\" ? \"hover:bg-fill-3 active:bg-fill-3\" : \"hover:bg-fill-1 active:bg-fill-2\"),\n clickable && variant === \"outline\" && \"hover:text-fg\",\n invalid && \"ring-invalid text-danger-text\",\n className,\n )}\n {...props}\n >\n {split ? (\n <button\n {...press}\n {...forced}\n className={cn(\n \"relative inline-flex h-full min-w-0 cursor-pointer items-center rounded-pill focus-ring tap-target\",\n size === \"md\" ? \"gap-6\" : \"gap-4\",\n icon ? (size === \"md\" ? \"pl-8\" : \"pl-6\") : size === \"md\" ? \"pl-10\" : \"pl-8\",\n )}\n >\n {content}\n </button>\n ) : (\n content\n )}\n {onRemove && (\n <button\n type=\"button\"\n aria-label={\n removeLabel ??\n (typeof children === \"string\" && children.trim()\n ? t(\"tag.removeNamed\", \"Remove {label}\", { label: children.trimEnd() })\n : t(\"tag.remove\", \"Remove\"))\n }\n onClick={(e) => {\n e.stopPropagation();\n onRemove(e);\n }}\n className={cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-pill text-fg-tertiary transition-control focus-ring tap-target hover:bg-fill-2 hover:text-fg\",\n size === \"md\" ? \"size-24\" : \"size-20\",\n )}\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n )}\n </Comp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Tag.displayName = \"Tag\";\n\nexport const Pill = Tag;\n"],"mappings":";;;;;;;;;;AASA,IAAaO,IAAU;CACrB,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,SAAS;AACX,GAGaC,IAAqB;CAChC,MAAM;EACJ,IAAI,EAAE,SAAS,8BAA8B;EAC7C,IAAI,EAAE,SAAS,+BAA+B;CAChD;CACA,SAAS;EACP,QAAQ,EAAE,SAAS,mCAAmC;EACtD,SAAS,EAAE,SAAS,+CAA+C;EACnE,MAAM,EAAE,SAAS,oBAAoB;CACvC;AACF,GACaC,IAA6B;CAAE,MAAM;CAAM,SAAS;AAAS,GAe7DC,IAAsB,kBAAkC,SACnE,EAAE,aAAU,UAAO,MAAM,aAAU,UAAU,SAAM,aAAU,gBAAa,YAAS,YAAS,YAAS,cAAW,cAAcC,GAAO,GAAGC,KACxI,GACA;CACA,IAAMC,IAAIV,EAAU,GACdW,IAAY,CAAC,CAACC,GACdC,IAAQF,KAAa,CAAC,CAACG,GACvBC,IAAWC,EAAwB,IAAI,GAEvCC,IADYf,EAAaa,CACnB,KAAa,OAAOG,KAAa,UACvCC,IACJ,kBAAC,QAAD;EAAM,KAAKJ;EAAU,WAAU;EAAmB,GAAKE,KAAO,CAACN,IAAY,EAAE,UAAU,EAAE,IAAI,CAAC;EAC3F;CACG,CAAA,GAEFS,IACJ,kBAAAvB,GAAA,EAAA,UAAA,CACGwB,KAAQ,kBAACpB,GAAD;EAAY;EAAM,MAAK;EAAK,WAAU;CAAqB,CAAA,GACnEgB,IACC,kBAACK,GAAD;EAAS,SAASJ;EAAU,OAAM;EAC/B,UAAAC;CACM,CAAA,IAETA,CAEF,EAAA,CAAA,GAEEI,IAASf,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC,GAC5CgB,IAAQ;EACZ,MAAM;EACN;EACA,GAAIC,MAAY,KAAA,IAA0C,CAAC,IAA/B,EAAE,gBAAgBA,EAAQ;CACxD;CAEA,OACE,kBAFYd,KAAa,CAACE,IAAQ,WAAW,QAE7C;EACO;EACL,GAAKF,KAAa,CAACE,IAAQW,IAAQ,CAAC;EACpC,GAAID;EACJ,WAAWxB,EACT,8GACAM,EAAmB,KAAKqB,EAAK,CAAC,SAC9BrB,EAAmB,QAAQsB,EAAQ,CAAC,SACpCN,MAASK,MAAS,OAAO,SAAS,SAClCZ,KAAY,QACZH,KAAa,CAACE,KAAS,iDACvBA,KAAS,QACTF,MAAcgB,MAAY,SAAS,qCAAqC,qCACxEhB,KAAagB,MAAY,aAAa,iBACtCC,KAAW,iCACXC,CACF;EACA,GAAIpB;EAjBN,UAAA,CAmBGI,IACC,kBAAC,UAAD;GACE,GAAIW;GACJ,GAAID;GACJ,WAAWxB,EACT,sGACA2B,MAAS,OAAO,UAAU,SAC1BL,IAAQK,MAAS,OAAO,SAAS,SAAUA,MAAS,OAAO,UAAU,MACvE;GAEC,UAAAN;EACK,CAAA,IAERA,GAEDN,KACC,kBAAC,UAAD;GACE,MAAK;GACL,cACEgB,MACC,OAAOZ,KAAa,YAAYA,EAAS,KAAK,IAC3CR,EAAE,mBAAmB,kBAAkB,EAAE,OAAOQ,EAAS,QAAQ,EAAE,CAAC,IACpER,EAAE,cAAc,QAAQ;GAE9B,UAAU,MAAM;IAEd,AADA,EAAE,gBAAgB,GAClBI,EAAS,CAAC;GACZ;GACA,WAAWf,EACT,kKACA2B,MAAS,OAAO,YAAY,SAC9B;GAEA,UAAA,kBAACzB,GAAD;IAAM,MAAMH;IAAqB,MAAK;GAAM,CAAA;EACtC,CAAA,CAEN;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAI,cAAc;AAE7D,IAAakC,IAAOzB"}
1
+ {"version":3,"file":"tag-DNdX1XRR.js","names":["_Fragment","__icon_Cancel01Icon","cn","useUiText","Icon","useTruncated","Fragment$1","TAG_DOT","KAESO_TAG_VARIANTS","KAESO_TAG_DEFAULT_VARIANTS","Tag","force","props","t","clickable","onClick","split","onRemove","labelRef","useRef","tip","children","label","content","icon","Tooltip","forced","press","pressed","size","variant","invalid","className","removeLabel","Cancel01Icon","Pill"],"sources":["../../src/components/tag/tag.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useRef, type HTMLAttributes, type MouseEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const TAG_DOT = {\n \"viz-1\": \"bg-viz-1\",\n \"viz-2\": \"bg-viz-2\",\n \"viz-3\": \"bg-viz-3\",\n \"viz-4\": \"bg-viz-4\",\n \"viz-5\": \"bg-viz-5\",\n \"viz-6\": \"bg-viz-6\",\n \"viz-7\": \"bg-viz-7\",\n \"viz-8\": \"bg-viz-8\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n danger: \"bg-danger\",\n info: \"bg-info\",\n neutral: \"bg-fg-tertiary\",\n} as const;\nexport type TagDot = keyof typeof TAG_DOT;\n\nexport const KAESO_TAG_VARIANTS = {\n size: {\n md: { classes: \"h-28 px-10 gap-6 text-small\" },\n sm: { classes: \"h-24 px-8 gap-4 text-caption\" },\n },\n variant: {\n raised: { classes: \"bg-raised shadow-control text-fg\" },\n outline: { classes: \"bg-transparent shadow-ring text-fg-secondary\" },\n soft: { classes: \"bg-fill-2 text-fg\" },\n },\n} as const;\nexport const KAESO_TAG_DEFAULT_VARIANTS = { size: \"md\", variant: \"raised\" } as const;\n\nexport interface TagProps extends Omit<HTMLAttributes<HTMLElement>, \"children\"> {\n children: ReactNode;\n size?: keyof typeof KAESO_TAG_VARIANTS.size | undefined;\n variant?: keyof typeof KAESO_TAG_VARIANTS.variant | undefined;\n icon?: IconData | undefined;\n onRemove?: ((e: MouseEvent<HTMLButtonElement>) => void) | undefined;\n removeLabel?: string | undefined;\n onClick?: ((e: MouseEvent<HTMLElement>) => void) | undefined;\n pressed?: boolean | undefined;\n invalid?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Tag = /* @__PURE__ */ forwardRef<HTMLElement, TagProps>(function Tag(\n { children, size = \"md\", variant = \"raised\", icon, onRemove, removeLabel, onClick, pressed, invalid, className, \"data-force\": force, ...props },\n ref,\n) {\n const t = useUiText();\n const clickable = !!onClick;\n const split = clickable && !!onRemove;\n const labelRef = useRef<HTMLSpanElement>(null);\n const truncated = useTruncated(labelRef);\n const tip = truncated && typeof children === \"string\";\n const label = (\n <span ref={labelRef} className=\"min-w-0 truncate\" {...(tip && !clickable ? { tabIndex: 0 } : {})}>\n {children}\n </span>\n );\n const content = (\n <>\n {icon && <Icon icon={icon} size=\"xs\" className=\"text-fg-secondary\" />}\n {tip ? (\n <Tooltip content={children} shape=\"multiline\">\n {label}\n </Tooltip>\n ) : (\n label\n )}\n </>\n );\n const forced = force ? { \"data-force\": force } : {};\n const press = {\n type: \"button\" as const,\n onClick,\n ...(pressed !== undefined ? { \"aria-pressed\": pressed } : {}),\n };\n const Comp = (clickable && !split ? \"button\" : \"span\") as \"span\";\n return (\n <Comp\n ref={ref as React.Ref<HTMLSpanElement>}\n {...(clickable && !split ? press : {})}\n {...forced}\n className={cn(\n \"inline-flex max-w-full shrink-0 items-center rounded-pill font-medium whitespace-nowrap transition-control\",\n KAESO_TAG_VARIANTS.size[size].classes,\n KAESO_TAG_VARIANTS.variant[variant].classes,\n icon && (size === \"md\" ? \"pl-8\" : \"pl-6\"),\n onRemove && \"pr-2\",\n clickable && !split && \"relative cursor-pointer focus-ring tap-target\",\n split && \"pl-0\",\n clickable && (variant === \"soft\" ? \"hover:bg-fill-3 active:bg-fill-3\" : \"hover:bg-fill-1 active:bg-fill-2\"),\n clickable && variant === \"outline\" && \"hover:text-fg\",\n invalid && \"ring-invalid text-danger-text\",\n className,\n )}\n {...props}\n >\n {split ? (\n <button\n {...press}\n {...forced}\n className={cn(\n \"relative inline-flex h-full min-w-0 cursor-pointer items-center rounded-pill focus-ring tap-target\",\n size === \"md\" ? \"gap-6\" : \"gap-4\",\n icon ? (size === \"md\" ? \"pl-8\" : \"pl-6\") : size === \"md\" ? \"pl-10\" : \"pl-8\",\n )}\n >\n {content}\n </button>\n ) : (\n content\n )}\n {onRemove && (\n <button\n type=\"button\"\n aria-label={\n removeLabel ??\n (typeof children === \"string\" && children.trim()\n ? t(\"tag.removeNamed\", \"Remove {label}\", { label: children.trimEnd() })\n : t(\"tag.remove\", \"Remove\"))\n }\n onClick={(e) => {\n e.stopPropagation();\n onRemove(e);\n }}\n className={cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-pill text-fg-tertiary transition-control focus-ring tap-target hover:bg-fill-2 hover:text-fg\",\n size === \"md\" ? \"size-24\" : \"size-20\",\n )}\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n )}\n </Comp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Tag.displayName = \"Tag\";\n\nexport const Pill = Tag;\n"],"mappings":";;;;;;;;;;AASA,IAAaO,IAAU;CACrB,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,SAAS;AACX,GAGaC,IAAqB;CAChC,MAAM;EACJ,IAAI,EAAE,SAAS,8BAA8B;EAC7C,IAAI,EAAE,SAAS,+BAA+B;CAChD;CACA,SAAS;EACP,QAAQ,EAAE,SAAS,mCAAmC;EACtD,SAAS,EAAE,SAAS,+CAA+C;EACnE,MAAM,EAAE,SAAS,oBAAoB;CACvC;AACF,GACaC,IAA6B;CAAE,MAAM;CAAM,SAAS;AAAS,GAe7DC,IAAsB,kBAAkC,SACnE,EAAE,aAAU,UAAO,MAAM,aAAU,UAAU,SAAM,aAAU,gBAAa,YAAS,YAAS,YAAS,cAAW,cAAcC,GAAO,GAAGC,KACxI,GACA;CACA,IAAMC,IAAIV,EAAU,GACdW,IAAY,CAAC,CAACC,GACdC,IAAQF,KAAa,CAAC,CAACG,GACvBC,IAAWC,EAAwB,IAAI,GAEvCC,IADYf,EAAaa,CACnB,KAAa,OAAOG,KAAa,UACvCC,IACJ,kBAAC,QAAD;EAAM,KAAKJ;EAAU,WAAU;EAAmB,GAAKE,KAAO,CAACN,IAAY,EAAE,UAAU,EAAE,IAAI,CAAC;EAC3F;CACG,CAAA,GAEFS,IACJ,kBAAAvB,GAAA,EAAA,UAAA,CACGwB,KAAQ,kBAACpB,GAAD;EAAY;EAAM,MAAK;EAAK,WAAU;CAAqB,CAAA,GACnEgB,IACC,kBAACK,GAAD;EAAS,SAASJ;EAAU,OAAM;EAC/B,UAAAC;CACM,CAAA,IAETA,CAEF,EAAA,CAAA,GAEEI,IAASf,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC,GAC5CgB,IAAQ;EACZ,MAAM;EACN;EACA,GAAIC,MAAY,KAAA,IAA0C,CAAC,IAA/B,EAAE,gBAAgBA,EAAQ;CACxD;CAEA,OACE,kBAFYd,KAAa,CAACE,IAAQ,WAAW,QAE7C;EACO;EACL,GAAKF,KAAa,CAACE,IAAQW,IAAQ,CAAC;EACpC,GAAID;EACJ,WAAWxB,EACT,8GACAM,EAAmB,KAAKqB,EAAK,CAAC,SAC9BrB,EAAmB,QAAQsB,EAAQ,CAAC,SACpCN,MAASK,MAAS,OAAO,SAAS,SAClCZ,KAAY,QACZH,KAAa,CAACE,KAAS,iDACvBA,KAAS,QACTF,MAAcgB,MAAY,SAAS,qCAAqC,qCACxEhB,KAAagB,MAAY,aAAa,iBACtCC,KAAW,iCACXC,CACF;EACA,GAAIpB;EAjBN,UAAA,CAmBGI,IACC,kBAAC,UAAD;GACE,GAAIW;GACJ,GAAID;GACJ,WAAWxB,EACT,sGACA2B,MAAS,OAAO,UAAU,SAC1BL,IAAQK,MAAS,OAAO,SAAS,SAAUA,MAAS,OAAO,UAAU,MACvE;GAEC,UAAAN;EACK,CAAA,IAERA,GAEDN,KACC,kBAAC,UAAD;GACE,MAAK;GACL,cACEgB,MACC,OAAOZ,KAAa,YAAYA,EAAS,KAAK,IAC3CR,EAAE,mBAAmB,kBAAkB,EAAE,OAAOQ,EAAS,QAAQ,EAAE,CAAC,IACpER,EAAE,cAAc,QAAQ;GAE9B,UAAU,MAAM;IAEd,AADA,EAAE,gBAAgB,GAClBI,EAAS,CAAC;GACZ;GACA,WAAWf,EACT,kKACA2B,MAAS,OAAO,YAAY,SAC9B;GAEA,UAAA,kBAACzB,GAAD;IAAM,MAAMH;IAAqB,MAAK;GAAM,CAAA;EACtC,CAAA,CAEN;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAI,cAAc;AAE7D,IAAakC,IAAOzB"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
3
- import { r as t } from "./tooltip-CRApbLF6.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
+ import { r as t } from "./tooltip-BMQ9BtPp.js";
4
4
  import { t as n } from "./use-truncated-CW0hByYt.js";
5
5
  import { forwardRef as r, useRef as i } from "react";
6
6
  import { jsx as a } from "react/jsx-runtime";
@@ -60,4 +60,4 @@ process.env.NODE_ENV !== "production" && (l.displayName = "Text");
60
60
  //#endregion
61
61
  export { o as n, l as r, s as t };
62
62
 
63
- //# sourceMappingURL=text-hFc6TDp9.js.map
63
+ //# sourceMappingURL=text-DCGGNqTM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-hFc6TDp9.js","names":["cn","Tooltip","useTruncated","KAESO_TEXT_VARIANTS","KAESO_TEXT_DEFAULT_VARIANTS","mergeRefs","refs","r","value","Text","props","Comp","as","inner","useRef","isTruncated","truncate","el","ref","variant","tone","weight","mono","tabular","className","children"],"sources":["../../src/components/text/text.tsx"],"sourcesContent":["import { forwardRef, useRef, type ElementType, type HTMLAttributes, type ReactNode, type Ref } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nexport const KAESO_TEXT_VARIANTS = {\n variant: {\n micro: { classes: \"text-micro font-medium\" },\n caption: { classes: \"text-caption font-medium\" },\n small: { classes: \"text-small\" },\n body: { classes: \"text-body\" },\n \"body-lg\": { classes: \"text-body-lg font-medium\" },\n \"title-sm\": { classes: \"text-title-sm font-semibold\" },\n title: { classes: \"text-title font-semibold\" },\n \"title-lg\": { classes: \"text-title-lg font-semibold\" },\n display: { classes: \"text-display font-semibold\" },\n metric: { classes: \"text-metric font-semibold tabular\" },\n },\n tone: {\n default: { classes: \"text-fg\" },\n secondary: { classes: \"text-fg-secondary\" },\n tertiary: { classes: \"text-fg-tertiary\" },\n danger: { classes: \"text-danger-text\" },\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n info: { classes: \"text-info-text\" },\n inherit: { classes: \"text-inherit\" },\n },\n weight: {\n regular: { classes: \"font-regular\" },\n medium: { classes: \"font-medium\" },\n semibold: { classes: \"font-semibold\" },\n },\n} as const;\nexport const KAESO_TEXT_DEFAULT_VARIANTS = { variant: \"body\", tone: \"default\" } as const;\n\nexport type TextVariant = keyof typeof KAESO_TEXT_VARIANTS.variant;\nexport type TextTone = keyof typeof KAESO_TEXT_VARIANTS.tone;\nexport type TextWeight = keyof typeof KAESO_TEXT_VARIANTS.weight;\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n variant?: TextVariant | undefined;\n tone?: TextTone | undefined;\n weight?: TextWeight | undefined;\n mono?: boolean | undefined;\n tabular?: boolean | undefined;\n truncate?: boolean | undefined;\n as?: ElementType | undefined;\n children?: ReactNode | undefined;\n}\n\nfunction mergeRefs<T>(...refs: (Ref<T> | undefined)[]) {\n return (value: T | null) => {\n for (const r of refs) {\n if (typeof r === \"function\") r(value);\n else if (r && typeof r === \"object\") (r as { current: T | null }).current = value;\n }\n };\n}\n\nexport const Text = /* @__PURE__ */ forwardRef<HTMLElement, TextProps>(function Text(\n { variant = \"body\", tone = \"default\", weight, mono, tabular, truncate, as, className, children, ...props },\n ref,\n) {\n const Comp = (as ?? \"span\") as ElementType;\n const inner = useRef<HTMLElement>(null);\n const isTruncated = useTruncated(inner, !!truncate);\n const el = (\n <Comp\n ref={mergeRefs(ref, inner)}\n className={cn(\n KAESO_TEXT_VARIANTS.variant[variant].classes,\n KAESO_TEXT_VARIANTS.tone[tone].classes,\n weight && KAESO_TEXT_VARIANTS.weight[weight].classes,\n mono && \"mono\",\n mono && variant === \"body\" && \"text-small\",\n tabular && \"tabular\",\n truncate && \"block min-w-0 truncate\",\n className,\n )}\n {...(truncate && isTruncated ? { tabIndex: 0 } : {})}\n {...props}\n >\n {children}\n </Comp>\n );\n if (truncate && isTruncated && typeof children === \"string\") {\n return (\n <Tooltip content={children} shape=\"multiline\">\n {el}\n </Tooltip>\n );\n }\n return el;\n});\nif (process.env.NODE_ENV !== \"production\") Text.displayName = \"Text\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAAsB;CACjC,SAAS;EACP,OAAO,EAAE,SAAS,yBAAyB;EAC3C,SAAS,EAAE,SAAS,2BAA2B;EAC/C,OAAO,EAAE,SAAS,aAAa;EAC/B,MAAM,EAAE,SAAS,YAAY;EAC7B,WAAW,EAAE,SAAS,2BAA2B;EACjD,YAAY,EAAE,SAAS,8BAA8B;EACrD,OAAO,EAAE,SAAS,2BAA2B;EAC7C,YAAY,EAAE,SAAS,8BAA8B;EACrD,SAAS,EAAE,SAAS,6BAA6B;EACjD,QAAQ,EAAE,SAAS,oCAAoC;CACzD;CACA,MAAM;EACJ,SAAS,EAAE,SAAS,UAAU;EAC9B,WAAW,EAAE,SAAS,oBAAoB;EAC1C,UAAU,EAAE,SAAS,mBAAmB;EACxC,QAAQ,EAAE,SAAS,mBAAmB;EACtC,SAAS,EAAE,SAAS,oBAAoB;EACxC,SAAS,EAAE,SAAS,oBAAoB;EACxC,MAAM,EAAE,SAAS,iBAAiB;EAClC,SAAS,EAAE,SAAS,eAAe;CACrC;CACA,QAAQ;EACN,SAAS,EAAE,SAAS,eAAe;EACnC,QAAQ,EAAE,SAAS,cAAc;EACjC,UAAU,EAAE,SAAS,gBAAgB;CACvC;AACF,GACaC,IAA8B;CAAE,SAAS;CAAQ,MAAM;AAAU;AAiB9E,SAASC,EAAa,GAAGC,GAA8B;CACrD,QAAQ,MAAoB;EAC1B,KAAK,IAAMC,KAAKD,GACd,AAAI,OAAOC,KAAM,aAAYA,EAAEC,CAAK,IAC3BD,KAAK,OAAOA,KAAM,aAAU,EAA6B,UAAUC;CAEhF;AACF;AAEA,IAAaC,IAAuB,kBAAmC,SACrE,EAAE,aAAU,QAAQ,UAAO,WAAW,WAAQ,SAAM,YAAS,aAAU,OAAI,cAAW,aAAU,GAAGC,KACnG,GACA;CACA,IAAMC,IAAQC,KAAM,QACdC,IAAQC,EAAoB,IAAI,GAChCC,IAAcb,EAAaW,GAAO,CAAC,CAACG,CAAQ,GAC5CC,IACJ,kBAACN,GAAD;EACE,KAAKN,EAAUa,GAAKL,CAAK;EACzB,WAAWb,EACTG,EAAoB,QAAQgB,EAAQ,CAAC,SACrChB,EAAoB,KAAKiB,EAAK,CAAC,SAC/BC,KAAUlB,EAAoB,OAAOkB,EAAO,CAAC,SAC7CC,KAAQ,QACRA,KAAQH,MAAY,UAAU,cAC9BI,KAAW,WACXP,KAAY,0BACZQ,CACF;EACA,GAAKR,KAAYD,IAAc,EAAE,UAAU,EAAE,IAAI,CAAC;EAClD,GAAIL;EAEH;CACG,CAAA;CASR,OAPIM,KAAYD,KAAe,OAAOU,KAAa,WAE/C,kBAACxB,GAAD;EAAS,SAASwB;EAAU,OAAM;EAC/B,UAAAR;CACM,CAAA,IAGNA;AACT,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
1
+ {"version":3,"file":"text-DCGGNqTM.js","names":["cn","Tooltip","useTruncated","KAESO_TEXT_VARIANTS","KAESO_TEXT_DEFAULT_VARIANTS","mergeRefs","refs","r","value","Text","props","Comp","as","inner","useRef","isTruncated","truncate","el","ref","variant","tone","weight","mono","tabular","className","children"],"sources":["../../src/components/text/text.tsx"],"sourcesContent":["import { forwardRef, useRef, type ElementType, type HTMLAttributes, type ReactNode, type Ref } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nexport const KAESO_TEXT_VARIANTS = {\n variant: {\n micro: { classes: \"text-micro font-medium\" },\n caption: { classes: \"text-caption font-medium\" },\n small: { classes: \"text-small\" },\n body: { classes: \"text-body\" },\n \"body-lg\": { classes: \"text-body-lg font-medium\" },\n \"title-sm\": { classes: \"text-title-sm font-semibold\" },\n title: { classes: \"text-title font-semibold\" },\n \"title-lg\": { classes: \"text-title-lg font-semibold\" },\n display: { classes: \"text-display font-semibold\" },\n metric: { classes: \"text-metric font-semibold tabular\" },\n },\n tone: {\n default: { classes: \"text-fg\" },\n secondary: { classes: \"text-fg-secondary\" },\n tertiary: { classes: \"text-fg-tertiary\" },\n danger: { classes: \"text-danger-text\" },\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n info: { classes: \"text-info-text\" },\n inherit: { classes: \"text-inherit\" },\n },\n weight: {\n regular: { classes: \"font-regular\" },\n medium: { classes: \"font-medium\" },\n semibold: { classes: \"font-semibold\" },\n },\n} as const;\nexport const KAESO_TEXT_DEFAULT_VARIANTS = { variant: \"body\", tone: \"default\" } as const;\n\nexport type TextVariant = keyof typeof KAESO_TEXT_VARIANTS.variant;\nexport type TextTone = keyof typeof KAESO_TEXT_VARIANTS.tone;\nexport type TextWeight = keyof typeof KAESO_TEXT_VARIANTS.weight;\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n variant?: TextVariant | undefined;\n tone?: TextTone | undefined;\n weight?: TextWeight | undefined;\n mono?: boolean | undefined;\n tabular?: boolean | undefined;\n truncate?: boolean | undefined;\n as?: ElementType | undefined;\n children?: ReactNode | undefined;\n}\n\nfunction mergeRefs<T>(...refs: (Ref<T> | undefined)[]) {\n return (value: T | null) => {\n for (const r of refs) {\n if (typeof r === \"function\") r(value);\n else if (r && typeof r === \"object\") (r as { current: T | null }).current = value;\n }\n };\n}\n\nexport const Text = /* @__PURE__ */ forwardRef<HTMLElement, TextProps>(function Text(\n { variant = \"body\", tone = \"default\", weight, mono, tabular, truncate, as, className, children, ...props },\n ref,\n) {\n const Comp = (as ?? \"span\") as ElementType;\n const inner = useRef<HTMLElement>(null);\n const isTruncated = useTruncated(inner, !!truncate);\n const el = (\n <Comp\n ref={mergeRefs(ref, inner)}\n className={cn(\n KAESO_TEXT_VARIANTS.variant[variant].classes,\n KAESO_TEXT_VARIANTS.tone[tone].classes,\n weight && KAESO_TEXT_VARIANTS.weight[weight].classes,\n mono && \"mono\",\n mono && variant === \"body\" && \"text-small\",\n tabular && \"tabular\",\n truncate && \"block min-w-0 truncate\",\n className,\n )}\n {...(truncate && isTruncated ? { tabIndex: 0 } : {})}\n {...props}\n >\n {children}\n </Comp>\n );\n if (truncate && isTruncated && typeof children === \"string\") {\n return (\n <Tooltip content={children} shape=\"multiline\">\n {el}\n </Tooltip>\n );\n }\n return el;\n});\nif (process.env.NODE_ENV !== \"production\") Text.displayName = \"Text\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAAsB;CACjC,SAAS;EACP,OAAO,EAAE,SAAS,yBAAyB;EAC3C,SAAS,EAAE,SAAS,2BAA2B;EAC/C,OAAO,EAAE,SAAS,aAAa;EAC/B,MAAM,EAAE,SAAS,YAAY;EAC7B,WAAW,EAAE,SAAS,2BAA2B;EACjD,YAAY,EAAE,SAAS,8BAA8B;EACrD,OAAO,EAAE,SAAS,2BAA2B;EAC7C,YAAY,EAAE,SAAS,8BAA8B;EACrD,SAAS,EAAE,SAAS,6BAA6B;EACjD,QAAQ,EAAE,SAAS,oCAAoC;CACzD;CACA,MAAM;EACJ,SAAS,EAAE,SAAS,UAAU;EAC9B,WAAW,EAAE,SAAS,oBAAoB;EAC1C,UAAU,EAAE,SAAS,mBAAmB;EACxC,QAAQ,EAAE,SAAS,mBAAmB;EACtC,SAAS,EAAE,SAAS,oBAAoB;EACxC,SAAS,EAAE,SAAS,oBAAoB;EACxC,MAAM,EAAE,SAAS,iBAAiB;EAClC,SAAS,EAAE,SAAS,eAAe;CACrC;CACA,QAAQ;EACN,SAAS,EAAE,SAAS,eAAe;EACnC,QAAQ,EAAE,SAAS,cAAc;EACjC,UAAU,EAAE,SAAS,gBAAgB;CACvC;AACF,GACaC,IAA8B;CAAE,SAAS;CAAQ,MAAM;AAAU;AAiB9E,SAASC,EAAa,GAAGC,GAA8B;CACrD,QAAQ,MAAoB;EAC1B,KAAK,IAAMC,KAAKD,GACd,AAAI,OAAOC,KAAM,aAAYA,EAAEC,CAAK,IAC3BD,KAAK,OAAOA,KAAM,aAAU,EAA6B,UAAUC;CAEhF;AACF;AAEA,IAAaC,IAAuB,kBAAmC,SACrE,EAAE,aAAU,QAAQ,UAAO,WAAW,WAAQ,SAAM,YAAS,aAAU,OAAI,cAAW,aAAU,GAAGC,KACnG,GACA;CACA,IAAMC,IAAQC,KAAM,QACdC,IAAQC,EAAoB,IAAI,GAChCC,IAAcb,EAAaW,GAAO,CAAC,CAACG,CAAQ,GAC5CC,IACJ,kBAACN,GAAD;EACE,KAAKN,EAAUa,GAAKL,CAAK;EACzB,WAAWb,EACTG,EAAoB,QAAQgB,EAAQ,CAAC,SACrChB,EAAoB,KAAKiB,EAAK,CAAC,SAC/BC,KAAUlB,EAAoB,OAAOkB,EAAO,CAAC,SAC7CC,KAAQ,QACRA,KAAQH,MAAY,UAAU,cAC9BI,KAAW,WACXP,KAAY,0BACZQ,CACF;EACA,GAAKR,KAAYD,IAAc,EAAE,UAAU,EAAE,IAAI,CAAC;EAClD,GAAIL;EAEH;CACG,CAAA;CASR,OAPIM,KAAYD,KAAe,OAAOU,KAAa,WAE/C,kBAACxB,GAAD;EAAS,SAASwB;EAAU,OAAM;EAC/B,UAAAR;CACM,CAAA,IAGNA;AACT,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t } from "./dev-CR1p7gCm.js";
4
4
  import { i as n, r } from "./context-BELWW79w.js";
5
- import { a as i, o as a, s as o } from "./field-DfITT6Jm.js";
6
- import { n as s } from "./input-group-Dgdb0JpZ.js";
7
- import { t as c } from "./input-B6Docqrk.js";
5
+ import { a as i, o as a, s as o } from "./field-TviMvYa2.js";
6
+ import { n as s } from "./input-group-CUSNsQjQ.js";
7
+ import { t as c } from "./input-TyLIaQ5k.js";
8
8
  import { forwardRef as l, useCallback as u, useLayoutEffect as d, useMemo as f, useRef as p, useState as m } from "react";
9
9
  import { jsx as h, jsxs as g } from "react/jsx-runtime";
10
10
  import { Add01Icon as _, MinusSignIcon as v } from "@hugeicons/core-free-icons";
@@ -157,4 +157,4 @@ process.env.NODE_ENV !== "production" && (F.displayName = "Textarea");
157
157
  //#endregion
158
158
  export { O as a, S as c, k as i, T as l, j as n, A as o, F as r, x as s, M as t };
159
159
 
160
- //# sourceMappingURL=textarea-17Ftvph_.js.map
160
+ //# sourceMappingURL=textarea-CT2S2JVM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea-17Ftvph_.js","names":["__icon_MinusSignIcon","__icon_Add01Icon","cn","warnStylingClassName","useUiText","useField","useFieldControl","withField","InputGroup","Input","split","m","v","isDecimal","addDecimal","x","a","y","b","scale","toBig","p","sum","neg","digits","int","frac","compareDecimal","d","ENGLISH","decimalSeparators","locale","parts","groupDecimal","seps","localizeDecimal","ungroup","out","KAESO_NUMBER_INPUT_VARIANTS","KAESO_NUMBER_INPUT_DEFAULT_VARIANTS","NumberInput","props","t","useLocale","useMemo","inner","setInner","useState","defaultValue","focused","setFocused","controlled","value","raw","set","onValueChange","clamp","min","max","stepBy","dir","step","display","integer","live","disabled","readOnly","stepper","hideStepper","MinusSignIcon","Add01Icon","className","unit","onFocus","onBlur","onKeyDown","KAESO_TEXTAREA_VARIANTS","KAESO_TEXTAREA_DEFAULT_VARIANTS","LINE","PAD","Textarea","rest","field","fc","useRef","grow","useCallback","el","resize","maxRows","control","ref","onChange","mono","label","description","error","id","invalid"],"sources":["../../src/components/input/decimal.ts","../../src/components/input/number-input.tsx","../../src/components/input/textarea.tsx"],"sourcesContent":["function split(v: string): { neg: boolean; int: string; frac: string } {\n const m = /^(-)?(\\d*)(?:\\.(\\d*))?$/.exec(v.trim());\n if (!m) return { neg: false, int: \"0\", frac: \"\" };\n return { neg: m[1] === \"-\", int: (m[2] || \"0\").replace(/^0+(?=\\d)/, \"\"), frac: m[3] ?? \"\" };\n}\n\nexport function isDecimal(v: string): boolean {\n return /^-?\\d*(?:\\.\\d*)?$/.test(v.trim());\n}\n\nexport function addDecimal(a: string, b: string): string {\n const x = split(a || \"0\");\n const y = split(b || \"0\");\n const scale = Math.max(x.frac.length, y.frac.length);\n const toBig = (p: { neg: boolean; int: string; frac: string }) => BigInt((p.neg ? \"-\" : \"\") + p.int + p.frac.padEnd(scale, \"0\"));\n const sum = toBig(x) + toBig(y);\n const neg = sum < 0n;\n const digits = (neg ? -sum : sum).toString().padStart(scale + 1, \"0\");\n const int = digits.slice(0, digits.length - scale) || \"0\";\n const frac = scale ? digits.slice(-scale) : \"\";\n return `${neg ? \"-\" : \"\"}${int}${frac ? `.${frac}` : \"\"}`;\n}\n\nexport function compareDecimal(a: string, b: string): number {\n const d = addDecimal(a, b.startsWith(\"-\") ? b.slice(1) : `-${b}`);\n if (d.startsWith(\"-\") && /[1-9]/.test(d)) return -1;\n return /[1-9]/.test(d) ? 1 : 0;\n}\n\nexport interface DecimalSeparators {\n group: string;\n decimal: string;\n}\n\nconst ENGLISH: DecimalSeparators = { group: \",\", decimal: \".\" };\n\nexport function decimalSeparators(locale: string): DecimalSeparators {\n if (locale === \"en\") return ENGLISH;\n const parts = new Intl.NumberFormat(locale).formatToParts(1234.5);\n return { group: parts.find((p) => p.type === \"group\")?.value ?? \",\", decimal: parts.find((p) => p.type === \"decimal\")?.value ?? \".\" };\n}\n\nexport function groupDecimal(v: string, seps: DecimalSeparators = ENGLISH): string {\n const p = split(v);\n if (!isDecimal(v) || v.trim() === \"\") return v;\n return `${p.neg ? \"-\" : \"\"}${p.int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, seps.group)}${v.includes(\".\") ? `${seps.decimal}${p.frac}` : \"\"}`;\n}\n\nexport function localizeDecimal(v: string, seps: DecimalSeparators = ENGLISH): string {\n return seps.decimal === \".\" ? v : v.replace(\".\", seps.decimal);\n}\n\nexport function ungroup(v: string, seps: DecimalSeparators = ENGLISH): string {\n const out = seps.group === \".\" ? v : v.split(seps.group).join(\"\");\n return seps.decimal === \".\" ? out : out.split(seps.decimal).join(\".\");\n}\n","import { forwardRef, useMemo, useState, type ChangeEvent, type FocusEvent, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Input, type InputProps } from \"./input.js\";\nimport { InputGroup } from \"./input-group.js\";\nimport { MinusSignIcon as __icon_MinusSignIcon, Add01Icon as __icon_Add01Icon } from \"@hugeicons/core-free-icons\";\nimport { addDecimal, compareDecimal, decimalSeparators, groupDecimal, isDecimal, localizeDecimal, ungroup } from \"./decimal.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_NUMBER_INPUT_VARIANTS = {\n align: {\n end: { classes: \"text-right\" },\n start: { classes: \"text-left\" },\n },\n} as const;\nexport const KAESO_NUMBER_INPUT_DEFAULT_VARIANTS = { align: \"end\" } as const;\n\nexport interface NumberInputProps extends Omit<InputProps, \"type\" | \"value\" | \"defaultValue\" | \"onChange\" | \"min\" | \"max\" | \"step\"> {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n unit?: string | undefined;\n step?: string | undefined;\n min?: string | undefined;\n max?: string | undefined;\n hideStepper?: boolean | undefined;\n integer?: boolean | undefined;\n align?: keyof typeof KAESO_NUMBER_INPUT_VARIANTS.align | undefined;\n}\n\nexport const NumberInput = /* @__PURE__ */ forwardRef<HTMLInputElement, NumberInputProps>(function NumberInput(\n {\n value,\n defaultValue = \"\",\n onValueChange,\n unit,\n step = \"1\",\n min,\n max,\n hideStepper,\n integer,\n align = \"end\",\n onBlur,\n onFocus,\n onKeyDown,\n className,\n disabled,\n readOnly,\n ...props\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const seps = useMemo(() => decimalSeparators(locale), [locale]);\n const [inner, setInner] = useState(defaultValue);\n const [focused, setFocused] = useState(false);\n const controlled = value !== undefined;\n const raw = controlled ? value : inner;\n const set = (v: string) => {\n if (!controlled) setInner(v);\n onValueChange?.(v);\n };\n const clamp = (v: string) => {\n if (v === \"\" || v === \"-\") return v;\n if (min !== undefined && compareDecimal(v, min) < 0) return min;\n if (max !== undefined && compareDecimal(v, max) > 0) return max;\n return v;\n };\n const stepBy = (dir: 1 | -1) => set(clamp(addDecimal(raw || \"0\", dir === 1 ? step : `-${step}`)));\n const display = integer ? raw : focused ? localizeDecimal(raw, seps) : groupDecimal(raw, seps);\n const live = !disabled && !readOnly;\n const stepper = !hideStepper && (\n <span\n className={cn(\n \"flex shrink-0 items-center opacity-0 transition-control\",\n live ? \"group-hover/num:opacity-100 coarse:opacity-100 group-focus-within/num:opacity-100\" : \"invisible\",\n )}\n {...(live ? {} : { \"aria-hidden\": true })}\n >\n <InputGroup.Button icon={__icon_MinusSignIcon} aria-label={t(\"numberInput.decrease\", \"Decrease\")} onClick={() => stepBy(-1)} disabled={!live} />\n <InputGroup.Button icon={__icon_Add01Icon} aria-label={t(\"numberInput.increase\", \"Increase\")} onClick={() => stepBy(1)} disabled={!live} />\n </span>\n );\n return (\n <Input\n ref={ref}\n type=\"text\"\n inputMode={integer ? \"numeric\" : \"decimal\"}\n autoComplete=\"off\"\n spellCheck={false}\n value={display}\n disabled={disabled}\n readOnly={readOnly}\n className={cn(\"group/num\", className)}\n suffix={unit}\n trailing={stepper || undefined}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (integer) {\n if (/^-?\\d*$/.test(e.target.value)) set(e.target.value);\n return;\n }\n const v = ungroup(e.target.value, seps);\n if (isDecimal(v)) set(v);\n }}\n onFocus={(e: FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n onFocus?.(e);\n }}\n onBlur={(e: FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n if (raw !== clamp(raw)) set(clamp(raw));\n onBlur?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n stepBy(1);\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n stepBy(-1);\n }\n onKeyDown?.(e);\n }}\n align={align}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") NumberInput.displayName = \"NumberInput\";\n","import { forwardRef, useCallback, useLayoutEffect, useRef, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\n\nexport const KAESO_TEXTAREA_VARIANTS = {\n resize: {\n auto: { classes: \"resize-none\" },\n vertical: { classes: \"resize-y\" },\n },\n} as const;\nexport const KAESO_TEXTAREA_DEFAULT_VARIANTS = { resize: \"auto\" } as const;\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement>, FieldWrapProps {\n resize?: keyof typeof KAESO_TEXTAREA_VARIANTS.resize | undefined;\n maxRows?: number | undefined;\n invalid?: boolean | undefined;\n mono?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst LINE = 20;\nconst PAD = 20;\n\nexport const Textarea = /* @__PURE__ */ forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(props, ref) {\n const {\n resize = \"auto\",\n maxRows = 8,\n rows = 3,\n invalid,\n mono,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n id,\n disabled,\n onChange,\n ...rest\n } = props;\n warnStylingClassName(\"Textarea\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = useRef<HTMLTextAreaElement | null>(null);\n const grow = useCallback(() => {\n const el = inner.current;\n if (!el || resize !== \"auto\") return;\n el.style.height = \"auto\";\n el.style.height = `${Math.min(el.scrollHeight, maxRows * LINE + PAD)}px`;\n }, [maxRows, resize]);\n useLayoutEffect(grow, [grow, rest.value]);\n const control = (\n <textarea\n ref={(el) => {\n inner.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n rows={rows}\n disabled={disabled}\n required={required}\n onChange={(e) => {\n grow();\n onChange?.(e);\n }}\n className={cn(\n \"block w-full min-w-0 rounded-textarea px-16 py-10 text-body text-fg material-field transition-control outline-none placeholder:text-fg-tertiary scrollbar-quiet\",\n \"disabled:cursor-not-allowed\",\n mono && \"mono text-small\",\n KAESO_TEXTAREA_VARIANTS.resize[resize].classes,\n !(label || description || error) && className,\n )}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") Textarea.displayName = \"Textarea\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"textarea-CT2S2JVM.js","names":["__icon_MinusSignIcon","__icon_Add01Icon","cn","warnStylingClassName","useUiText","useField","useFieldControl","withField","InputGroup","Input","split","m","v","isDecimal","addDecimal","x","a","y","b","scale","toBig","p","sum","neg","digits","int","frac","compareDecimal","d","ENGLISH","decimalSeparators","locale","parts","groupDecimal","seps","localizeDecimal","ungroup","out","KAESO_NUMBER_INPUT_VARIANTS","KAESO_NUMBER_INPUT_DEFAULT_VARIANTS","NumberInput","props","t","useLocale","useMemo","inner","setInner","useState","defaultValue","focused","setFocused","controlled","value","raw","set","onValueChange","clamp","min","max","stepBy","dir","step","display","integer","live","disabled","readOnly","stepper","hideStepper","MinusSignIcon","Add01Icon","className","unit","onFocus","onBlur","onKeyDown","KAESO_TEXTAREA_VARIANTS","KAESO_TEXTAREA_DEFAULT_VARIANTS","LINE","PAD","Textarea","rest","field","fc","useRef","grow","useCallback","el","resize","maxRows","control","ref","onChange","mono","label","description","error","id","invalid"],"sources":["../../src/components/input/decimal.ts","../../src/components/input/number-input.tsx","../../src/components/input/textarea.tsx"],"sourcesContent":["function split(v: string): { neg: boolean; int: string; frac: string } {\n const m = /^(-)?(\\d*)(?:\\.(\\d*))?$/.exec(v.trim());\n if (!m) return { neg: false, int: \"0\", frac: \"\" };\n return { neg: m[1] === \"-\", int: (m[2] || \"0\").replace(/^0+(?=\\d)/, \"\"), frac: m[3] ?? \"\" };\n}\n\nexport function isDecimal(v: string): boolean {\n return /^-?\\d*(?:\\.\\d*)?$/.test(v.trim());\n}\n\nexport function addDecimal(a: string, b: string): string {\n const x = split(a || \"0\");\n const y = split(b || \"0\");\n const scale = Math.max(x.frac.length, y.frac.length);\n const toBig = (p: { neg: boolean; int: string; frac: string }) => BigInt((p.neg ? \"-\" : \"\") + p.int + p.frac.padEnd(scale, \"0\"));\n const sum = toBig(x) + toBig(y);\n const neg = sum < 0n;\n const digits = (neg ? -sum : sum).toString().padStart(scale + 1, \"0\");\n const int = digits.slice(0, digits.length - scale) || \"0\";\n const frac = scale ? digits.slice(-scale) : \"\";\n return `${neg ? \"-\" : \"\"}${int}${frac ? `.${frac}` : \"\"}`;\n}\n\nexport function compareDecimal(a: string, b: string): number {\n const d = addDecimal(a, b.startsWith(\"-\") ? b.slice(1) : `-${b}`);\n if (d.startsWith(\"-\") && /[1-9]/.test(d)) return -1;\n return /[1-9]/.test(d) ? 1 : 0;\n}\n\nexport interface DecimalSeparators {\n group: string;\n decimal: string;\n}\n\nconst ENGLISH: DecimalSeparators = { group: \",\", decimal: \".\" };\n\nexport function decimalSeparators(locale: string): DecimalSeparators {\n if (locale === \"en\") return ENGLISH;\n const parts = new Intl.NumberFormat(locale).formatToParts(1234.5);\n return { group: parts.find((p) => p.type === \"group\")?.value ?? \",\", decimal: parts.find((p) => p.type === \"decimal\")?.value ?? \".\" };\n}\n\nexport function groupDecimal(v: string, seps: DecimalSeparators = ENGLISH): string {\n const p = split(v);\n if (!isDecimal(v) || v.trim() === \"\") return v;\n return `${p.neg ? \"-\" : \"\"}${p.int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, seps.group)}${v.includes(\".\") ? `${seps.decimal}${p.frac}` : \"\"}`;\n}\n\nexport function localizeDecimal(v: string, seps: DecimalSeparators = ENGLISH): string {\n return seps.decimal === \".\" ? v : v.replace(\".\", seps.decimal);\n}\n\nexport function ungroup(v: string, seps: DecimalSeparators = ENGLISH): string {\n const out = seps.group === \".\" ? v : v.split(seps.group).join(\"\");\n return seps.decimal === \".\" ? out : out.split(seps.decimal).join(\".\");\n}\n","import { forwardRef, useMemo, useState, type ChangeEvent, type FocusEvent, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Input, type InputProps } from \"./input.js\";\nimport { InputGroup } from \"./input-group.js\";\nimport { MinusSignIcon as __icon_MinusSignIcon, Add01Icon as __icon_Add01Icon } from \"@hugeicons/core-free-icons\";\nimport { addDecimal, compareDecimal, decimalSeparators, groupDecimal, isDecimal, localizeDecimal, ungroup } from \"./decimal.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_NUMBER_INPUT_VARIANTS = {\n align: {\n end: { classes: \"text-right\" },\n start: { classes: \"text-left\" },\n },\n} as const;\nexport const KAESO_NUMBER_INPUT_DEFAULT_VARIANTS = { align: \"end\" } as const;\n\nexport interface NumberInputProps extends Omit<InputProps, \"type\" | \"value\" | \"defaultValue\" | \"onChange\" | \"min\" | \"max\" | \"step\"> {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n unit?: string | undefined;\n step?: string | undefined;\n min?: string | undefined;\n max?: string | undefined;\n hideStepper?: boolean | undefined;\n integer?: boolean | undefined;\n align?: keyof typeof KAESO_NUMBER_INPUT_VARIANTS.align | undefined;\n}\n\nexport const NumberInput = /* @__PURE__ */ forwardRef<HTMLInputElement, NumberInputProps>(function NumberInput(\n {\n value,\n defaultValue = \"\",\n onValueChange,\n unit,\n step = \"1\",\n min,\n max,\n hideStepper,\n integer,\n align = \"end\",\n onBlur,\n onFocus,\n onKeyDown,\n className,\n disabled,\n readOnly,\n ...props\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const seps = useMemo(() => decimalSeparators(locale), [locale]);\n const [inner, setInner] = useState(defaultValue);\n const [focused, setFocused] = useState(false);\n const controlled = value !== undefined;\n const raw = controlled ? value : inner;\n const set = (v: string) => {\n if (!controlled) setInner(v);\n onValueChange?.(v);\n };\n const clamp = (v: string) => {\n if (v === \"\" || v === \"-\") return v;\n if (min !== undefined && compareDecimal(v, min) < 0) return min;\n if (max !== undefined && compareDecimal(v, max) > 0) return max;\n return v;\n };\n const stepBy = (dir: 1 | -1) => set(clamp(addDecimal(raw || \"0\", dir === 1 ? step : `-${step}`)));\n const display = integer ? raw : focused ? localizeDecimal(raw, seps) : groupDecimal(raw, seps);\n const live = !disabled && !readOnly;\n const stepper = !hideStepper && (\n <span\n className={cn(\n \"flex shrink-0 items-center opacity-0 transition-control\",\n live ? \"group-hover/num:opacity-100 coarse:opacity-100 group-focus-within/num:opacity-100\" : \"invisible\",\n )}\n {...(live ? {} : { \"aria-hidden\": true })}\n >\n <InputGroup.Button icon={__icon_MinusSignIcon} aria-label={t(\"numberInput.decrease\", \"Decrease\")} onClick={() => stepBy(-1)} disabled={!live} />\n <InputGroup.Button icon={__icon_Add01Icon} aria-label={t(\"numberInput.increase\", \"Increase\")} onClick={() => stepBy(1)} disabled={!live} />\n </span>\n );\n return (\n <Input\n ref={ref}\n type=\"text\"\n inputMode={integer ? \"numeric\" : \"decimal\"}\n autoComplete=\"off\"\n spellCheck={false}\n value={display}\n disabled={disabled}\n readOnly={readOnly}\n className={cn(\"group/num\", className)}\n suffix={unit}\n trailing={stepper || undefined}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (integer) {\n if (/^-?\\d*$/.test(e.target.value)) set(e.target.value);\n return;\n }\n const v = ungroup(e.target.value, seps);\n if (isDecimal(v)) set(v);\n }}\n onFocus={(e: FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n onFocus?.(e);\n }}\n onBlur={(e: FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n if (raw !== clamp(raw)) set(clamp(raw));\n onBlur?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n stepBy(1);\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n stepBy(-1);\n }\n onKeyDown?.(e);\n }}\n align={align}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") NumberInput.displayName = \"NumberInput\";\n","import { forwardRef, useCallback, useLayoutEffect, useRef, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\n\nexport const KAESO_TEXTAREA_VARIANTS = {\n resize: {\n auto: { classes: \"resize-none\" },\n vertical: { classes: \"resize-y\" },\n },\n} as const;\nexport const KAESO_TEXTAREA_DEFAULT_VARIANTS = { resize: \"auto\" } as const;\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement>, FieldWrapProps {\n resize?: keyof typeof KAESO_TEXTAREA_VARIANTS.resize | undefined;\n maxRows?: number | undefined;\n invalid?: boolean | undefined;\n mono?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst LINE = 20;\nconst PAD = 20;\n\nexport const Textarea = /* @__PURE__ */ forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(props, ref) {\n const {\n resize = \"auto\",\n maxRows = 8,\n rows = 3,\n invalid,\n mono,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n id,\n disabled,\n onChange,\n ...rest\n } = props;\n warnStylingClassName(\"Textarea\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = useRef<HTMLTextAreaElement | null>(null);\n const grow = useCallback(() => {\n const el = inner.current;\n if (!el || resize !== \"auto\") return;\n el.style.height = \"auto\";\n el.style.height = `${Math.min(el.scrollHeight, maxRows * LINE + PAD)}px`;\n }, [maxRows, resize]);\n useLayoutEffect(grow, [grow, rest.value]);\n const control = (\n <textarea\n ref={(el) => {\n inner.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n rows={rows}\n disabled={disabled}\n required={required}\n onChange={(e) => {\n grow();\n onChange?.(e);\n }}\n className={cn(\n \"block w-full min-w-0 rounded-textarea px-16 py-10 text-body text-fg material-field transition-control outline-none placeholder:text-fg-tertiary scrollbar-quiet\",\n \"disabled:cursor-not-allowed\",\n mono && \"mono text-small\",\n KAESO_TEXTAREA_VARIANTS.resize[resize].classes,\n !(label || description || error) && className,\n )}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") Textarea.displayName = \"Textarea\";\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t, r as n } from "./context-BELWW79w.js";
4
4
  import { dateFormatter as r, formatNumber as i, formatPercent as ee, formatTimeZone as te } from "../format.js";
5
- import { A as a, D as o, E as s, S as ne, _ as c, b as re, g as ie, i as ae, k as oe, n as se, p as ce, r as le, s as ue, t as l, v as de } from "./core-FtMDNELx.js";
5
+ import { A as a, D as o, E as s, S as ne, _ as c, b as re, g as ie, i as ae, k as oe, n as se, p as ce, r as le, s as ue, t as l, v as de } from "./core-Bl9NrBLS.js";
6
6
  import { t as fe } from "./linear-scale-BWKeRqDX.js";
7
7
  import { forwardRef as u, useId as pe, useMemo as me, useState as he } from "react";
8
8
  import { Fragment as ge, jsx as d, jsxs as f } from "react/jsx-runtime";
@@ -336,4 +336,4 @@ process.env.NODE_ENV !== "production" && (S.displayName = "TimeseriesChart");
336
336
  //#endregion
337
337
  export { Te as n, S as r, Ee as t };
338
338
 
339
- //# sourceMappingURL=timeseries-CbnSFD5q.js.map
339
+ //# sourceMappingURL=timeseries-B-8OfeZm.js.map