@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":"input-B6Docqrk.js","names":["__icon_Search01Icon","__icon_Cancel01Icon","warnStylingClassName","useUiText","Icon","KbdSequence","useField","useFieldControl","withField","InputGroup","INPUT_ICON_SIZE","KAESO_INPUT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","Input","force","rest","props","className","field","fc","inner","InputGroupFromField","invalid","error","label","description","align","id","leadingIcon","trailing","size","prefix","children","suffix","SearchInput","t","setInner","useState","defaultValue","controlled","value","current","input","useRef","clear","el","onClear","ref","Search01Icon","placeholder","onChange","onKeyDown","Cancel01Icon","shortcut"],"sources":["../../src/components/input/input.tsx"],"sourcesContent":["import { forwardRef, useRef, useState, type InputHTMLAttributes, type KeyboardEvent, type ReactNode } from \"react\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { InputGroup, INPUT_ICON_SIZE, type InputSize } from \"./input-group.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { Search01Icon as __icon_Search01Icon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_INPUT_VARIANTS = {\n size: {\n sm: { classes: \"h-32\" },\n md: { classes: \"h-36\" },\n lg: { classes: \"h-40\" },\n xl: { classes: \"h-48\" },\n },\n} as const;\nexport const KAESO_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\">, FieldWrapProps {\n size?: InputSize | undefined;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n align?: \"start\" | \"end\" | undefined;\n \"data-force\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {\n const {\n size = \"md\",\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n align,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n disabled,\n readOnly,\n id,\n \"data-force\": force,\n ...rest\n } = props;\n warnStylingClassName(\"Input\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = (\n <InputGroupFromField\n size={size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n suffix={suffix}\n trailing={trailing}\n invalid={invalid || !!error}\n disabled={disabled}\n readOnly={readOnly}\n force={force}\n className={label || description || error ? undefined : className}\n >\n <InputGroup.Input\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n className={align === \"end\" ? \"text-right tabular\" : undefined}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n </InputGroupFromField>\n );\n if (field) return inner;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, inner);\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"Input\";\n\nfunction InputGroupFromField({\n size,\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n disabled,\n readOnly,\n force,\n className,\n children,\n}: {\n size: InputSize;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n force?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <InputGroup\n size={size}\n leadingIcon={!!leadingIcon}\n trailingButton={!!trailing}\n invalid={invalid}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n {...(force ? { \"data-force\": force } : {})}\n >\n {leadingIcon && <Icon icon={leadingIcon} size={INPUT_ICON_SIZE[size]} className=\"text-fg-tertiary\" />}\n {prefix && <InputGroup.Addon>{prefix}</InputGroup.Addon>}\n {children}\n {suffix && <InputGroup.Addon>{suffix}</InputGroup.Addon>}\n {trailing}\n </InputGroup>\n );\n}\n\nexport interface SearchInputProps extends Omit<InputProps, \"leadingIcon\" | \"type\" | \"prefix\" | \"suffix\"> {\n shortcut?: string[] | undefined;\n onClear?: (() => void) | undefined;\n placeholder?: string | undefined;\n}\n\nexport const SearchInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SearchInputProps>(function SearchInput(\n { shortcut, onClear, value, defaultValue, onChange, onKeyDown, placeholder, size = \"sm\", ...props },\n ref,\n) {\n const t = useUiText();\n const [inner, setInner] = useState(String(defaultValue ?? \"\"));\n const controlled = value !== undefined;\n const current = controlled ? String(value) : inner;\n const input = useRef<HTMLInputElement | null>(null);\n const clear = () => {\n const el = input.current;\n if (!controlled) setInner(\"\");\n else if (el && !onClear) {\n Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, \"value\")?.set?.call(el, \"\");\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n }\n onClear?.();\n el?.focus();\n };\n return (\n <Input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n type=\"search\"\n size={size}\n leadingIcon={__icon_Search01Icon}\n placeholder={placeholder ?? t(\"searchInput.placeholder\", \"Search\")}\n autoComplete=\"off\"\n spellCheck={false}\n value={current}\n onChange={(e) => {\n if (!controlled) setInner(e.target.value);\n onChange?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\" && current) {\n e.stopPropagation();\n clear();\n }\n onKeyDown?.(e);\n }}\n trailing={current ? <InputGroup.Button icon={__icon_Cancel01Icon} aria-label={t(\"searchInput.clear\", \"Clear search\")} onClick={clear} /> : undefined}\n suffix={!current && shortcut ? <KbdSequence keys={shortcut} /> : undefined}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SearchInput.displayName = \"SearchInput\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"input-TyLIaQ5k.js","names":["__icon_Search01Icon","__icon_Cancel01Icon","warnStylingClassName","useUiText","Icon","KbdSequence","useField","useFieldControl","withField","InputGroup","INPUT_ICON_SIZE","KAESO_INPUT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","Input","force","rest","props","className","field","fc","inner","InputGroupFromField","invalid","error","label","description","align","id","leadingIcon","trailing","size","prefix","children","suffix","SearchInput","t","setInner","useState","defaultValue","controlled","value","current","input","useRef","clear","el","onClear","ref","Search01Icon","placeholder","onChange","onKeyDown","Cancel01Icon","shortcut"],"sources":["../../src/components/input/input.tsx"],"sourcesContent":["import { forwardRef, useRef, useState, type InputHTMLAttributes, type KeyboardEvent, type ReactNode } from \"react\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { InputGroup, INPUT_ICON_SIZE, type InputSize } from \"./input-group.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { Search01Icon as __icon_Search01Icon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_INPUT_VARIANTS = {\n size: {\n sm: { classes: \"h-32\" },\n md: { classes: \"h-36\" },\n lg: { classes: \"h-40\" },\n xl: { classes: \"h-48\" },\n },\n} as const;\nexport const KAESO_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\">, FieldWrapProps {\n size?: InputSize | undefined;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n align?: \"start\" | \"end\" | undefined;\n \"data-force\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {\n const {\n size = \"md\",\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n align,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n disabled,\n readOnly,\n id,\n \"data-force\": force,\n ...rest\n } = props;\n warnStylingClassName(\"Input\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = (\n <InputGroupFromField\n size={size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n suffix={suffix}\n trailing={trailing}\n invalid={invalid || !!error}\n disabled={disabled}\n readOnly={readOnly}\n force={force}\n className={label || description || error ? undefined : className}\n >\n <InputGroup.Input\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n className={align === \"end\" ? \"text-right tabular\" : undefined}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n </InputGroupFromField>\n );\n if (field) return inner;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, inner);\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"Input\";\n\nfunction InputGroupFromField({\n size,\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n disabled,\n readOnly,\n force,\n className,\n children,\n}: {\n size: InputSize;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n force?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <InputGroup\n size={size}\n leadingIcon={!!leadingIcon}\n trailingButton={!!trailing}\n invalid={invalid}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n {...(force ? { \"data-force\": force } : {})}\n >\n {leadingIcon && <Icon icon={leadingIcon} size={INPUT_ICON_SIZE[size]} className=\"text-fg-tertiary\" />}\n {prefix && <InputGroup.Addon>{prefix}</InputGroup.Addon>}\n {children}\n {suffix && <InputGroup.Addon>{suffix}</InputGroup.Addon>}\n {trailing}\n </InputGroup>\n );\n}\n\nexport interface SearchInputProps extends Omit<InputProps, \"leadingIcon\" | \"type\" | \"prefix\" | \"suffix\"> {\n shortcut?: string[] | undefined;\n onClear?: (() => void) | undefined;\n placeholder?: string | undefined;\n}\n\nexport const SearchInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SearchInputProps>(function SearchInput(\n { shortcut, onClear, value, defaultValue, onChange, onKeyDown, placeholder, size = \"sm\", ...props },\n ref,\n) {\n const t = useUiText();\n const [inner, setInner] = useState(String(defaultValue ?? \"\"));\n const controlled = value !== undefined;\n const current = controlled ? String(value) : inner;\n const input = useRef<HTMLInputElement | null>(null);\n const clear = () => {\n const el = input.current;\n if (!controlled) setInner(\"\");\n else if (el && !onClear) {\n Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, \"value\")?.set?.call(el, \"\");\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n }\n onClear?.();\n el?.focus();\n };\n return (\n <Input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n type=\"search\"\n size={size}\n leadingIcon={__icon_Search01Icon}\n placeholder={placeholder ?? t(\"searchInput.placeholder\", \"Search\")}\n autoComplete=\"off\"\n spellCheck={false}\n value={current}\n onChange={(e) => {\n if (!controlled) setInner(e.target.value);\n onChange?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\" && current) {\n e.stopPropagation();\n clear();\n }\n onKeyDown?.(e);\n }}\n trailing={current ? <InputGroup.Button icon={__icon_Cancel01Icon} aria-label={t(\"searchInput.clear\", \"Clear search\")} onClick={clear} /> : undefined}\n suffix={!current && shortcut ? <KbdSequence keys={shortcut} /> : undefined}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SearchInput.displayName = \"SearchInput\";\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
3
- import { t } from "./icon-D5uD_mnL.js";
4
- import { n } from "./button-9q66Ta23.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
+ import { t } from "./icon-D7ja-_Yk.js";
4
+ import { n } from "./button-Dzu7_csE.js";
5
5
  import { createContext as r, forwardRef as i, useContext as a } from "react";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  //#region src/utils/field-press.ts
@@ -90,4 +90,4 @@ var y = /* @__PURE__ */ Object.assign(h, {
90
90
  //#endregion
91
91
  export { b as a, l as i, y as n, u as r, p as t };
92
92
 
93
- //# sourceMappingURL=input-group-Dgdb0JpZ.js.map
93
+ //# sourceMappingURL=input-group-CUSNsQjQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group-Dgdb0JpZ.js","names":["cn","focusInputOnPress","input","KAESO_INPUT_GROUP_VARIANTS","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","LEADING","TRAILING_BUTTON","INPUT_ICON_SIZE","Ctx","Root","props","size","leadingIcon","trailingButton","disabled","className","invalid","readOnly","Input","Addon","useContext","icon","Icon","children","GroupButton","Button","InputGroup","useInputGroupSize"],"sources":["../../src/utils/field-press.ts","../../src/components/input/input-group.tsx"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n","import type * as React from \"react\";\nimport { createContext, forwardRef, useContext, type HTMLAttributes, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { focusInputOnPress } from \"../../utils/field-press.js\";\nimport { Icon, type IconData, type IconSize } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\n\nexport const KAESO_INPUT_GROUP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n lg: { classes: \"h-40 px-18 gap-8 text-body\" },\n xl: { classes: \"h-48 px-22 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_INPUT_GROUP_DEFAULT_VARIANTS = { size: \"md\" } as const;\nexport type InputSize = keyof typeof KAESO_INPUT_GROUP_VARIANTS.size;\n\nconst LEADING: Record<InputSize, string> = { sm: \"pl-10\", md: \"pl-14\", lg: \"pl-16\", xl: \"pl-20\" };\nconst TRAILING_BUTTON: Record<InputSize, string> = { sm: \"pr-4\", md: \"pr-2\", lg: \"pr-4\", xl: \"pr-6\" };\nexport const INPUT_ICON_SIZE: Record<InputSize, IconSize> = { sm: \"sm\", md: \"sm\", lg: \"md\", xl: \"lg\" };\n\nconst Ctx = /* @__PURE__ */ createContext<{ size: InputSize }>({ size: \"md\" });\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n size?: InputSize | undefined;\n leadingIcon?: boolean | undefined;\n trailingButton?: boolean | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { size = \"md\", leadingIcon, trailingButton, invalid, disabled, readOnly, className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ size }}>\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_INPUT_GROUP_VARIANTS.size[size].classes,\n leadingIcon && LEADING[size],\n trailingButton && TRAILING_BUTTON[size],\n disabled && \"cursor-not-allowed\",\n className,\n )}\n {...(invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(readOnly ? { \"data-readonly\": \"\" } : {})}\n onMouseDown={focusInputOnPress}\n {...props}\n >\n {children}\n </div>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"InputGroup\";\n\nexport interface InputGroupInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {}\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputGroupInputProps>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={cn(\n \"min-w-0 flex-1 bg-transparent bidi-plaintext text-inherit text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed disabled:text-fg-disabled read-only:cursor-text\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"InputGroup.Input\";\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n icon?: IconData | undefined;\n}\n\nconst Addon = /* @__PURE__ */ forwardRef<HTMLSpanElement, InputGroupAddonProps>(function InputGroupAddon({ icon, className, children, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <span ref={ref} className={cn(\"inline-flex shrink-0 items-center gap-4 bidi-plaintext text-fg-secondary select-none\", className)} {...props}>\n {icon && <Icon icon={icon} size={INPUT_ICON_SIZE[size]} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Addon.displayName = \"InputGroup.Addon\";\n\nexport interface InputGroupButtonProps {\n icon: IconData;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n}\n\nconst GroupButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, InputGroupButtonProps>(function InputGroupButton({ icon, className, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n variant=\"quiet\"\n size={size === \"xl\" ? \"md\" : size === \"lg\" ? \"sm\" : size === \"md\" ? \"sm\" : \"xs\"}\n icon={icon}\n className={className}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupButton.displayName = \"InputGroup.Button\";\n\nexport const InputGroup = /* @__PURE__ */ Object.assign(Root, { Input, Addon, Button: GroupButton });\nexport const useInputGroupSize = () => useContext(Ctx).size;\n"],"mappings":";;;;;;;AAEA,SAAgBC,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd;;;ACDA,IAAaC,IAA6B,EACxC,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,gCAAgC;AACjD,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAGzDC,IAAqC;CAAE,IAAI;CAAS,IAAI;CAAS,IAAI;CAAS,IAAI;AAAQ,GAC1FC,IAA6C;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;AAAO,GACvFC,IAA+C;CAAE,IAAI;CAAM,IAAI;CAAM,IAAI;CAAM,IAAI;AAAK,GAE/FC,IAAsB,kBAAmC,EAAE,MAAM,KAAK,CAAC,GAYvEC,IAAuB,kBAA4C,SACvE,EAAE,UAAO,MAAM,gBAAa,mBAAgB,YAAS,aAAU,aAAU,cAAW,aAAU,GAAGC,KACjG,GACA;CACA,OACE,kBAACF,EAAI,UAAL;EAAc,OAAO,EAAE,QAAK;EAC1B,UAAA,kBAAC,OAAD;GACO;GACL,WAAWR,EACT,wGACAG,EAA2B,KAAKQ,EAAK,CAAC,SACtCC,KAAeP,EAAQM,IACvBE,KAAkBP,EAAgBK,IAClCG,KAAY,sBACZC,CACF;GACA,GAAKC,IAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;GACzC,GAAKF,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,GAAKG,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,aAAahB;GACb,GAAIS;GAEH;EACE,CAAA;CACO,CAAA;AAElB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAI9D,IAAMQ,IAAwB,kBAAmD,SAAyB,EAAE,cAAW,GAAGR,KAAS,GAAK;CACtI,OACE,kBAAC,SAAD;EACO;EACL,WAAWV,EACT,2LACAe,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAM/D,IAAMS,IAAwB,kBAAkD,SAAyB,EAAE,SAAM,cAAW,aAAU,GAAGT,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWR,EAAG,wFAAwFe,CAAS;EAAG,GAAIL;EAAtI,UAAA,CACGW,KAAQ,kBAACC,GAAD;GAAY;GAAM,MAAMf,EAAgBI;EAAQ,CAAA,GACxDY,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAU/D,IAAMC,IAA8B,kBAAqD,SAA0B,EAAE,SAAM,cAAW,GAAGd,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAACiB,GAAD;EACO;EACL,OAAM;EACN,SAAQ;EACR,MAAMd,MAAS,OAAO,OAAOA,MAAS,QAAcA,MAAS,OAAhB,OAA8B;EACrE;EACK;EACX,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAagB,IAA6B,uBAAO,OAAOjB,GAAM;CAAE;CAAO;CAAO,QAAQe;AAAY,CAAC,GACtFG,UAA0BP,EAAWZ,CAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"input-group-CUSNsQjQ.js","names":["cn","focusInputOnPress","input","KAESO_INPUT_GROUP_VARIANTS","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","LEADING","TRAILING_BUTTON","INPUT_ICON_SIZE","Ctx","Root","props","size","leadingIcon","trailingButton","disabled","className","invalid","readOnly","Input","Addon","useContext","icon","Icon","children","GroupButton","Button","InputGroup","useInputGroupSize"],"sources":["../../src/utils/field-press.ts","../../src/components/input/input-group.tsx"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n","import type * as React from \"react\";\nimport { createContext, forwardRef, useContext, type HTMLAttributes, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { focusInputOnPress } from \"../../utils/field-press.js\";\nimport { Icon, type IconData, type IconSize } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\n\nexport const KAESO_INPUT_GROUP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n lg: { classes: \"h-40 px-18 gap-8 text-body\" },\n xl: { classes: \"h-48 px-22 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_INPUT_GROUP_DEFAULT_VARIANTS = { size: \"md\" } as const;\nexport type InputSize = keyof typeof KAESO_INPUT_GROUP_VARIANTS.size;\n\nconst LEADING: Record<InputSize, string> = { sm: \"pl-10\", md: \"pl-14\", lg: \"pl-16\", xl: \"pl-20\" };\nconst TRAILING_BUTTON: Record<InputSize, string> = { sm: \"pr-4\", md: \"pr-2\", lg: \"pr-4\", xl: \"pr-6\" };\nexport const INPUT_ICON_SIZE: Record<InputSize, IconSize> = { sm: \"sm\", md: \"sm\", lg: \"md\", xl: \"lg\" };\n\nconst Ctx = /* @__PURE__ */ createContext<{ size: InputSize }>({ size: \"md\" });\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n size?: InputSize | undefined;\n leadingIcon?: boolean | undefined;\n trailingButton?: boolean | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { size = \"md\", leadingIcon, trailingButton, invalid, disabled, readOnly, className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ size }}>\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_INPUT_GROUP_VARIANTS.size[size].classes,\n leadingIcon && LEADING[size],\n trailingButton && TRAILING_BUTTON[size],\n disabled && \"cursor-not-allowed\",\n className,\n )}\n {...(invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(readOnly ? { \"data-readonly\": \"\" } : {})}\n onMouseDown={focusInputOnPress}\n {...props}\n >\n {children}\n </div>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"InputGroup\";\n\nexport interface InputGroupInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {}\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputGroupInputProps>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={cn(\n \"min-w-0 flex-1 bg-transparent bidi-plaintext text-inherit text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed disabled:text-fg-disabled read-only:cursor-text\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"InputGroup.Input\";\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n icon?: IconData | undefined;\n}\n\nconst Addon = /* @__PURE__ */ forwardRef<HTMLSpanElement, InputGroupAddonProps>(function InputGroupAddon({ icon, className, children, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <span ref={ref} className={cn(\"inline-flex shrink-0 items-center gap-4 bidi-plaintext text-fg-secondary select-none\", className)} {...props}>\n {icon && <Icon icon={icon} size={INPUT_ICON_SIZE[size]} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Addon.displayName = \"InputGroup.Addon\";\n\nexport interface InputGroupButtonProps {\n icon: IconData;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n}\n\nconst GroupButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, InputGroupButtonProps>(function InputGroupButton({ icon, className, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n variant=\"quiet\"\n size={size === \"xl\" ? \"md\" : size === \"lg\" ? \"sm\" : size === \"md\" ? \"sm\" : \"xs\"}\n icon={icon}\n className={className}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupButton.displayName = \"InputGroup.Button\";\n\nexport const InputGroup = /* @__PURE__ */ Object.assign(Root, { Input, Addon, Button: GroupButton });\nexport const useInputGroupSize = () => useContext(Ctx).size;\n"],"mappings":";;;;;;;AAEA,SAAgBC,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd;;;ACDA,IAAaC,IAA6B,EACxC,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,gCAAgC;AACjD,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAGzDC,IAAqC;CAAE,IAAI;CAAS,IAAI;CAAS,IAAI;CAAS,IAAI;AAAQ,GAC1FC,IAA6C;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;AAAO,GACvFC,IAA+C;CAAE,IAAI;CAAM,IAAI;CAAM,IAAI;CAAM,IAAI;AAAK,GAE/FC,IAAsB,kBAAmC,EAAE,MAAM,KAAK,CAAC,GAYvEC,IAAuB,kBAA4C,SACvE,EAAE,UAAO,MAAM,gBAAa,mBAAgB,YAAS,aAAU,aAAU,cAAW,aAAU,GAAGC,KACjG,GACA;CACA,OACE,kBAACF,EAAI,UAAL;EAAc,OAAO,EAAE,QAAK;EAC1B,UAAA,kBAAC,OAAD;GACO;GACL,WAAWR,EACT,wGACAG,EAA2B,KAAKQ,EAAK,CAAC,SACtCC,KAAeP,EAAQM,IACvBE,KAAkBP,EAAgBK,IAClCG,KAAY,sBACZC,CACF;GACA,GAAKC,IAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;GACzC,GAAKF,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,GAAKG,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,aAAahB;GACb,GAAIS;GAEH;EACE,CAAA;CACO,CAAA;AAElB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAI9D,IAAMQ,IAAwB,kBAAmD,SAAyB,EAAE,cAAW,GAAGR,KAAS,GAAK;CACtI,OACE,kBAAC,SAAD;EACO;EACL,WAAWV,EACT,2LACAe,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAM/D,IAAMS,IAAwB,kBAAkD,SAAyB,EAAE,SAAM,cAAW,aAAU,GAAGT,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWR,EAAG,wFAAwFe,CAAS;EAAG,GAAIL;EAAtI,UAAA,CACGW,KAAQ,kBAACC,GAAD;GAAY;GAAM,MAAMf,EAAgBI;EAAQ,CAAA,GACxDY,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAU/D,IAAMC,IAA8B,kBAAqD,SAA0B,EAAE,SAAM,cAAW,GAAGd,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAACiB,GAAD;EACO;EACL,OAAM;EACN,SAAQ;EACR,MAAMd,MAAS,OAAO,OAAOA,MAAS,QAAcA,MAAS,OAAhB,OAA8B;EACrE;EACK;EACX,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAagB,IAA6B,uBAAO,OAAOjB,GAAM;CAAE;CAAO;CAAO,QAAQe;AAAY,CAAC,GACtFG,UAA0BP,EAAWZ,CAAG,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { i as e } from "./context-BELWW79w.js";
3
3
  import { formatISODate as t, parseISODate as n } from "../format.js";
4
- import { n as r } from "./input-group-Dgdb0JpZ.js";
4
+ import { n as r } from "./input-group-CUSNsQjQ.js";
5
5
  import { useState as i } from "react";
6
6
  import { jsx as a } from "react/jsx-runtime";
7
7
  //#region src/components/date-picker/iso-field.tsx
@@ -30,4 +30,4 @@ function o({ label: o, value: s, onCommit: c }) {
30
30
  //#endregion
31
31
  export { o as t };
32
32
 
33
- //# sourceMappingURL=iso-field-SOZ7Z-yE.js.map
33
+ //# sourceMappingURL=iso-field-CWbxlll-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iso-field-SOZ7Z-yE.js","names":["useUiText","InputGroup","IsoField","t","text","setText","useState","value","formatISODate","shown","setShown","label","d","parseISODate","onCommit"],"sources":["../../src/components/date-picker/iso-field.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { InputGroup } from \"../input/input-group.js\";\nimport { formatISODate, parseISODate } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport function IsoField({ label, value, onCommit }: { label: string; value: Date | undefined; onCommit: (d: Date) => boolean | void }) {\n const t = useUiText();\n const [text, setText] = useState(value ? formatISODate(value) : \"\");\n const [shown, setShown] = useState(value);\n if (value !== shown) {\n setShown(value);\n setText(value ? formatISODate(value) : \"\");\n }\n return (\n <InputGroup size=\"sm\" className=\"flex-1\">\n <InputGroup.Input\n aria-label={label}\n placeholder={t(\"datePicker.isoPlaceholder\", \"YYYY-MM-DD\")}\n value={text}\n inputMode=\"numeric\"\n className=\"mono text-small\"\n onChange={(e) => setText(e.target.value)}\n onBlur={() => {\n const d = parseISODate(text);\n if (!d || onCommit(d) === false) setText(value ? formatISODate(value) : \"\");\n }}\n onKeyDown={(e) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n (e.target as HTMLInputElement).blur();\n }}\n />\n </InputGroup>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBE,EAAS,EAAE,UAAO,UAAO,eAA+F;CACtI,IAAMC,IAAIH,EAAU,GACd,CAACI,GAAMC,KAAWC,EAASC,IAAQC,EAAcD,CAAK,IAAI,EAAE,GAC5D,CAACE,GAAOC,KAAYJ,EAASC,CAAK;CAKxC,OAJIA,MAAUE,MACZC,EAASH,CAAK,GACdF,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE,IAGzC,kBAACN,GAAD;EAAY,MAAK;EAAK,WAAU;EAC9B,UAAA,kBAACA,EAAW,OAAZ;GACE,cAAYU;GACZ,aAAaR,EAAE,6BAA6B,YAAY;GACxD,OAAOC;GACP,WAAU;GACV,WAAU;GACV,WAAW,MAAMC,EAAQ,EAAE,OAAO,KAAK;GACvC,cAAc;IACZ,IAAMO,IAAIC,EAAaT,CAAI;IAC3B,CAAI,CAACQ,KAAKE,EAASF,CAAC,MAAM,OAAOP,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE;GAC5E;GACA,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,YACd,EAAE,eAAe,GACjB,EAAG,OAA4B,KAAK;GACtC;EACD,CAAA;CACS,CAAA;AAEhB"}
1
+ {"version":3,"file":"iso-field-CWbxlll-.js","names":["useUiText","InputGroup","IsoField","t","text","setText","useState","value","formatISODate","shown","setShown","label","d","parseISODate","onCommit"],"sources":["../../src/components/date-picker/iso-field.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { InputGroup } from \"../input/input-group.js\";\nimport { formatISODate, parseISODate } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport function IsoField({ label, value, onCommit }: { label: string; value: Date | undefined; onCommit: (d: Date) => boolean | void }) {\n const t = useUiText();\n const [text, setText] = useState(value ? formatISODate(value) : \"\");\n const [shown, setShown] = useState(value);\n if (value !== shown) {\n setShown(value);\n setText(value ? formatISODate(value) : \"\");\n }\n return (\n <InputGroup size=\"sm\" className=\"flex-1\">\n <InputGroup.Input\n aria-label={label}\n placeholder={t(\"datePicker.isoPlaceholder\", \"YYYY-MM-DD\")}\n value={text}\n inputMode=\"numeric\"\n className=\"mono text-small\"\n onChange={(e) => setText(e.target.value)}\n onBlur={() => {\n const d = parseISODate(text);\n if (!d || onCommit(d) === false) setText(value ? formatISODate(value) : \"\");\n }}\n onKeyDown={(e) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n (e.target as HTMLInputElement).blur();\n }}\n />\n </InputGroup>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBE,EAAS,EAAE,UAAO,UAAO,eAA+F;CACtI,IAAMC,IAAIH,EAAU,GACd,CAACI,GAAMC,KAAWC,EAASC,IAAQC,EAAcD,CAAK,IAAI,EAAE,GAC5D,CAACE,GAAOC,KAAYJ,EAASC,CAAK;CAKxC,OAJIA,MAAUE,MACZC,EAASH,CAAK,GACdF,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE,IAGzC,kBAACN,GAAD;EAAY,MAAK;EAAK,WAAU;EAC9B,UAAA,kBAACA,EAAW,OAAZ;GACE,cAAYU;GACZ,aAAaR,EAAE,6BAA6B,YAAY;GACxD,OAAOC;GACP,WAAU;GACV,WAAU;GACV,WAAW,MAAMC,EAAQ,EAAE,OAAO,KAAK;GACvC,cAAc;IACZ,IAAMO,IAAIC,EAAaT,CAAI;IAC3B,CAAI,CAACQ,KAAKE,EAASF,CAAC,MAAM,OAAOP,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE;GAC5E;GACA,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,YACd,EAAE,eAAe,GACjB,EAAG,OAA4B,KAAK;GACtC;EACD,CAAA;CACS,CAAA;AAEhB"}
@@ -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 { i as t } from "./context-BELWW79w.js";
4
- import { t as n } from "./icon-D5uD_mnL.js";
4
+ import { t as n } from "./icon-D7ja-_Yk.js";
5
5
  import { t as r } from "./use-copy-Dm2ncvMX.js";
6
6
  import { forwardRef as i, useState as a } from "react";
7
7
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -172,4 +172,4 @@ process.env.NODE_ENV !== "production" && (v.displayName = "JsonView");
172
172
  //#endregion
173
173
  export { p as n, f as r, v as t };
174
174
 
175
- //# sourceMappingURL=json-view-DCTMY_j4.js.map
175
+ //# sourceMappingURL=json-view-Dqd2TDkc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-view-DCTMY_j4.js","names":["_Fragment","__icon_Tick02Icon","__icon_Copy01Icon","__icon_ArrowRight01Icon","cn","useUiText","Icon","useCopy","Fragment$1","KAESO_JSON_VIEW_VARIANTS","KAESO_JSON_VIEW_DEFAULT_VARIANTS","Mark","query","text","i","Scalar","v","CopyPath","t","copied","e","copy","path","Tick02Icon","Copy01Icon","Node","initialOpen","open","setOpen","useState","depth","isObj","value","entries","keyLabel","name","comma","last","o","c","ArrowRight01Icon","k","JsonView","surface","className","defaultDepth"],"sources":["../../src/components/code-block/json-view.tsx"],"sourcesContent":["import { forwardRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_JSON_VIEW_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1 p-16\" },\n plain: { classes: \"\" },\n },\n} as const;\nexport const KAESO_JSON_VIEW_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\ntype Json = string | number | boolean | null | Json[] | { [k: string]: Json };\n\nexport interface JsonViewProps {\n value: unknown;\n defaultDepth?: number | undefined;\n query?: string | undefined;\n surface?: keyof typeof KAESO_JSON_VIEW_VARIANTS.surface | undefined;\n className?: string | undefined;\n}\n\nfunction Mark({ text, query }: { text: string; query?: string | undefined }) {\n if (!query) return <>{text}</>;\n const i = text.toLowerCase().indexOf(query.toLowerCase());\n if (i < 0) return <>{text}</>;\n return (\n <>\n {text.slice(0, i)}\n <mark className=\"rounded-cell bg-warning-tint text-inherit ring-mark\">{text.slice(i, i + query.length)}</mark>\n {text.slice(i + query.length)}\n </>\n );\n}\n\nfunction Scalar({ v, query }: { v: Json; query?: string | undefined }) {\n if (v === null) return <span className=\"font-semibold text-fg\">null</span>;\n if (typeof v === \"boolean\") return <span className=\"font-semibold text-fg\">{String(v)}</span>;\n if (typeof v === \"number\") return <span className=\"text-warning-text tabular\">{v}</span>;\n return (\n <span className=\"break-all text-info-text\">\n \"<Mark text={String(v)} query={query} />\"\n </span>\n );\n}\n\nfunction CopyPath({ path }: { path: string }) {\n const { copied, copy } = useCopy();\n const t = useUiText();\n return (\n <button\n type=\"button\"\n aria-label={copied ? t(\"jsonView.pathCopied\", \"Path copied\") : t(\"jsonView.copyPath\", \"Copy path {path}\", { path })}\n onClick={(e) => {\n e.stopPropagation();\n void copy(path);\n }}\n className=\"relative ml-8 inline-flex size-20 items-center justify-center rounded-pill text-fg-tertiary tap-target opacity-0 transition-control group-hover/row:opacity-100 coarse:opacity-100 hover:bg-fill-2 hover:text-fg focus-visible:opacity-100\"\n >\n <Icon icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon} size=\"xs\" />\n </button>\n );\n}\n\nfunction Node({\n name,\n value,\n path,\n depth,\n open: initialOpen,\n query,\n last,\n}: {\n name?: string | number | undefined;\n value: Json;\n path: string;\n depth: number;\n open: number;\n query?: string | undefined;\n last: boolean;\n}) {\n const [open, setOpen] = useState(depth < initialOpen);\n const t = useUiText();\n const isObj = value !== null && typeof value === \"object\";\n const entries: [string | number, Json][] = isObj ? (Array.isArray(value) ? value.map((v, i) => [i, v]) : Object.entries(value)) : [];\n const keyLabel: ReactNode =\n name === undefined ? null : typeof name === \"number\" ? (\n <span className=\"text-fg-tertiary tabular\">{name}: </span>\n ) : (\n <span className=\"text-fg\">\n \"<Mark text={name} query={query} />\"<span className=\"text-fg-tertiary\">: </span>\n </span>\n );\n const comma = last ? \"\" : \",\";\n if (!isObj) {\n return (\n <div className=\"group/row flex min-h-20 items-start pl-20\" style={{ paddingLeft: depth * 16 + 20 }}>\n <span>\n {keyLabel}\n <Scalar v={value} query={query} />\n <span className=\"text-fg-tertiary\">{comma}</span>\n </span>\n {path && <CopyPath path={path} />}\n </div>\n );\n }\n const [o, c] = Array.isArray(value) ? [\"[\", \"]\"] : [\"{\", \"}\"];\n return (\n <div>\n <div className=\"group/row flex min-h-24 items-center\" style={{ paddingLeft: depth * 16 }}>\n <button\n type=\"button\"\n aria-expanded={open}\n aria-label={\n path\n ? open\n ? t(\"jsonView.collapsePath\", \"Collapse {path}\", { path })\n : t(\"jsonView.expandPath\", \"Expand {path}\", { path })\n : open\n ? t(\"jsonView.collapse\", \"Collapse\")\n : t(\"jsonView.expand\", \"Expand\")\n }\n onClick={() => setOpen(!open)}\n className=\"-ml-4 inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n <Icon icon={__icon_ArrowRight01Icon} size=\"xs\" className={cn(\"transition-transform duration-180\", open && \"rotate-90\")} />\n </button>\n <span>\n {keyLabel}\n <span className=\"text-fg-tertiary\">{o}</span>\n {!open && (\n <button type=\"button\" onClick={() => setOpen(true)} className=\"mx-4 cursor-pointer rounded-code px-4 text-fg-tertiary hover:bg-fill-2\">\n {Array.isArray(value)\n ? t(\"jsonView.items\", \"{count, plural, one {{n} item} other {{n} items}}\", { count: entries.length, n: String(entries.length) })\n : t(\"jsonView.keys\", \"{count, plural, one {{n} key} other {{n} keys}}\", { count: entries.length, n: String(entries.length) })}\n </button>\n )}\n {!open && (\n <span className=\"text-fg-tertiary\">\n {c}\n {comma}\n </span>\n )}\n </span>\n {path && <CopyPath path={path} />}\n </div>\n {open && (\n <>\n {entries.map(([k, v], i) => (\n <Node\n key={k}\n name={k}\n value={v}\n path={typeof k === \"number\" ? `${path}[${k}]` : path ? `${path}.${k}` : String(k)}\n depth={depth + 1}\n open={initialOpen}\n query={query}\n last={i === entries.length - 1}\n />\n ))}\n <div className=\"min-h-20 text-fg-tertiary\" style={{ paddingLeft: depth * 16 + 20 }}>\n {c}\n {comma}\n </div>\n </>\n )}\n </div>\n );\n}\n\nexport const JsonView = /* @__PURE__ */ forwardRef<HTMLDivElement, JsonViewProps>(function JsonView({ value, defaultDepth = 2, query, surface = \"well\", className }, ref) {\n const t = useUiText();\n return (\n <div\n ref={ref}\n tabIndex={0}\n role=\"region\"\n aria-label={t(\"jsonView.label\", \"JSON\")}\n className={cn(\n \"mono overflow-x-auto text-small focus-ring-inset leading-code text-fg scrollbar-quiet\",\n KAESO_JSON_VIEW_VARIANTS.surface[surface].classes,\n className,\n )}\n >\n <Node value={value as Json} path=\"\" depth={0} open={defaultDepth} query={query} last />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") JsonView.displayName = \"JsonView\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"json-view-Dqd2TDkc.js","names":["_Fragment","__icon_Tick02Icon","__icon_Copy01Icon","__icon_ArrowRight01Icon","cn","useUiText","Icon","useCopy","Fragment$1","KAESO_JSON_VIEW_VARIANTS","KAESO_JSON_VIEW_DEFAULT_VARIANTS","Mark","query","text","i","Scalar","v","CopyPath","t","copied","e","copy","path","Tick02Icon","Copy01Icon","Node","initialOpen","open","setOpen","useState","depth","isObj","value","entries","keyLabel","name","comma","last","o","c","ArrowRight01Icon","k","JsonView","surface","className","defaultDepth"],"sources":["../../src/components/code-block/json-view.tsx"],"sourcesContent":["import { forwardRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_JSON_VIEW_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1 p-16\" },\n plain: { classes: \"\" },\n },\n} as const;\nexport const KAESO_JSON_VIEW_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\ntype Json = string | number | boolean | null | Json[] | { [k: string]: Json };\n\nexport interface JsonViewProps {\n value: unknown;\n defaultDepth?: number | undefined;\n query?: string | undefined;\n surface?: keyof typeof KAESO_JSON_VIEW_VARIANTS.surface | undefined;\n className?: string | undefined;\n}\n\nfunction Mark({ text, query }: { text: string; query?: string | undefined }) {\n if (!query) return <>{text}</>;\n const i = text.toLowerCase().indexOf(query.toLowerCase());\n if (i < 0) return <>{text}</>;\n return (\n <>\n {text.slice(0, i)}\n <mark className=\"rounded-cell bg-warning-tint text-inherit ring-mark\">{text.slice(i, i + query.length)}</mark>\n {text.slice(i + query.length)}\n </>\n );\n}\n\nfunction Scalar({ v, query }: { v: Json; query?: string | undefined }) {\n if (v === null) return <span className=\"font-semibold text-fg\">null</span>;\n if (typeof v === \"boolean\") return <span className=\"font-semibold text-fg\">{String(v)}</span>;\n if (typeof v === \"number\") return <span className=\"text-warning-text tabular\">{v}</span>;\n return (\n <span className=\"break-all text-info-text\">\n \"<Mark text={String(v)} query={query} />\"\n </span>\n );\n}\n\nfunction CopyPath({ path }: { path: string }) {\n const { copied, copy } = useCopy();\n const t = useUiText();\n return (\n <button\n type=\"button\"\n aria-label={copied ? t(\"jsonView.pathCopied\", \"Path copied\") : t(\"jsonView.copyPath\", \"Copy path {path}\", { path })}\n onClick={(e) => {\n e.stopPropagation();\n void copy(path);\n }}\n className=\"relative ml-8 inline-flex size-20 items-center justify-center rounded-pill text-fg-tertiary tap-target opacity-0 transition-control group-hover/row:opacity-100 coarse:opacity-100 hover:bg-fill-2 hover:text-fg focus-visible:opacity-100\"\n >\n <Icon icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon} size=\"xs\" />\n </button>\n );\n}\n\nfunction Node({\n name,\n value,\n path,\n depth,\n open: initialOpen,\n query,\n last,\n}: {\n name?: string | number | undefined;\n value: Json;\n path: string;\n depth: number;\n open: number;\n query?: string | undefined;\n last: boolean;\n}) {\n const [open, setOpen] = useState(depth < initialOpen);\n const t = useUiText();\n const isObj = value !== null && typeof value === \"object\";\n const entries: [string | number, Json][] = isObj ? (Array.isArray(value) ? value.map((v, i) => [i, v]) : Object.entries(value)) : [];\n const keyLabel: ReactNode =\n name === undefined ? null : typeof name === \"number\" ? (\n <span className=\"text-fg-tertiary tabular\">{name}: </span>\n ) : (\n <span className=\"text-fg\">\n \"<Mark text={name} query={query} />\"<span className=\"text-fg-tertiary\">: </span>\n </span>\n );\n const comma = last ? \"\" : \",\";\n if (!isObj) {\n return (\n <div className=\"group/row flex min-h-20 items-start pl-20\" style={{ paddingLeft: depth * 16 + 20 }}>\n <span>\n {keyLabel}\n <Scalar v={value} query={query} />\n <span className=\"text-fg-tertiary\">{comma}</span>\n </span>\n {path && <CopyPath path={path} />}\n </div>\n );\n }\n const [o, c] = Array.isArray(value) ? [\"[\", \"]\"] : [\"{\", \"}\"];\n return (\n <div>\n <div className=\"group/row flex min-h-24 items-center\" style={{ paddingLeft: depth * 16 }}>\n <button\n type=\"button\"\n aria-expanded={open}\n aria-label={\n path\n ? open\n ? t(\"jsonView.collapsePath\", \"Collapse {path}\", { path })\n : t(\"jsonView.expandPath\", \"Expand {path}\", { path })\n : open\n ? t(\"jsonView.collapse\", \"Collapse\")\n : t(\"jsonView.expand\", \"Expand\")\n }\n onClick={() => setOpen(!open)}\n className=\"-ml-4 inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n <Icon icon={__icon_ArrowRight01Icon} size=\"xs\" className={cn(\"transition-transform duration-180\", open && \"rotate-90\")} />\n </button>\n <span>\n {keyLabel}\n <span className=\"text-fg-tertiary\">{o}</span>\n {!open && (\n <button type=\"button\" onClick={() => setOpen(true)} className=\"mx-4 cursor-pointer rounded-code px-4 text-fg-tertiary hover:bg-fill-2\">\n {Array.isArray(value)\n ? t(\"jsonView.items\", \"{count, plural, one {{n} item} other {{n} items}}\", { count: entries.length, n: String(entries.length) })\n : t(\"jsonView.keys\", \"{count, plural, one {{n} key} other {{n} keys}}\", { count: entries.length, n: String(entries.length) })}\n </button>\n )}\n {!open && (\n <span className=\"text-fg-tertiary\">\n {c}\n {comma}\n </span>\n )}\n </span>\n {path && <CopyPath path={path} />}\n </div>\n {open && (\n <>\n {entries.map(([k, v], i) => (\n <Node\n key={k}\n name={k}\n value={v}\n path={typeof k === \"number\" ? `${path}[${k}]` : path ? `${path}.${k}` : String(k)}\n depth={depth + 1}\n open={initialOpen}\n query={query}\n last={i === entries.length - 1}\n />\n ))}\n <div className=\"min-h-20 text-fg-tertiary\" style={{ paddingLeft: depth * 16 + 20 }}>\n {c}\n {comma}\n </div>\n </>\n )}\n </div>\n );\n}\n\nexport const JsonView = /* @__PURE__ */ forwardRef<HTMLDivElement, JsonViewProps>(function JsonView({ value, defaultDepth = 2, query, surface = \"well\", className }, ref) {\n const t = useUiText();\n return (\n <div\n ref={ref}\n tabIndex={0}\n role=\"region\"\n aria-label={t(\"jsonView.label\", \"JSON\")}\n className={cn(\n \"mono overflow-x-auto text-small focus-ring-inset leading-code text-fg scrollbar-quiet\",\n KAESO_JSON_VIEW_VARIANTS.surface[surface].classes,\n className,\n )}\n >\n <Node value={value as Json} path=\"\" depth={0} open={defaultDepth} query={query} last />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") JsonView.displayName = \"JsonView\";\n"],"mappings":"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"}
@@ -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 { i as t, n } from "./context-BELWW79w.js";
4
4
  import { Fragment as r, forwardRef as i, useSyncExternalStore as a } from "react";
5
5
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
@@ -129,4 +129,4 @@ process.env.NODE_ENV !== "production" && (g.displayName = "KbdSequence");
129
129
  //#endregion
130
130
  export { m as a, g as i, c as n, h as r, l as t };
131
131
 
132
- //# sourceMappingURL=kbd-9A9rX60U.js.map
132
+ //# sourceMappingURL=kbd-BF1vKXJf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kbd-9A9rX60U.js","names":["cn","useUiText","KAESO_KBD_VARIANTS","KAESO_KBD_DEFAULT_VARIANTS","isMac","subscribePlatform","useMac","useSyncExternalStore","modifiers","ctrl","t","option","keyLabel","englishText","m","key","mac","Kbd","props","label","children","tone","className","KbdSequence","steps","keys","Fragment","i","chord","k"],"sources":["../../src/components/kbd/kbd.tsx"],"sourcesContent":["import { forwardRef, Fragment, useSyncExternalStore, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport const KAESO_KBD_VARIANTS = {\n tone: {\n default: { classes: \"bg-fill-1 text-fg-secondary shadow-ring\" },\n onInk: { classes: \"bg-on-ink/15 text-on-ink/80 shadow-none\" },\n },\n} as const;\nexport const KAESO_KBD_DEFAULT_VARIANTS = { tone: \"default\" } as const;\n\nconst isMac = () => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent);\nconst subscribePlatform = () => () => undefined;\nconst useMac = () => useSyncExternalStore(subscribePlatform, isMac, () => false);\n\nfunction modifiers(t: UiText): Record<string, [mac: string, other: string, name: string]> {\n const ctrl = t(\"kbd.ctrl\", \"Ctrl\");\n const option = t(\"kbd.optionName\", \"Option\");\n return {\n mod: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n cmd: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n ctrl: [\"⌃\", ctrl, t(\"kbd.controlName\", \"Control\")],\n alt: [\"⌥\", \"Alt\", option],\n option: [\"⌥\", \"Alt\", option],\n shift: [\"⇧\", t(\"kbd.shift\", \"Shift\"), t(\"kbd.shiftName\", \"Shift\")],\n enter: [\"↵\", \"Enter\", t(\"kbd.enterName\", \"Enter\")],\n esc: [\"esc\", \"Esc\", t(\"kbd.escapeName\", \"Escape\")],\n backspace: [\"⌫\", t(\"kbd.backspace\", \"Backspace\"), t(\"kbd.backspaceName\", \"Backspace\")],\n up: [\"↑\", \"↑\", t(\"kbd.upName\", \"Up\")],\n down: [\"↓\", \"↓\", t(\"kbd.downName\", \"Down\")],\n left: [\"←\", \"←\", t(\"kbd.leftName\", \"Left\")],\n right: [\"→\", \"→\", t(\"kbd.rightName\", \"Right\")],\n tab: [\"⇥\", \"Tab\", t(\"kbd.tabName\", \"Tab\")],\n };\n}\n\nexport function keyLabel(key: string, t: UiText = englishText, mac: boolean = isMac()): { visual: string; spoken: string } {\n const m = modifiers(t)[key.toLowerCase()];\n if (!m) return { visual: key.length === 1 ? key.toUpperCase() : key, spoken: key };\n return { visual: mac ? m[0] : m[1], spoken: m[2] };\n}\n\nexport interface KbdProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const Kbd = /* @__PURE__ */ forwardRef<HTMLElement, KbdProps>(function Kbd({ children, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const mac = useMac();\n const label = typeof children === \"string\" ? keyLabel(children, t, mac) : null;\n return (\n <kbd\n ref={ref}\n className={cn(\n \"inline-flex h-20 min-w-20 shrink-0 items-center justify-center rounded-kbd px-5 font-sans text-micro font-medium tabular\",\n KAESO_KBD_VARIANTS.tone[tone].classes,\n className,\n )}\n {...(label && label.spoken !== label.visual ? { \"aria-label\": label.spoken, title: label.spoken } : {})}\n {...props}\n >\n {label ? label.visual : children}\n </kbd>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Kbd.displayName = \"Kbd\";\n\nexport interface KbdSequenceProps extends HTMLAttributes<HTMLSpanElement> {\n keys: string[][] | string[];\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const KbdSequence = /* @__PURE__ */ forwardRef<HTMLSpanElement, KbdSequenceProps>(function KbdSequence({ keys, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const steps: string[][] = keys.length > 0 && Array.isArray(keys[0]) ? (keys as string[][]) : [keys as string[]];\n return (\n <span ref={ref} className={cn(\"inline-flex items-center gap-4 align-middle\", className)} {...props}>\n {steps.map((chord, i) => (\n <Fragment key={i}>\n {i > 0 && <span className={cn(\"text-caption font-medium\", tone === \"onInk\" ? \"text-on-ink/70\" : \"text-fg-secondary\")}>{t(\"kbd.then\", \"then\")}</span>}\n <span className=\"inline-flex items-center gap-2\">\n {chord.map((k) => (\n <Kbd key={k} tone={tone}>\n {k}\n </Kbd>\n ))}\n </span>\n </Fragment>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") KbdSequence.displayName = \"KbdSequence\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"kbd-BF1vKXJf.js","names":["cn","useUiText","KAESO_KBD_VARIANTS","KAESO_KBD_DEFAULT_VARIANTS","isMac","subscribePlatform","useMac","useSyncExternalStore","modifiers","ctrl","t","option","keyLabel","englishText","m","key","mac","Kbd","props","label","children","tone","className","KbdSequence","steps","keys","Fragment","i","chord","k"],"sources":["../../src/components/kbd/kbd.tsx"],"sourcesContent":["import { forwardRef, Fragment, useSyncExternalStore, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport const KAESO_KBD_VARIANTS = {\n tone: {\n default: { classes: \"bg-fill-1 text-fg-secondary shadow-ring\" },\n onInk: { classes: \"bg-on-ink/15 text-on-ink/80 shadow-none\" },\n },\n} as const;\nexport const KAESO_KBD_DEFAULT_VARIANTS = { tone: \"default\" } as const;\n\nconst isMac = () => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent);\nconst subscribePlatform = () => () => undefined;\nconst useMac = () => useSyncExternalStore(subscribePlatform, isMac, () => false);\n\nfunction modifiers(t: UiText): Record<string, [mac: string, other: string, name: string]> {\n const ctrl = t(\"kbd.ctrl\", \"Ctrl\");\n const option = t(\"kbd.optionName\", \"Option\");\n return {\n mod: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n cmd: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n ctrl: [\"⌃\", ctrl, t(\"kbd.controlName\", \"Control\")],\n alt: [\"⌥\", \"Alt\", option],\n option: [\"⌥\", \"Alt\", option],\n shift: [\"⇧\", t(\"kbd.shift\", \"Shift\"), t(\"kbd.shiftName\", \"Shift\")],\n enter: [\"↵\", \"Enter\", t(\"kbd.enterName\", \"Enter\")],\n esc: [\"esc\", \"Esc\", t(\"kbd.escapeName\", \"Escape\")],\n backspace: [\"⌫\", t(\"kbd.backspace\", \"Backspace\"), t(\"kbd.backspaceName\", \"Backspace\")],\n up: [\"↑\", \"↑\", t(\"kbd.upName\", \"Up\")],\n down: [\"↓\", \"↓\", t(\"kbd.downName\", \"Down\")],\n left: [\"←\", \"←\", t(\"kbd.leftName\", \"Left\")],\n right: [\"→\", \"→\", t(\"kbd.rightName\", \"Right\")],\n tab: [\"⇥\", \"Tab\", t(\"kbd.tabName\", \"Tab\")],\n };\n}\n\nexport function keyLabel(key: string, t: UiText = englishText, mac: boolean = isMac()): { visual: string; spoken: string } {\n const m = modifiers(t)[key.toLowerCase()];\n if (!m) return { visual: key.length === 1 ? key.toUpperCase() : key, spoken: key };\n return { visual: mac ? m[0] : m[1], spoken: m[2] };\n}\n\nexport interface KbdProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const Kbd = /* @__PURE__ */ forwardRef<HTMLElement, KbdProps>(function Kbd({ children, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const mac = useMac();\n const label = typeof children === \"string\" ? keyLabel(children, t, mac) : null;\n return (\n <kbd\n ref={ref}\n className={cn(\n \"inline-flex h-20 min-w-20 shrink-0 items-center justify-center rounded-kbd px-5 font-sans text-micro font-medium tabular\",\n KAESO_KBD_VARIANTS.tone[tone].classes,\n className,\n )}\n {...(label && label.spoken !== label.visual ? { \"aria-label\": label.spoken, title: label.spoken } : {})}\n {...props}\n >\n {label ? label.visual : children}\n </kbd>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Kbd.displayName = \"Kbd\";\n\nexport interface KbdSequenceProps extends HTMLAttributes<HTMLSpanElement> {\n keys: string[][] | string[];\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const KbdSequence = /* @__PURE__ */ forwardRef<HTMLSpanElement, KbdSequenceProps>(function KbdSequence({ keys, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const steps: string[][] = keys.length > 0 && Array.isArray(keys[0]) ? (keys as string[][]) : [keys as string[]];\n return (\n <span ref={ref} className={cn(\"inline-flex items-center gap-4 align-middle\", className)} {...props}>\n {steps.map((chord, i) => (\n <Fragment key={i}>\n {i > 0 && <span className={cn(\"text-caption font-medium\", tone === \"onInk\" ? \"text-on-ink/70\" : \"text-fg-secondary\")}>{t(\"kbd.then\", \"then\")}</span>}\n <span className=\"inline-flex items-center gap-2\">\n {chord.map((k) => (\n <Kbd key={k} tone={tone}>\n {k}\n </Kbd>\n ))}\n </span>\n </Fragment>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") KbdSequence.displayName = \"KbdSequence\";\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 { n as t, r as n } from "./link-provider-BsUxhZKG.js";
4
4
  import { i as r } from "./context-BELWW79w.js";
5
- import { t as i } from "./icon-D5uD_mnL.js";
5
+ import { t as i } from "./icon-D7ja-_Yk.js";
6
6
  import { forwardRef as a } from "react";
7
7
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
8
  import { ArrowUpRight01Icon as c } from "@hugeicons/core-free-icons";
@@ -51,4 +51,4 @@ process.env.NODE_ENV !== "production" && (d.displayName = "Link");
51
51
  //#endregion
52
52
  export { l as n, d as r, u as t };
53
53
 
54
- //# sourceMappingURL=link-CtII7u3h.js.map
54
+ //# sourceMappingURL=link-B2I55xg9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link-CtII7u3h.js","names":["__icon_ArrowUpRight01Icon","cn","isExternalHref","useLinkComponent","useUiText","Icon","KAESO_LINK_VARIANTS","KAESO_LINK_DEFAULT_VARIANTS","Link","props","LinkComp","t","isExternal","external","href","variant","className","children","ArrowUpRight01Icon"],"sources":["../../src/components/link/link.tsx"],"sourcesContent":["import { forwardRef, type AnchorHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { isExternalHref, useLinkComponent } from \"../../utils/link-provider.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { ArrowUpRight01Icon as __icon_ArrowUpRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_LINK_VARIANTS = {\n variant: {\n inline: {\n classes: \"text-inherit underline decoration-line-strong decoration-1 underline-offset-3 hover:decoration-current\",\n },\n quiet: {\n classes: \"text-fg-secondary no-underline hover:text-fg\",\n },\n standalone: {\n classes: \"font-medium text-fg no-underline hover:underline hover:decoration-line-strong hover:underline-offset-3\",\n },\n heading: {\n classes: \"group/heading text-inherit no-underline\",\n },\n card: {\n classes: \"mx-0 flex flex-col gap-4 rounded-well bg-fill-1 px-16 py-12 text-fg no-underline hover:bg-fill-2\",\n },\n },\n} as const;\nexport const KAESO_LINK_DEFAULT_VARIANTS = { variant: \"inline\" } as const;\n\nexport interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n href: string;\n variant?: keyof typeof KAESO_LINK_VARIANTS.variant | undefined;\n external?: boolean | undefined;\n children: ReactNode;\n}\n\nexport const Link = /* @__PURE__ */ forwardRef<HTMLAnchorElement, LinkProps>(function Link({ href, variant = \"inline\", external, className, children, ...props }, ref) {\n const LinkComp = useLinkComponent();\n const t = useUiText();\n const isExternal = external ?? isExternalHref(href);\n return (\n <LinkComp\n ref={ref}\n href={href}\n className={cn(\n \"relative -mx-2 box-decoration-clone rounded-code px-2 transition-control focus-ring tap-target\",\n KAESO_LINK_VARIANTS.variant[variant].classes,\n className,\n )}\n {...(isExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n {...props}\n >\n {children}\n {variant === \"heading\" && (\n <span\n aria-hidden=\"true\"\n className=\"ml-8 inline-block text-fg-tertiary opacity-0 transition-control group-hover/heading:opacity-100 group-focus-visible/heading:opacity-100\"\n >\n #\n </span>\n )}\n {isExternal && (\n <span aria-hidden=\"true\" className=\"whitespace-nowrap\">\n {\"\\u2060\"}\n <Icon icon={__icon_ArrowUpRight01Icon} size=\"xs\" className=\"ml-2 inline-block align-middle\" />\n </span>\n )}\n {isExternal && <span className=\"sr-only\">{t(\"link.opensInNewTab\", \" (opens in a new tab)\")}</span>}\n </LinkComp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Link.displayName = \"Link\";\n"],"mappings":";;;;;;;;;AAOA,IAAaM,IAAsB,EACjC,SAAS;CACP,QAAQ,EACN,SAAS,yGACX;CACA,OAAO,EACL,SAAS,+CACX;CACA,YAAY,EACV,SAAS,yGACX;CACA,SAAS,EACP,SAAS,0CACX;CACA,MAAM,EACJ,SAAS,mGACX;AACF,EACF,GACaC,IAA8B,EAAE,SAAS,SAAS,GASlDC,IAAuB,kBAAyC,SAAc,EAAE,SAAM,aAAU,UAAU,aAAU,cAAW,aAAU,GAAGC,KAAS,GAAK;CACrK,IAAMC,IAAWP,EAAiB,GAC5BQ,IAAIP,EAAU,GACdQ,IAAaC,KAAYX,EAAeY,CAAI;CAClD,OACE,kBAACJ,GAAD;EACO;EACC;EACN,WAAWT,EACT,kGACAK,EAAoB,QAAQS,EAAQ,CAAC,SACrCC,CACF;EACA,GAAKJ,IAAa;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACtE,GAAIH;EATN,UAAA;GAWGQ;GACAF,MAAY,aACX,kBAAC,QAAD;IACE,eAAY;IACZ,WAAU;IACX,UAAA;GAEK,CAAA;GAEPH,KACC,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;IAAnC,UAAA,CACG,KACD,kBAACP,GAAD;KAAM,MAAML;KAA2B,MAAK;KAAK,WAAU;IAAkC,CAAA,CACzF;;GAEPY,KAAc,kBAAC,QAAD;IAAM,WAAU;IAAW,UAAAD,EAAE,sBAAsB,uBAAuB;GAAQ,CAAA;EACzF;;AAEd,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
1
+ {"version":3,"file":"link-B2I55xg9.js","names":["__icon_ArrowUpRight01Icon","cn","isExternalHref","useLinkComponent","useUiText","Icon","KAESO_LINK_VARIANTS","KAESO_LINK_DEFAULT_VARIANTS","Link","props","LinkComp","t","isExternal","external","href","variant","className","children","ArrowUpRight01Icon"],"sources":["../../src/components/link/link.tsx"],"sourcesContent":["import { forwardRef, type AnchorHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { isExternalHref, useLinkComponent } from \"../../utils/link-provider.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { ArrowUpRight01Icon as __icon_ArrowUpRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_LINK_VARIANTS = {\n variant: {\n inline: {\n classes: \"text-inherit underline decoration-line-strong decoration-1 underline-offset-3 hover:decoration-current\",\n },\n quiet: {\n classes: \"text-fg-secondary no-underline hover:text-fg\",\n },\n standalone: {\n classes: \"font-medium text-fg no-underline hover:underline hover:decoration-line-strong hover:underline-offset-3\",\n },\n heading: {\n classes: \"group/heading text-inherit no-underline\",\n },\n card: {\n classes: \"mx-0 flex flex-col gap-4 rounded-well bg-fill-1 px-16 py-12 text-fg no-underline hover:bg-fill-2\",\n },\n },\n} as const;\nexport const KAESO_LINK_DEFAULT_VARIANTS = { variant: \"inline\" } as const;\n\nexport interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n href: string;\n variant?: keyof typeof KAESO_LINK_VARIANTS.variant | undefined;\n external?: boolean | undefined;\n children: ReactNode;\n}\n\nexport const Link = /* @__PURE__ */ forwardRef<HTMLAnchorElement, LinkProps>(function Link({ href, variant = \"inline\", external, className, children, ...props }, ref) {\n const LinkComp = useLinkComponent();\n const t = useUiText();\n const isExternal = external ?? isExternalHref(href);\n return (\n <LinkComp\n ref={ref}\n href={href}\n className={cn(\n \"relative -mx-2 box-decoration-clone rounded-code px-2 transition-control focus-ring tap-target\",\n KAESO_LINK_VARIANTS.variant[variant].classes,\n className,\n )}\n {...(isExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n {...props}\n >\n {children}\n {variant === \"heading\" && (\n <span\n aria-hidden=\"true\"\n className=\"ml-8 inline-block text-fg-tertiary opacity-0 transition-control group-hover/heading:opacity-100 group-focus-visible/heading:opacity-100\"\n >\n #\n </span>\n )}\n {isExternal && (\n <span aria-hidden=\"true\" className=\"whitespace-nowrap\">\n {\"\\u2060\"}\n <Icon icon={__icon_ArrowUpRight01Icon} size=\"xs\" className=\"ml-2 inline-block align-middle\" />\n </span>\n )}\n {isExternal && <span className=\"sr-only\">{t(\"link.opensInNewTab\", \" (opens in a new tab)\")}</span>}\n </LinkComp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Link.displayName = \"Link\";\n"],"mappings":";;;;;;;;;AAOA,IAAaM,IAAsB,EACjC,SAAS;CACP,QAAQ,EACN,SAAS,yGACX;CACA,OAAO,EACL,SAAS,+CACX;CACA,YAAY,EACV,SAAS,yGACX;CACA,SAAS,EACP,SAAS,0CACX;CACA,MAAM,EACJ,SAAS,mGACX;AACF,EACF,GACaC,IAA8B,EAAE,SAAS,SAAS,GASlDC,IAAuB,kBAAyC,SAAc,EAAE,SAAM,aAAU,UAAU,aAAU,cAAW,aAAU,GAAGC,KAAS,GAAK;CACrK,IAAMC,IAAWP,EAAiB,GAC5BQ,IAAIP,EAAU,GACdQ,IAAaC,KAAYX,EAAeY,CAAI;CAClD,OACE,kBAACJ,GAAD;EACO;EACC;EACN,WAAWT,EACT,kGACAK,EAAoB,QAAQS,EAAQ,CAAC,SACrCC,CACF;EACA,GAAKJ,IAAa;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACtE,GAAIH;EATN,UAAA;GAWGQ;GACAF,MAAY,aACX,kBAAC,QAAD;IACE,eAAY;IACZ,WAAU;IACX,UAAA;GAEK,CAAA;GAEPH,KACC,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;IAAnC,UAAA,CACG,KACD,kBAACP,GAAD;KAAM,MAAML;KAA2B,MAAK;KAAK,WAAU;IAAkC,CAAA,CACzF;;GAEPY,KAAc,kBAAC,QAAD;IAAM,WAAU;IAAW,UAAAD,EAAE,sBAAsB,uBAAuB;GAAQ,CAAA;EACzF;;AAEd,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
@@ -1,21 +1,21 @@
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 { r as t } from "./portal-context-BBbzDKmY.js";
4
4
  import { i as n, r } from "./inset-BnBj8NJV.js";
5
5
  import { i } from "./context-BELWW79w.js";
6
- import { t as a } from "./icon-D5uD_mnL.js";
7
- import { s as o, u as s } from "./tooltip-CRApbLF6.js";
8
- import { r as c } from "./text-hFc6TDp9.js";
9
- import { t as l } from "./icon-button-C7Du4pvb.js";
6
+ import { t as a } from "./icon-D7ja-_Yk.js";
7
+ import { s as o, u as s } from "./tooltip-BMQ9BtPp.js";
8
+ import { r as c } from "./text-DCGGNqTM.js";
9
+ import { t as l } from "./icon-button-CPYR21Sz.js";
10
10
  import { n as u } from "./use-layout-width-CbSDbRb0.js";
11
- import { r as d } from "./skeleton-Cu74kGJA.js";
11
+ import { r as d } from "./skeleton-Dcz57Zyp.js";
12
12
  import { t as f } from "./scroll-parent-WXvzQcUo.js";
13
13
  import { forwardRef as p, useCallback as m, useEffect as h, useLayoutEffect as g, useMemo as _, useRef as v, useState as y } from "react";
14
14
  import { jsx as b, jsxs as x } from "react/jsx-runtime";
15
15
  import { Add01Icon as S, Cancel01Icon as C } from "@hugeicons/core-free-icons";
16
16
  import { createPortal as w } from "react-dom";
17
17
  //#region src/components/list/row-checkbox.tsx
18
- var T = /* @__PURE__ */ o(() => import("./checkbox-C_DrNA2N.js").then((e) => e.o), { base: () => import.meta.url });
18
+ var T = /* @__PURE__ */ o(() => import("./checkbox-CDfC6E-M.js").then((e) => e.o), { base: () => import.meta.url });
19
19
  function E({ checked: t, onToggle: n, "aria-label": r }) {
20
20
  let [i, a] = s(T, !0), [o, c] = y(!1), [l, u] = y(!1);
21
21
  return h(() => {
@@ -489,4 +489,4 @@ process.env.NODE_ENV !== "production" && (L.displayName = "SelectionAction");
489
489
  //#endregion
490
490
  export { P as a, N as i, O as n, L as o, D as r, I as s, F as t };
491
491
 
492
- //# sourceMappingURL=list-CMXBTVkI.js.map
492
+ //# sourceMappingURL=list-CkOozrVY.js.map