@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
@@ -0,0 +1,25 @@
1
+ import { type ReactNode } from "react";
2
+ export declare const KAESO_FIGURE_VARIANTS: {
3
+ readonly surface: {
4
+ readonly well: {
5
+ readonly classes: "rounded-well bg-fill-1";
6
+ readonly description: "A well like a code block's: radius 14, fill, no ring (default)";
7
+ };
8
+ readonly plain: {
9
+ readonly classes: "";
10
+ readonly description: "No surface, for a figure that brings its own";
11
+ };
12
+ };
13
+ };
14
+ export declare const KAESO_FIGURE_DEFAULT_VARIANTS: {
15
+ readonly surface: "well";
16
+ };
17
+ export interface FigureProps {
18
+ children: ReactNode;
19
+ label: string;
20
+ caption?: ReactNode | undefined;
21
+ surface?: keyof typeof KAESO_FIGURE_VARIANTS.surface | undefined;
22
+ focus?: number | undefined;
23
+ className?: string | undefined;
24
+ }
25
+ export declare const Figure: import("react").ForwardRefExoticComponent<FigureProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1 @@
1
+ export * from "./figure.js";
@@ -1,6 +1,8 @@
1
1
  export declare const docs: {
2
2
  Table: {
3
3
  description: string;
4
- props: {};
4
+ props: {
5
+ density: string;
6
+ };
5
7
  };
6
8
  };
@@ -11,20 +11,37 @@ export declare const KAESO_TABLE_VARIANTS: {
11
11
  readonly description: "Numbers";
12
12
  };
13
13
  };
14
+ readonly density: {
15
+ readonly default: {
16
+ readonly classes: "px-12";
17
+ readonly description: "12px between columns (default)";
18
+ };
19
+ readonly compact: {
20
+ readonly classes: "px-8";
21
+ readonly description: "8px between columns, for reference tables of five or more columns";
22
+ };
23
+ };
14
24
  };
15
25
  export declare const KAESO_TABLE_DEFAULT_VARIANTS: {
16
26
  readonly align: "start";
27
+ readonly density: "default";
17
28
  };
29
+ type Density = keyof typeof KAESO_TABLE_VARIANTS.density;
30
+ export interface TableProps extends HTMLAttributes<HTMLTableElement> {
31
+ density?: Density | undefined;
32
+ }
18
33
  export interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, "align"> {
19
34
  align?: "start" | "end" | undefined;
20
35
  tone?: StatusTone | undefined;
21
36
  }
22
- export declare const Table: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>> & {
37
+ export declare const Table: import("react").ForwardRefExoticComponent<TableProps & import("react").RefAttributes<HTMLTableElement>> & {
23
38
  Head: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & import("react").RefAttributes<HTMLTableSectionElement>>;
24
39
  Body: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & import("react").RefAttributes<HTMLTableSectionElement>>;
25
40
  Row: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLTableRowElement> & import("react").RefAttributes<HTMLTableRowElement>>;
26
41
  HeaderCell: import("react").ForwardRefExoticComponent<Omit<ThHTMLAttributes<HTMLTableCellElement>, "align"> & {
27
42
  align?: "start" | "end" | undefined;
43
+ wrap?: boolean | undefined;
28
44
  } & import("react").RefAttributes<HTMLTableCellElement>>;
29
45
  Cell: import("react").ForwardRefExoticComponent<TableCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
30
46
  };
47
+ export {};
@@ -43,6 +43,7 @@ export * from "./components/app-frame/index.js";
43
43
  export * from "./components/theme-menu/index.js";
44
44
  export * from "./components/theme-select/index.js";
45
45
  export * from "./components/theme-image/index.js";
46
+ export * from "./components/figure/index.js";
46
47
  export * from "./components/calendar/index.js";
47
48
  export * from "./components/date-picker/index.js";
48
49
  export * from "./components/filter-chip/index.js";
@@ -217,6 +217,9 @@ export declare function kaesoMergeConfig(): {
217
217
  leading: {
218
218
  leading: (string | ((value: string) => boolean))[];
219
219
  }[];
220
+ indent: {
221
+ indent: ((value: string) => boolean)[];
222
+ }[];
220
223
  "text-alignment": {
221
224
  text: string[];
222
225
  }[];
@@ -224,6 +227,7 @@ export declare function kaesoMergeConfig(): {
224
227
  text: (() => boolean)[];
225
228
  }[];
226
229
  "text-decoration": string[];
230
+ "text-transform": string[];
227
231
  "text-decoration-thickness": {
228
232
  decoration: (string | ((value: string) => boolean))[];
229
233
  }[];
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./chunks/cn-Isw2DnQX.js";
2
+ import { t as e } from "./chunks/cn-Dj6sRgkF.js";
3
3
  import { t } from "./chunks/utils-CdH72WEp.js";
4
4
  import { i as n, n as r, r as i, t as a } from "./chunks/dev-CR1p7gCm.js";
5
5
  import { n as o, r as s, t as c } from "./chunks/link-provider-BsUxhZKG.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logicplanes/kaeso-ui",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Kaeso's UI library: React components on Base UI, Tailwind CSS v4 and the Kaeso tokens.",
5
5
  "license": "MIT",
6
6
  "author": "Devin Oldenburg",
@@ -102,7 +102,7 @@
102
102
  "shiki": "4.5.0",
103
103
  "tailwind-merge": "3.7.0",
104
104
  "uqr": "0.1.3",
105
- "@logicplanes/kaeso-tokens": "0.4.1"
105
+ "@logicplanes/kaeso-tokens": "0.4.2"
106
106
  },
107
107
  "devDependencies": {
108
108
  "@hugeicons/core-free-icons": "4.3.5",
@@ -124,7 +124,7 @@
124
124
  "@vitejs/plugin-react": "6.1.2",
125
125
  "@vitest/coverage-v8": "5.0.5",
126
126
  "axe-core": "4.14.0",
127
- "happy-dom": "21.0.3",
127
+ "happy-dom": "21.0.4",
128
128
  "oxlint": "1.88.0",
129
129
  "react": "19.3.1",
130
130
  "react-docgen-typescript": "2.4.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"cn-Isw2DnQX.js","names":["kaesoMergeConfig","validators","arbitrary","isArbitraryVariable","isArbitraryValue","spacing","isNumber","inset","isFraction","margin","sizing","overflow","span","isInteger","lineOrPosition","tracks","rounded","width","isArbitraryVariableLength","isArbitraryLength","color","isAny","isArbitraryVariableWeight","isArbitraryWeight","isArbitraryVariableFamilyName","isArbitraryFamilyName","isAnyNonArbitrary","isArbitraryNumber","isArbitraryVariableShadow","isArbitraryShadow","merge","cn","inputs","createTailwindMerge","clsx"],"sources":["../../src/utils/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { createTailwindMerge, validators } from \"tailwind-merge\";\n\nexport function kaesoMergeConfig() {\n const {\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryShadow,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableLength,\n isArbitraryVariableShadow,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNumber,\n } = validators;\n const arbitrary = [isArbitraryVariable, isArbitraryValue];\n const spacing = [...arbitrary, isNumber];\n const inset = [isFraction, \"full\", \"auto\", ...spacing];\n const margin = [\"auto\", ...spacing];\n const sizing = [isFraction, \"auto\", \"full\", \"dvw\", \"dvh\", \"lvw\", \"lvh\", \"svw\", \"svh\", \"min\", \"max\", \"fit\", ...spacing];\n const overflow = [\"auto\", \"hidden\", \"clip\", \"visible\", \"scroll\"];\n const span = [\"auto\", { span: [\"full\", isInteger, ...arbitrary] }, isInteger, ...arbitrary];\n const lineOrPosition = [isInteger, \"auto\", ...arbitrary];\n const tracks = [isInteger, \"none\", \"subgrid\", ...arbitrary];\n const rounded = [\"\", \"none\", \"full\", ...[\"pill\",\"panel\",\"menu\",\"item\",\"popover\",\"dialog\",\"sheet\",\"group\",\"well\",\"tooltip\",\"palette\",\"palette-item\",\"checkbox\",\"org\",\"kbd\",\"code\",\"bar\",\"cell\",\"avatar\",\"field\",\"textarea\",\"cell-lg\",\"tooltip-lg\",\"frame\",\"toast\"], ...arbitrary];\n const width = [\"\", isNumber, isArbitraryVariableLength, isArbitraryLength];\n const color = [isAny];\n return {\n cacheSize: 500,\n theme: {},\n classGroups: {\n aspect: [{ aspect: [\"auto\", \"square\", isFraction, ...arbitrary] }],\n container: [\"container\"],\n \"container-type\": [{ \"@container\": [\"\", \"normal\", \"size\", ...arbitrary] }],\n \"box-decoration\": [{ \"box-decoration\": [\"slice\", \"clone\"] }],\n box: [{ box: [\"border\", \"content\"] }],\n display: [\n \"block\",\n \"inline-block\",\n \"inline\",\n \"flex\",\n \"inline-flex\",\n \"table\",\n \"inline-table\",\n \"table-caption\",\n \"table-cell\",\n \"table-column\",\n \"table-column-group\",\n \"table-footer-group\",\n \"table-header-group\",\n \"table-row-group\",\n \"table-row\",\n \"flow-root\",\n \"grid\",\n \"inline-grid\",\n \"contents\",\n \"list-item\",\n \"hidden\",\n ],\n sr: [\"sr-only\", \"not-sr-only\"],\n isolation: [\"isolate\", \"isolation-auto\"],\n \"object-fit\": [{ object: [\"contain\", \"cover\", \"fill\", \"none\", \"scale-down\"] }],\n overflow: [{ overflow }],\n \"overflow-x\": [{ \"overflow-x\": overflow }],\n \"overflow-y\": [{ \"overflow-y\": overflow }],\n overscroll: [{ overscroll: [\"auto\", \"contain\", \"none\"] }],\n position: [\"static\", \"fixed\", \"absolute\", \"relative\", \"sticky\"],\n inset: [{ inset }],\n \"inset-x\": [{ \"inset-x\": inset }],\n \"inset-y\": [{ \"inset-y\": inset }],\n top: [{ top: inset }],\n right: [{ right: inset }],\n bottom: [{ bottom: inset }],\n left: [{ left: inset }],\n start: [{ start: inset }],\n visibility: [\"visible\", \"invisible\", \"collapse\"],\n z: [{ z: [isInteger, \"auto\", ...arbitrary] }],\n basis: [{ basis: [isFraction, \"full\", \"auto\", ...spacing] }],\n \"flex-direction\": [{ flex: [\"row\", \"row-reverse\", \"col\", \"col-reverse\"] }],\n \"flex-wrap\": [{ flex: [\"nowrap\", \"wrap\", \"wrap-reverse\"] }],\n flex: [{ flex: [isNumber, isFraction, \"auto\", \"initial\", \"none\", isArbitraryValue] }],\n grow: [{ grow: [\"\", isNumber, ...arbitrary] }],\n shrink: [{ shrink: [\"\", isNumber, ...arbitrary] }],\n order: [{ order: [isInteger, \"first\", \"last\", \"none\", ...arbitrary] }],\n \"grid-cols\": [{ \"grid-cols\": tracks }],\n \"col-start-end\": [{ col: span }],\n \"col-start\": [{ \"col-start\": lineOrPosition }],\n \"grid-rows\": [{ \"grid-rows\": tracks }],\n \"row-start-end\": [{ row: span }],\n \"row-start\": [{ \"row-start\": lineOrPosition }],\n gap: [{ gap: spacing }],\n \"gap-x\": [{ \"gap-x\": spacing }],\n \"gap-y\": [{ \"gap-y\": spacing }],\n \"justify-content\": [{ justify: [\"start\", \"end\", \"center\", \"between\", \"around\", \"evenly\", \"stretch\", \"baseline\", \"center-safe\", \"end-safe\", \"normal\"] }],\n \"justify-items\": [{ \"justify-items\": [\"start\", \"end\", \"center\", \"stretch\", \"center-safe\", \"end-safe\", \"normal\"] }],\n \"align-content\": [{ content: [\"normal\", \"start\", \"end\", \"center\", \"between\", \"around\", \"evenly\", \"stretch\", \"baseline\", \"center-safe\", \"end-safe\"] }],\n \"align-items\": [{ items: [\"start\", \"end\", \"center\", \"stretch\", \"center-safe\", \"end-safe\", { baseline: [\"\", \"last\"] }] }],\n \"align-self\": [{ self: [\"auto\", \"start\", \"end\", \"center\", \"stretch\", \"center-safe\", \"end-safe\", { baseline: [\"\", \"last\"] }] }],\n p: [{ p: spacing }],\n px: [{ px: spacing }],\n py: [{ py: spacing }],\n pt: [{ pt: spacing }],\n pr: [{ pr: spacing }],\n pb: [{ pb: spacing }],\n pl: [{ pl: spacing }],\n m: [{ m: margin }],\n mx: [{ mx: margin }],\n my: [{ my: margin }],\n ms: [{ ms: margin }],\n mt: [{ mt: margin }],\n mr: [{ mr: margin }],\n mb: [{ mb: margin }],\n ml: [{ ml: margin }],\n size: [{ size: sizing }],\n w: [{ w: [\"screen\", \"anchor\", ...sizing] }],\n \"min-w\": [{ \"min-w\": [\"screen\", \"none\", \"anchor\", ...sizing] }],\n \"max-w\": [{ \"max-w\": [\"screen\", \"none\", \"prose\", ...sizing] }],\n h: [{ h: [\"screen\", \"lh\", ...sizing] }],\n \"min-h\": [{ \"min-h\": [\"screen\", \"lh\", \"none\", ...sizing] }],\n \"max-h\": [{ \"max-h\": [\"screen\", \"lh\", \"none\", ...sizing] }],\n \"font-size\": [{ text: [...[\"micro\",\"caption\",\"small\",\"body\",\"body-lg\",\"title-sm\",\"title\",\"title-lg\",\"display\",\"metric\"], isArbitraryVariableLength, isArbitraryLength] }],\n \"font-style\": [\"italic\", \"not-italic\"],\n \"font-weight\": [{ font: [\"regular\", \"medium\", \"semibold\", isArbitraryVariableWeight, isArbitraryWeight] }],\n \"font-family\": [{ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, isAnyNonArbitrary] }],\n \"fvn-spacing\": [\"proportional-nums\", \"tabular-nums\"],\n \"line-clamp\": [{ \"line-clamp\": [isNumber, \"none\", isArbitraryVariable, isArbitraryNumber] }],\n leading: [{ leading: [\"none\", ...spacing] }],\n \"text-alignment\": [{ text: [\"left\", \"center\", \"right\", \"justify\", \"start\", \"end\"] }],\n \"text-color\": [{ text: color }],\n \"text-decoration\": [\"underline\", \"overline\", \"line-through\", \"no-underline\"],\n \"text-decoration-thickness\": [{ decoration: [isNumber, \"from-font\", \"auto\", isArbitraryVariable, isArbitraryLength] }],\n \"text-decoration-color\": [{ decoration: color }],\n \"underline-offset\": [{ \"underline-offset\": [isNumber, \"auto\", ...arbitrary] }],\n \"text-overflow\": [\"truncate\", \"text-ellipsis\", \"text-clip\"],\n \"text-wrap\": [{ text: [\"wrap\", \"nowrap\", \"balance\", \"pretty\"] }],\n \"vertical-align\": [{ align: [\"baseline\", \"top\", \"middle\", \"bottom\", \"text-top\", \"text-bottom\", \"sub\", \"super\", ...arbitrary] }],\n whitespace: [{ whitespace: [\"normal\", \"nowrap\", \"pre\", \"pre-line\", \"pre-wrap\", \"break-spaces\"] }],\n break: [{ break: [\"normal\", \"words\", \"all\", \"keep\"] }],\n wrap: [{ wrap: [\"break-word\", \"anywhere\", \"normal\"] }],\n \"bg-color\": [{ bg: color }],\n rounded: [{ rounded }],\n \"rounded-r\": [{ \"rounded-r\": rounded }],\n \"rounded-l\": [{ \"rounded-l\": rounded }],\n \"outline-style\": [{ outline: [\"solid\", \"dashed\", \"dotted\", \"double\", \"none\", \"hidden\"] }],\n \"outline-offset\": [{ \"outline-offset\": [isNumber, ...arbitrary] }],\n \"outline-w\": [{ outline: width }],\n \"outline-color\": [{ outline: color }],\n shadow: [{ shadow: [\"\", \"inner\", \"none\", ...[\"ring\",\"control\",\"control-hover\",\"control-on-fill\",\"field\",\"field-hover\",\"selector\",\"selector-hover\",\"frame\",\"xs\",\"raised\",\"dialog\",\"panel\",\"segment\",\"toast\",\"thumb\"], isArbitraryVariableShadow, isArbitraryShadow] }],\n \"ring-w\": [{ ring: width }],\n \"ring-color\": [{ ring: color }],\n opacity: [{ opacity: [isNumber, ...arbitrary] }],\n filter: [{ filter: [\"\", \"none\", ...arbitrary] }],\n \"border-collapse\": [{ border: [\"collapse\", \"separate\"] }],\n \"table-layout\": [{ table: [\"auto\", \"fixed\"] }],\n transition: [{ transition: [\"\", \"all\", \"colors\", \"opacity\", \"shadow\", \"transform\", \"none\", ...arbitrary] }],\n duration: [{ duration: [isNumber, \"initial\", ...arbitrary] }],\n ease: [{ ease: [\"linear\", \"initial\", ...[\"standard\",\"overlay\",\"exit\",\"pulse\"], ...arbitrary] }],\n animate: [{ animate: [\"none\", ...arbitrary] }],\n rotate: [{ rotate: [\"none\", isNumber, ...arbitrary] }],\n \"translate-x\": [{ \"translate-x\": [isFraction, \"full\", ...spacing] }],\n \"caret-color\": [{ caret: color }],\n cursor: [\n {\n cursor: [\n \"auto\",\n \"default\",\n \"pointer\",\n \"wait\",\n \"text\",\n \"move\",\n \"help\",\n \"not-allowed\",\n \"none\",\n \"context-menu\",\n \"progress\",\n \"cell\",\n \"crosshair\",\n \"vertical-text\",\n \"alias\",\n \"copy\",\n \"no-drop\",\n \"grab\",\n \"grabbing\",\n \"all-scroll\",\n \"col-resize\",\n \"row-resize\",\n \"n-resize\",\n \"e-resize\",\n \"s-resize\",\n \"w-resize\",\n \"ne-resize\",\n \"nw-resize\",\n \"se-resize\",\n \"sw-resize\",\n \"ew-resize\",\n \"ns-resize\",\n \"nesw-resize\",\n \"nwse-resize\",\n \"zoom-in\",\n \"zoom-out\",\n ...arbitrary,\n ],\n },\n ],\n \"pointer-events\": [{ \"pointer-events\": [\"auto\", \"none\"] }],\n resize: [{ resize: [\"none\", \"\", \"y\", \"x\"] }],\n \"scrollbar-w\": [{ scrollbar: [\"auto\", \"thin\", \"none\"] }],\n \"scroll-mt\": [{ \"scroll-mt\": spacing }],\n \"snap-align\": [{ snap: [\"start\", \"end\", \"center\", \"align-none\"] }],\n \"snap-stop\": [{ snap: [\"normal\", \"always\"] }],\n touch: [{ touch: [\"auto\", \"none\", \"manipulation\"] }],\n select: [{ select: [\"none\", \"text\", \"all\", \"auto\"] }],\n material: [\n \"material-primary\",\n \"material-secondary\",\n \"material-ghost\",\n \"material-soft\",\n \"material-danger\",\n \"material-danger-secondary\",\n \"material-field\",\n \"material-selector\",\n ],\n focus: [\"focus-ring\", \"focus-ring-inset\"],\n motion: [\"popup-motion\", \"dialog-motion\", \"sheet-motion\", \"backdrop-motion\", \"indicator-motion\"],\n },\n conflictingClassGroups: {\n overflow: [\"overflow-x\", \"overflow-y\"],\n inset: [\"inset-x\", \"inset-y\", \"start\", \"top\", \"right\", \"bottom\", \"left\"],\n \"inset-x\": [\"start\", \"right\", \"left\"],\n \"inset-y\": [\"top\", \"bottom\"],\n flex: [\"basis\", \"grow\", \"shrink\"],\n gap: [\"gap-x\", \"gap-y\"],\n p: [\"px\", \"py\", \"pt\", \"pr\", \"pb\", \"pl\"],\n px: [\"pr\", \"pl\"],\n py: [\"pt\", \"pb\"],\n m: [\"mx\", \"my\", \"ms\", \"mt\", \"mr\", \"mb\", \"ml\"],\n mx: [\"ms\", \"mr\", \"ml\"],\n my: [\"mt\", \"mb\"],\n size: [\"w\", \"h\"],\n \"font-size\": [\"leading\"],\n \"line-clamp\": [\"display\", \"overflow\"],\n rounded: [\"rounded-r\", \"rounded-l\"],\n },\n conflictingClassGroupModifiers: { \"font-size\": [\"leading\"] },\n postfixLookupClassGroups: [\"container-type\"],\n orderSensitiveModifiers: [\n \"*\",\n \"**\",\n \"after\",\n \"backdrop\",\n \"before\",\n \"details-content\",\n \"file\",\n \"first-letter\",\n \"first-line\",\n \"marker\",\n \"placeholder\",\n \"selection\",\n ],\n };\n}\n\nlet merge: ReturnType<typeof createTailwindMerge> | undefined;\n\nexport function cn(...inputs: ClassValue[]): string {\n merge ??= createTailwindMerge(kaesoMergeConfig);\n return merge(clsx(inputs));\n}\n"],"mappings":";;;AAGA,SAAgBA,IAAmB;CACjC,IAAM,EACJ,UACA,sBACA,0BACA,sBACA,sBACA,sBACA,qBACA,wBACA,kCACA,8BACA,8BACA,8BACA,sBACA,eACA,cACA,gBACEC,GACEC,IAAY,CAACC,GAAqBC,CAAgB,GAClDC,IAAU,CAAC,GAAGH,GAAWI,CAAQ,GACjCC,IAAQ;EAACC;EAAY;EAAQ;EAAQ,GAAGH;CAAO,GAC/CI,IAAS,CAAC,QAAQ,GAAGJ,CAAO,GAC5BK,IAAS;EAACF;EAAY;EAAQ;EAAQ;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO,GAAGH;CAAO,GAC/GM,IAAW;EAAC;EAAQ;EAAU;EAAQ;EAAW;CAAQ,GACzDC,IAAO;EAAC;EAAQ,EAAE,MAAM;GAAC;GAAQC;GAAW,GAAGX;EAAS,EAAE;EAAGW;EAAW,GAAGX;CAAS,GACpFY,IAAiB;EAACD;EAAW;EAAQ,GAAGX;CAAS,GACjDa,IAAS;EAACF;EAAW;EAAQ;EAAW,GAAGX;CAAS,GACpDc,IAAU;EAAC;EAAI;EAAQ;EAAY;EAAO;EAAQ;EAAO;EAAO;EAAU;EAAS;EAAQ;EAAQ;EAAO;EAAU;EAAU;EAAe;EAAW;EAAM;EAAM;EAAO;EAAM;EAAO;EAAS;EAAQ;EAAW;EAAU;EAAa;EAAQ;EAAU,GAAGd;CAAS,GACzQe,IAAQ;EAAC;EAAIX;EAAUY;EAA2BC;CAAiB,GACnEC,IAAQ,CAACC,CAAK;CACpB,OAAO;EACL,WAAW;EACX,OAAO,CAAC;EACR,aAAa;GACX,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAQ;IAAUb;IAAY,GAAGN;GAAS,EAAE,CAAC;GACjE,WAAW,CAAC,WAAW;GACvB,kBAAkB,CAAC,EAAE,cAAc;IAAC;IAAI;IAAU;IAAQ,GAAGA;GAAS,EAAE,CAAC;GACzE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,SAAS,OAAO,EAAE,CAAC;GAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,SAAS,EAAE,CAAC;GACpC,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,IAAI,CAAC,WAAW,aAAa;GAC7B,WAAW,CAAC,WAAW,gBAAgB;GACvC,cAAc,CAAC,EAAE,QAAQ;IAAC;IAAW;IAAS;IAAQ;IAAQ;GAAY,EAAE,CAAC;GAC7E,UAAU,CAAC,EAAE,YAAS,CAAC;GACvB,cAAc,CAAC,EAAE,cAAcS,EAAS,CAAC;GACzC,cAAc,CAAC,EAAE,cAAcA,EAAS,CAAC;GACzC,YAAY,CAAC,EAAE,YAAY;IAAC;IAAQ;IAAW;GAAM,EAAE,CAAC;GACxD,UAAU;IAAC;IAAU;IAAS;IAAY;IAAY;GAAQ;GAC9D,OAAO,CAAC,EAAE,SAAM,CAAC;GACjB,WAAW,CAAC,EAAE,WAAWJ,EAAM,CAAC;GAChC,WAAW,CAAC,EAAE,WAAWA,EAAM,CAAC;GAChC,KAAK,CAAC,EAAE,KAAKA,EAAM,CAAC;GACpB,OAAO,CAAC,EAAE,OAAOA,EAAM,CAAC;GACxB,QAAQ,CAAC,EAAE,QAAQA,EAAM,CAAC;GAC1B,MAAM,CAAC,EAAE,MAAMA,EAAM,CAAC;GACtB,OAAO,CAAC,EAAE,OAAOA,EAAM,CAAC;GACxB,YAAY;IAAC;IAAW;IAAa;GAAU;GAC/C,GAAG,CAAC,EAAE,GAAG;IAACM;IAAW;IAAQ,GAAGX;GAAS,EAAE,CAAC;GAC5C,OAAO,CAAC,EAAE,OAAO;IAACM;IAAY;IAAQ;IAAQ,GAAGH;GAAO,EAAE,CAAC;GAC3D,kBAAkB,CAAC,EAAE,MAAM;IAAC;IAAO;IAAe;IAAO;GAAa,EAAE,CAAC;GACzE,aAAa,CAAC,EAAE,MAAM;IAAC;IAAU;IAAQ;GAAc,EAAE,CAAC;GAC1D,MAAM,CAAC,EAAE,MAAM;IAACC;IAAUE;IAAY;IAAQ;IAAW;IAAQJ;GAAgB,EAAE,CAAC;GACpF,MAAM,CAAC,EAAE,MAAM;IAAC;IAAIE;IAAU,GAAGJ;GAAS,EAAE,CAAC;GAC7C,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAII;IAAU,GAAGJ;GAAS,EAAE,CAAC;GACjD,OAAO,CAAC,EAAE,OAAO;IAACW;IAAW;IAAS;IAAQ;IAAQ,GAAGX;GAAS,EAAE,CAAC;GACrE,aAAa,CAAC,EAAE,aAAaa,EAAO,CAAC;GACrC,iBAAiB,CAAC,EAAE,KAAKH,EAAK,CAAC;GAC/B,aAAa,CAAC,EAAE,aAAaE,EAAe,CAAC;GAC7C,aAAa,CAAC,EAAE,aAAaC,EAAO,CAAC;GACrC,iBAAiB,CAAC,EAAE,KAAKH,EAAK,CAAC;GAC/B,aAAa,CAAC,EAAE,aAAaE,EAAe,CAAC;GAC7C,KAAK,CAAC,EAAE,KAAKT,EAAQ,CAAC;GACtB,SAAS,CAAC,EAAE,SAASA,EAAQ,CAAC;GAC9B,SAAS,CAAC,EAAE,SAASA,EAAQ,CAAC;GAC9B,mBAAmB,CAAC,EAAE,SAAS;IAAC;IAAS;IAAO;IAAU;IAAW;IAAU;IAAU;IAAW;IAAY;IAAe;IAAY;GAAQ,EAAE,CAAC;GACtJ,iBAAiB,CAAC,EAAE,iBAAiB;IAAC;IAAS;IAAO;IAAU;IAAW;IAAe;IAAY;GAAQ,EAAE,CAAC;GACjH,iBAAiB,CAAC,EAAE,SAAS;IAAC;IAAU;IAAS;IAAO;IAAU;IAAW;IAAU;IAAU;IAAW;IAAY;IAAe;GAAU,EAAE,CAAC;GACpJ,eAAe,CAAC,EAAE,OAAO;IAAC;IAAS;IAAO;IAAU;IAAW;IAAe;IAAY,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE;GAAC,EAAE,CAAC;GACvH,cAAc,CAAC,EAAE,MAAM;IAAC;IAAQ;IAAS;IAAO;IAAU;IAAW;IAAe;IAAY,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE;GAAC,EAAE,CAAC;GAC7H,GAAG,CAAC,EAAE,GAAGA,EAAQ,CAAC;GAClB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,IAAI,CAAC,EAAE,IAAIA,EAAQ,CAAC;GACpB,GAAG,CAAC,EAAE,GAAGI,EAAO,CAAC;GACjB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,IAAI,CAAC,EAAE,IAAIA,EAAO,CAAC;GACnB,MAAM,CAAC,EAAE,MAAMC,EAAO,CAAC;GACvB,GAAG,CAAC,EAAE,GAAG;IAAC;IAAU;IAAU,GAAGA;GAAM,EAAE,CAAC;GAC1C,SAAS,CAAC,EAAE,SAAS;IAAC;IAAU;IAAQ;IAAU,GAAGA;GAAM,EAAE,CAAC;GAC9D,SAAS,CAAC,EAAE,SAAS;IAAC;IAAU;IAAQ;IAAS,GAAGA;GAAM,EAAE,CAAC;GAC7D,GAAG,CAAC,EAAE,GAAG;IAAC;IAAU;IAAM,GAAGA;GAAM,EAAE,CAAC;GACtC,SAAS,CAAC,EAAE,SAAS;IAAC;IAAU;IAAM;IAAQ,GAAGA;GAAM,EAAE,CAAC;GAC1D,SAAS,CAAC,EAAE,SAAS;IAAC;IAAU;IAAM;IAAQ,GAAGA;GAAM,EAAE,CAAC;GAC1D,aAAa,CAAC,EAAE,MAAM;IAAK;IAAQ;IAAU;IAAQ;IAAO;IAAU;IAAW;IAAQ;IAAW;IAAU;IAAWQ;IAA2BC;GAAiB,EAAE,CAAC;GACxK,cAAc,CAAC,UAAU,YAAY;GACrC,eAAe,CAAC,EAAE,MAAM;IAAC;IAAW;IAAU;IAAYG;IAA2BC;GAAiB,EAAE,CAAC;GACzG,eAAe,CAAC,EAAE,MAAM;IAACC;IAA+BC;IAAuBC;GAAiB,EAAE,CAAC;GACnG,eAAe,CAAC,qBAAqB,cAAc;GACnD,cAAc,CAAC,EAAE,cAAc;IAACpB;IAAU;IAAQH;IAAqBwB;GAAiB,EAAE,CAAC;GAC3F,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAGtB,CAAO,EAAE,CAAC;GAC3C,kBAAkB,CAAC,EAAE,MAAM;IAAC;IAAQ;IAAU;IAAS;IAAW;IAAS;GAAK,EAAE,CAAC;GACnF,cAAc,CAAC,EAAE,MAAMe,EAAM,CAAC;GAC9B,mBAAmB;IAAC;IAAa;IAAY;IAAgB;GAAc;GAC3E,6BAA6B,CAAC,EAAE,YAAY;IAACd;IAAU;IAAa;IAAQH;IAAqBgB;GAAiB,EAAE,CAAC;GACrH,yBAAyB,CAAC,EAAE,YAAYC,EAAM,CAAC;GAC/C,oBAAoB,CAAC,EAAE,oBAAoB;IAACd;IAAU;IAAQ,GAAGJ;GAAS,EAAE,CAAC;GAC7E,iBAAiB;IAAC;IAAY;IAAiB;GAAW;GAC1D,aAAa,CAAC,EAAE,MAAM;IAAC;IAAQ;IAAU;IAAW;GAAQ,EAAE,CAAC;GAC/D,kBAAkB,CAAC,EAAE,OAAO;IAAC;IAAY;IAAO;IAAU;IAAU;IAAY;IAAe;IAAO;IAAS,GAAGA;GAAS,EAAE,CAAC;GAC9H,YAAY,CAAC,EAAE,YAAY;IAAC;IAAU;IAAU;IAAO;IAAY;IAAY;GAAc,EAAE,CAAC;GAChG,OAAO,CAAC,EAAE,OAAO;IAAC;IAAU;IAAS;IAAO;GAAM,EAAE,CAAC;GACrD,MAAM,CAAC,EAAE,MAAM;IAAC;IAAc;IAAY;GAAQ,EAAE,CAAC;GACrD,YAAY,CAAC,EAAE,IAAIkB,EAAM,CAAC;GAC1B,SAAS,CAAC,EAAE,WAAQ,CAAC;GACrB,aAAa,CAAC,EAAE,aAAaJ,EAAQ,CAAC;GACtC,aAAa,CAAC,EAAE,aAAaA,EAAQ,CAAC;GACtC,iBAAiB,CAAC,EAAE,SAAS;IAAC;IAAS;IAAU;IAAU;IAAU;IAAQ;GAAQ,EAAE,CAAC;GACxF,kBAAkB,CAAC,EAAE,kBAAkB,CAACV,GAAU,GAAGJ,CAAS,EAAE,CAAC;GACjE,aAAa,CAAC,EAAE,SAASe,EAAM,CAAC;GAChC,iBAAiB,CAAC,EAAE,SAASG,EAAM,CAAC;GACpC,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAI;IAAS;IAAY;IAAO;IAAU;IAAgB;IAAkB;IAAQ;IAAc;IAAW;IAAiB;IAAQ;IAAK;IAAS;IAAS;IAAQ;IAAU;IAAQ;IAAUQ;IAA2BC;GAAiB,EAAE,CAAC;GACpQ,UAAU,CAAC,EAAE,MAAMZ,EAAM,CAAC;GAC1B,cAAc,CAAC,EAAE,MAAMG,EAAM,CAAC;GAC9B,SAAS,CAAC,EAAE,SAAS,CAACd,GAAU,GAAGJ,CAAS,EAAE,CAAC;GAC/C,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAI;IAAQ,GAAGA;GAAS,EAAE,CAAC;GAC/C,mBAAmB,CAAC,EAAE,QAAQ,CAAC,YAAY,UAAU,EAAE,CAAC;GACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC,QAAQ,OAAO,EAAE,CAAC;GAC7C,YAAY,CAAC,EAAE,YAAY;IAAC;IAAI;IAAO;IAAU;IAAW;IAAU;IAAa;IAAQ,GAAGA;GAAS,EAAE,CAAC;GAC1G,UAAU,CAAC,EAAE,UAAU;IAACI;IAAU;IAAW,GAAGJ;GAAS,EAAE,CAAC;GAC5D,MAAM,CAAC,EAAE,MAAM;IAAC;IAAU;IAAe;IAAW;IAAU;IAAO;IAAU,GAAGA;GAAS,EAAE,CAAC;GAC9F,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAGA,CAAS,EAAE,CAAC;GAC7C,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAQI;IAAU,GAAGJ;GAAS,EAAE,CAAC;GACrD,eAAe,CAAC,EAAE,eAAe;IAACM;IAAY;IAAQ,GAAGH;GAAO,EAAE,CAAC;GACnE,eAAe,CAAC,EAAE,OAAOe,EAAM,CAAC;GAChC,QAAQ,CACN,EACE,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,GAAGlB;GACL,EACF,CACF;GACA,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,QAAQ,MAAM,EAAE,CAAC;GACzD,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAQ;IAAI;IAAK;GAAG,EAAE,CAAC;GAC3C,eAAe,CAAC,EAAE,WAAW;IAAC;IAAQ;IAAQ;GAAM,EAAE,CAAC;GACvD,aAAa,CAAC,EAAE,aAAaG,EAAQ,CAAC;GACtC,cAAc,CAAC,EAAE,MAAM;IAAC;IAAS;IAAO;IAAU;GAAY,EAAE,CAAC;GACjE,aAAa,CAAC,EAAE,MAAM,CAAC,UAAU,QAAQ,EAAE,CAAC;GAC5C,OAAO,CAAC,EAAE,OAAO;IAAC;IAAQ;IAAQ;GAAc,EAAE,CAAC;GACnD,QAAQ,CAAC,EAAE,QAAQ;IAAC;IAAQ;IAAQ;IAAO;GAAM,EAAE,CAAC;GACpD,UAAU;IACR;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO,CAAC,cAAc,kBAAkB;GACxC,QAAQ;IAAC;IAAgB;IAAiB;IAAgB;IAAmB;GAAkB;EACjG;EACA,wBAAwB;GACtB,UAAU,CAAC,cAAc,YAAY;GACrC,OAAO;IAAC;IAAW;IAAW;IAAS;IAAO;IAAS;IAAU;GAAM;GACvE,WAAW;IAAC;IAAS;IAAS;GAAM;GACpC,WAAW,CAAC,OAAO,QAAQ;GAC3B,MAAM;IAAC;IAAS;IAAQ;GAAQ;GAChC,KAAK,CAAC,SAAS,OAAO;GACtB,GAAG;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;GAAI;GACtC,IAAI,CAAC,MAAM,IAAI;GACf,IAAI,CAAC,MAAM,IAAI;GACf,GAAG;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;IAAM;GAAI;GAC5C,IAAI;IAAC;IAAM;IAAM;GAAI;GACrB,IAAI,CAAC,MAAM,IAAI;GACf,MAAM,CAAC,KAAK,GAAG;GACf,aAAa,CAAC,SAAS;GACvB,cAAc,CAAC,WAAW,UAAU;GACpC,SAAS,CAAC,aAAa,WAAW;EACpC;EACA,gCAAgC,EAAE,aAAa,CAAC,SAAS,EAAE;EAC3D,0BAA0B,CAAC,gBAAgB;EAC3C,yBAAyB;GACvB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;AACF;AAEA,IAAIyB;AAEJ,SAAgBC,EAAG,GAAGC,GAA8B;CAElD,OADA,MAAUC,EAAoBjC,CAAgB,GACvC8B,EAAMI,EAAKF,CAAM,CAAC;AAC3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block-mEH6Sy3h.js","names":["BaseTabs","cn","useUiText","observeResize","CopyButton","TONES","ITALIC","BOLD","codeTokenClass","style","fontStyle","tone","color","kaesoShikiTheme","instance","HIGHLIGHT_MAX_LINE","CODE_LANGS","getHighlighter","createHighlighterCore","createJavaScriptRegexEngine","error","LOADERS","highlight","lang","code","h","loader","line","token","setLength","px","el","name","useScrollFadeX","ref","update","start","inner","content","stop","key","KAESO_CODE_BLOCK_VARIANTS","KAESO_CODE_BLOCK_DEFAULT_VARIANTS","CodeBlock","chosen","own","setOwn","useState","match","tabs","item","tab","choose","i","label","onTabChange","t","current","text","lines","useMemo","highlighted","setHighlighted","expanded","setExpanded","alive","tokenLines","collapsed","collapseAfter","visible","scroller","useRef","codeClass","copy","source","wrap","highlightLines","lineNumbers","j","surface","className","Tabs","v","title","CodeHighlighted"],"sources":["../../src/components/code-block/kaeso-theme.ts","../../src/components/code-block/highlighter.ts","../../src/hooks/use-scroll-fade.ts","../../src/components/code-block/code-block.tsx"],"sourcesContent":["const TONES = {\n text: { color: \"var(--k-text)\", className: \"\" },\n quiet: { color: \"var(--k-text-tertiary)\", className: \"text-fg-tertiary\" },\n secondary: { color: \"var(--k-text-secondary)\", className: \"text-fg-secondary\" },\n string: { color: \"var(--k-info-text)\", className: \"text-info-text\" },\n constant: { color: \"var(--k-warning-text)\", className: \"text-warning-text\" },\n} as const;\n\nconst ITALIC = 1;\nconst BOLD = 2;\n\nexport function codeTokenClass(color: string | undefined, fontStyle: number | undefined): string {\n const style = fontStyle ?? 0;\n return [\n Object.values(TONES).find((tone) => tone.color === color?.toLowerCase())?.className ?? \"\",\n style & ITALIC ? \"italic\" : \"\",\n style & BOLD ? \"font-semibold\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const kaesoShikiTheme = {\n name: \"kaeso\",\n type: \"light\" as const,\n colors: { \"editor.background\": \"transparent\", \"editor.foreground\": TONES.text.color },\n settings: [\n { settings: { foreground: TONES.text.color, background: \"transparent\" } },\n { scope: [\"comment\", \"punctuation.definition.comment\"], settings: { foreground: TONES.quiet.color, fontStyle: \"italic\" } },\n {\n scope: [\"string\", \"string.quoted\", \"string.template\", \"punctuation.definition.string\", \"markup.inline.raw\"],\n settings: { foreground: TONES.string.color },\n },\n {\n scope: [\"constant.numeric\", \"constant.language.boolean\", \"constant.language.null\", \"constant.language\"],\n settings: { foreground: TONES.constant.color },\n },\n {\n scope: [\"keyword\", \"storage\", \"storage.type\", \"storage.modifier\", \"keyword.control\", \"keyword.operator.new\", \"variable.language\"],\n settings: { foreground: TONES.text.color, fontStyle: \"bold\" },\n },\n {\n scope: [\"punctuation\", \"meta.brace\", \"punctuation.separator\", \"punctuation.terminator\", \"keyword.operator\", \"meta.tag punctuation\"],\n settings: { foreground: TONES.quiet.color },\n },\n { scope: [\"entity.name.function\", \"support.function\", \"entity.name.tag\", \"support.class.component\"], settings: { foreground: TONES.text.color } },\n {\n scope: [\"support.type.property-name\", \"meta.object-literal.key\", \"entity.other.attribute-name\", \"variable.other.property\"],\n settings: { foreground: TONES.text.color },\n },\n { scope: [\"entity.name.type\", \"support.type\", \"entity.other.inherited-class\"], settings: { foreground: TONES.secondary.color } },\n ],\n};\n","import { codeTokenClass, kaesoShikiTheme } from \"./kaeso-theme.js\";\n\ntype Highlighter = {\n codeToTokens: (\n code: string,\n o: { lang: string; theme: string; tokenizeMaxLineLength?: number | undefined },\n ) => { tokens: { content: string; color?: string | undefined; fontStyle?: number | undefined }[][] };\n getLoadedLanguages: () => string[];\n loadLanguage: (...l: unknown[]) => Promise<void>;\n};\nlet instance: Promise<Highlighter> | null = null;\n\nexport const HIGHLIGHT_MAX_CHARS = 200_000;\n\nconst HIGHLIGHT_MAX_LINE = 2_000;\n\nexport const CODE_LANGS = [\"ts\", \"tsx\", \"js\", \"json\", \"bash\", \"python\", \"yaml\", \"diff\"] as const;\nexport type CodeLang = (typeof CODE_LANGS)[number] | \"text\";\n\nexport function getHighlighter(): Promise<Highlighter> {\n instance ??= (async () => {\n const [{ createHighlighterCore }, { createJavaScriptRegexEngine }] = await Promise.all([import(\"shiki/core\"), import(\"shiki/engine/javascript\")]);\n return (await createHighlighterCore({ themes: [kaesoShikiTheme as never], langs: [], engine: createJavaScriptRegexEngine() })) as unknown as Highlighter;\n })().catch((error: unknown) => {\n instance = null;\n throw error;\n });\n return instance;\n}\n\nconst LOADERS: Record<Exclude<CodeLang, \"text\">, () => Promise<{ default: unknown }>> = {\n ts: () => import(\"shiki/dist/langs/typescript.mjs\"),\n tsx: () => import(\"shiki/dist/langs/tsx.mjs\"),\n js: () => import(\"shiki/dist/langs/javascript.mjs\"),\n json: () => import(\"shiki/dist/langs/json.mjs\"),\n bash: () => import(\"shiki/dist/langs/bash.mjs\"),\n python: () => import(\"shiki/dist/langs/python.mjs\"),\n yaml: () => import(\"shiki/dist/langs/yaml.mjs\"),\n diff: () => import(\"shiki/dist/langs/diff.mjs\"),\n};\n\nexport interface CodeToken {\n content: string;\n className: string;\n}\n\nexport async function highlight(code: string, lang: CodeLang): Promise<CodeToken[][] | null> {\n if (lang === \"text\" || code.length > HIGHLIGHT_MAX_CHARS) return null;\n const h = await getHighlighter();\n if (!h.getLoadedLanguages().includes(lang)) {\n const loader = LOADERS[lang];\n if (!loader) return null;\n await h.loadLanguage((await loader()).default);\n }\n return h\n .codeToTokens(code, { lang, theme: \"kaeso\", tokenizeMaxLineLength: HIGHLIGHT_MAX_LINE })\n .tokens.map((line) => line.map((token) => ({ content: token.content, className: codeTokenClass(token.color, token.fontStyle) })));\n}\n","import { useEffect, type RefObject } from \"react\";\nimport { observeResize } from \"../utils/observe-resize.js\";\n\nfunction setLength(el: HTMLElement, name: string, px: number) {\n if (px > 0) el.style.setProperty(name, `${px}px`);\n else el.style.removeProperty(name);\n}\n\nexport function useScrollFadeX(ref: RefObject<HTMLElement | null>, content: string, key?: unknown) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const update = () => {\n const start = Math.abs(el.scrollLeft);\n setLength(el, \"--scroll-area-overflow-x-start\", start);\n setLength(el, \"--scroll-area-overflow-x-end\", el.scrollWidth - el.clientWidth - start);\n };\n update();\n el.addEventListener(\"scroll\", update, { passive: true });\n const inner = el.querySelector(content);\n const stop = observeResize(inner ? [el, inner] : [el], update);\n return () => {\n el.removeEventListener(\"scroll\", update);\n stop();\n };\n }, [ref, content, key]);\n}\n","import { forwardRef, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { highlight, type CodeLang, type CodeToken } from \"./highlighter.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { useScrollFadeX } from \"../../hooks/use-scroll-fade.js\";\n\nexport const KAESO_CODE_BLOCK_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1\" },\n plain: { classes: \"bg-transparent\" },\n },\n} as const;\nexport const KAESO_CODE_BLOCK_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\nexport interface CodeTab {\n label: string;\n code: string;\n lang?: CodeLang | undefined;\n}\n\nexport interface CodeBlockProps {\n code?: string | undefined;\n lang?: CodeLang | undefined;\n tabs?: CodeTab[] | undefined;\n tab?: string | undefined;\n onTabChange?: ((label: string) => void) | undefined;\n title?: ReactNode | undefined;\n lineNumbers?: boolean | undefined;\n highlightLines?: number[] | undefined;\n collapseAfter?: number | undefined;\n surface?: keyof typeof KAESO_CODE_BLOCK_VARIANTS.surface | undefined;\n copy?: boolean | undefined;\n wrap?: boolean | undefined;\n className?: string | undefined;\n}\n\nexport const CodeBlock = /* @__PURE__ */ forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock(\n {\n code = \"\",\n lang = \"ts\",\n tabs,\n tab: chosen,\n onTabChange,\n title,\n lineNumbers,\n highlightLines = [],\n collapseAfter = 24,\n surface = \"well\",\n copy = true,\n wrap = false,\n className,\n },\n ref,\n) {\n const [own, setOwn] = useState(0);\n const match = chosen === undefined ? -1 : (tabs?.findIndex((item) => item.label === chosen) ?? -1);\n const tab = match >= 0 ? match : own;\n const choose = (i: number) => {\n setOwn(i);\n const label = tabs?.[i]?.label;\n if (label !== undefined) onTabChange?.(label);\n };\n const t = useUiText();\n const current = tabs?.[tab] ?? { label: \"\", code, lang };\n const text = current.code.replace(/\\n$/, \"\");\n const lines = useMemo(() => text.split(\"\\n\"), [text]);\n const [highlighted, setHighlighted] = useState<{ text: string; lang: CodeLang; tokens: CodeToken[][] | null } | null>(null);\n const [expanded, setExpanded] = useState(false);\n useEffect(() => {\n let alive = true;\n const lang = current.lang ?? \"ts\";\n highlight(text, lang)\n .then((tokens) => alive && setHighlighted({ text, lang, tokens }))\n .catch(() => undefined);\n return () => {\n alive = false;\n };\n }, [text, current.lang]);\n const tokenLines = highlighted && highlighted.lang === (current.lang ?? \"ts\") && highlighted.text === text ? highlighted.tokens : null;\n const collapsed = collapseAfter > 0 && lines.length > collapseAfter && !expanded;\n const visible = collapsed ? collapseAfter : lines.length;\n const scroller = useRef<HTMLDivElement | null>(null);\n useScrollFadeX(scroller, \"code\", !!tabs);\n const codeClass = cn(\n \"relative overflow-x-auto py-16 scrollbar-quiet scroll-fade-x focus-ring-inset\",\n collapsed && \"overflow-y-hidden\",\n copy && \"coarse:mr-40\",\n );\n const source = (\n <pre className=\"mono text-small text-fg\">\n <code className={cn(\"grid\", !wrap && \"min-w-max\")}>\n {lines.slice(0, visible).map((line, i) => (\n <span key={i} className={cn(\"flex px-16 leading-code\", wrap && \"whitespace-pre-wrap wrap-anywhere\", highlightLines.includes(i + 1) && \"bg-fill-2\")}>\n {lineNumbers && <span className=\"mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular\">{i + 1}</span>}\n <span className=\"min-w-0\">\n {tokenLines?.[i]?.length\n ? tokenLines[i].map((token, j) => (\n <span key={j} className={token.className || undefined}>\n {token.content}\n </span>\n ))\n : line || \" \"}\n </span>\n </span>\n ))}\n </code>\n </pre>\n );\n\n return (\n <div ref={ref} className={cn(\"group/code relative min-w-0\", KAESO_CODE_BLOCK_VARIANTS.surface[surface].classes, className)}>\n <BaseTabs.Root value={tab} onValueChange={(v: unknown) => choose(Number(v))}>\n {(title || tabs) && (\n <div className=\"flex h-44 items-center gap-4 px-8 hairline-b\">\n {title && <span className=\"px-8 mono text-small text-fg-secondary\">{title}</span>}\n {tabs && (\n <BaseTabs.List aria-label={t(\"codeBlock.language\", \"Language\")} className=\"flex items-center gap-2\">\n {tabs.map((item, i) => (\n <BaseTabs.Tab\n key={item.label}\n value={i}\n className={cn(\n \"inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring\",\n i === tab ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-2 hover:text-fg\",\n )}\n >\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n )}\n </div>\n )}\n {tabs ? (\n <BaseTabs.Panel ref={scroller} value={tab} className={codeClass}>\n {source}\n </BaseTabs.Panel>\n ) : (\n <div\n ref={scroller}\n tabIndex={0}\n role=\"region\"\n aria-label={typeof title === \"string\" ? t(\"codeBlock.titledCode\", \"{title} code\", { title }) : t(\"codeBlock.code\", \"Code\")}\n className={codeClass}\n >\n {source}\n </div>\n )}\n </BaseTabs.Root>\n {collapseAfter > 0 && lines.length > collapseAfter && (\n <div className=\"flex justify-center pb-12\">\n <button\n type=\"button\"\n onClick={() => setExpanded((e) => !e)}\n className=\"inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n {expanded ? t(\"codeBlock.showLess\", \"Show less\") : t(\"codeBlock.showAllLines\", \"Show all {count} lines\", { count: String(lines.length) })}\n </button>\n </div>\n )}\n {copy && (\n <div\n className={cn(\n \"absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100\",\n title || tabs ? \"top-52\" : \"top-8\",\n )}\n >\n <CopyButton value={text} label={t(\"codeBlock.copy\", \"Copy code\")} />\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CodeBlock.displayName = \"CodeBlock\";\n\nexport const CodeHighlighted = CodeBlock;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-list-CzMbdtJs.js","names":["__icon_Tick02Icon","__icon_Search01Icon","MENU_LABEL","MENU_ITEM","cn","useUiText","Icon","OptionCheckbox","Highlight","SEPARATORS","SEPARATOR","wordScore","field","word","at","compactWord","next","last","gaps","i","commandMatch","words","query","lower","fields","f","total","best","KAESO_COMMAND_LIST_VARIANTS","KAESO_COMMAND_LIST_DEFAULT_VARIANTS","SIZES","COARSE","subscribeCoarse","q","onChange","isCoarse","HEADER","EDGE","SEARCH","EMPTY","FALLBACK_VIEWPORT","VIRTUALIZE_ABOVE","CommandListHeightContext","fuzzy","item","visibleGroups","kept","g","groups","items","match","m","b","a","observeWithFallback","observeElementRect","instance","cb","rect","CommandList","ariaLabel","controlledQuery","heightProp","force","t","fromFrame","useContext","height","uid","useId","listId","ownQuery","setOwnQuery","useState","defaultQuery","coarse","useSyncExternalStore","look","size","rowHeight","commands","value","multiple","checks","selected","useMemo","shown","rows","options","spans","first","group","labelled","fits","toolbar","footer","unfiltered","sum","fitted","offsets","out","row","firstEnabled","useCallback","from","step","initialActive","chosen","o","active","setActive","signature","shownFor","setShownFor","activeRef","useRef","scroller","virtual","virtualizer","useVirtualizer","activeRow","keep","defaultRangeExtractor","range","keyboardMove","reveal","option","optionId","align","opened","setQuery","onQueryChange","move","to","page","choose","onSelect","onKeyDown","onInputKeyDown","escapeClears","onEscape","groupLabelId","gi","header","count","isActive","isSelected","state","Tick02Icon","indexes","v","rendered","index","list","empty","className","loading","Search01Icon","searchPrefix","inputProps","placeholder","autoFocus","emptyText","span","top","bottom"],"sources":["../../src/components/command-list/match.ts","../../src/components/command-list/command-list.tsx"],"sourcesContent":["const SEPARATORS = /[\\s\\-_./:@]/g;\nconst SEPARATOR = /[\\s\\-_./:@]/;\n\nfunction wordScore(word: string, field: string): number {\n if (field === word) return 100;\n if (field.startsWith(word)) return 80;\n const at = field.indexOf(word);\n if (at > 0) return SEPARATOR.test(field[at - 1] ?? \"\") ? 70 : 50;\n const compactWord = word.replace(SEPARATORS, \"\");\n if (compactWord && field.replace(SEPARATORS, \"\").includes(compactWord)) return 40;\n if (word.length < 3) return 0;\n let next = 0;\n let last = -1;\n let gaps = 0;\n for (let i = 0; i < field.length && next < word.length; i++) {\n if (field[i] !== word[next]) continue;\n if (last >= 0 && i !== last + 1) gaps += 1;\n last = i;\n next += 1;\n }\n return next < word.length ? 0 : Math.max(1, 30 - gaps * 3);\n}\n\nexport function commandMatch(query: string, fields: readonly string[]): number {\n const words = query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return 1;\n const lower = fields.map((f) => f.toLowerCase());\n let total = 0;\n for (const word of words) {\n let best = 0;\n lower.forEach((field, i) => {\n best = Math.max(best, wordScore(word, field) * (i === 0 ? 1 : 0.9));\n });\n if (best === 0) return 0;\n total += best;\n }\n return total / words.length;\n}\n","import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport { defaultRangeExtractor, observeElementRect, useVirtualizer, type Range, type Virtualizer } from \"@tanstack/react-virtual\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Search01Icon as __icon_Search01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Highlight } from \"../combobox/combobox.js\";\nimport { MENU_HINT, MENU_ITEM, MENU_LABEL } from \"../menu/styles.js\";\nimport { OptionCheckbox } from \"../select/option-checkbox.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { commandMatch } from \"./match.js\";\n\nexport const KAESO_COMMAND_LIST_VARIANTS = {\n height: {\n popover: { classes: \"picker-limits\" },\n inline: {\n classes: \"max-h-360 rounded-group bg-raised shadow-xs\",\n },\n fill: { classes: \"min-h-0 flex-1\" },\n },\n size: {\n md: { classes: \"\" },\n lg: { classes: \"\" },\n },\n} as const;\nexport const KAESO_COMMAND_LIST_DEFAULT_VARIANTS = { height: \"popover\", size: \"md\" } as const;\n\nconst SIZES = {\n md: { search: \"h-44 gap-10 px-16\", input: \"text-body\", row: 34, item: \"\" },\n lg: { search: \"h-56 gap-12 px-20\", input: \"text-body-lg font-regular\", row: 40, item: \"rounded-palette-item gap-12 px-12\" },\n} as const;\n\nexport type CommandListHeight = keyof typeof KAESO_COMMAND_LIST_VARIANTS.height;\n\nexport interface CommandListRowState {\n query: string;\n active: boolean;\n selected: boolean;\n}\n\nexport interface CommandListItem {\n value: string;\n label: string;\n keywords?: readonly string[] | undefined;\n leading?: ReactNode | undefined;\n meta?: ReactNode | undefined;\n render?: ((state: CommandListRowState) => ReactNode) | undefined;\n disabled?: boolean | undefined;\n}\n\nexport interface CommandListGroup {\n id: string;\n label?: string | undefined;\n leading?: ReactNode | undefined;\n count?: ReactNode | undefined;\n loading?: boolean | undefined;\n items: CommandListItem[];\n}\n\nexport interface CommandListProps {\n groups: CommandListGroup[];\n \"aria-label\": string;\n value?: string | readonly string[] | null | undefined;\n multiple?: boolean | undefined;\n onSelect?: ((value: string) => void) | undefined;\n query?: string | undefined;\n defaultQuery?: string | undefined;\n onQueryChange?: ((query: string) => void) | undefined;\n placeholder?: string | undefined;\n emptyText?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n searchPrefix?: ReactNode | undefined;\n loading?: boolean | undefined;\n onInputKeyDown?: ((event: KeyboardEvent<HTMLInputElement>) => void) | undefined;\n size?: keyof typeof KAESO_COMMAND_LIST_VARIANTS.size | undefined;\n height?: CommandListHeight | undefined;\n autoFocus?: boolean | undefined;\n onEscape?: (() => void) | undefined;\n escapeClears?: boolean | undefined;\n match?: ((item: CommandListItem, query: string) => number) | undefined;\n inputProps?: { [attribute: `data-${string}`]: string } | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst COARSE = \"(pointer: coarse)\";\nconst subscribeCoarse = (onChange: () => void) => {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const q = window.matchMedia(COARSE);\n q.addEventListener(\"change\", onChange);\n return () => q.removeEventListener(\"change\", onChange);\n};\nconst isCoarse = () => typeof window !== \"undefined\" && !!window.matchMedia?.(COARSE).matches;\n\nconst HEADER = 28;\nconst EDGE = 6;\nconst SEARCH = { md: 44, lg: 56 } as const;\nconst EMPTY = 80;\nconst FALLBACK_VIEWPORT = 480;\nconst VIRTUALIZE_ABOVE = 200;\n\nexport const CommandListHeightContext = /* @__PURE__ */ createContext<CommandListHeight | null>(null);\n\ntype Row = { kind: \"header\"; group: CommandListGroup; gi: number } | { kind: \"item\"; item: CommandListItem; gi: number; option: number; score: number };\n\nconst fuzzy = (item: CommandListItem, query: string) => commandMatch(query, [item.label, ...(item.keywords ?? [])]);\n\nfunction visibleGroups(groups: CommandListGroup[], query: string, match: (item: CommandListItem, query: string) => number) {\n const q = query.trim();\n const kept = (g: { group: CommandListGroup; items: unknown[] }) => g.items.length > 0 || !!g.group.loading;\n if (!q) return groups.map((g) => ({ group: g, items: g.items.map((item) => ({ item, score: 1 })) })).filter(kept);\n return groups\n .map((g, order) => {\n const items = g.items\n .map((item) => ({ item, score: match(item, q) }))\n .filter((m) => m.score > 0)\n .sort((a, b) => b.score - a.score);\n return { group: g, items, order, best: items[0]?.score ?? 0 };\n })\n .filter(kept)\n .sort((a, b) => b.best - a.best || a.order - b.order);\n}\n\nfunction observeWithFallback(instance: Virtualizer<HTMLDivElement, Element>, cb: (rect: { width: number; height: number }) => void) {\n return observeElementRect(instance, (rect) => cb(rect.height > 0 ? rect : { width: rect.width, height: FALLBACK_VIEWPORT }));\n}\n\nexport const CommandList = /* @__PURE__ */ forwardRef<HTMLInputElement, CommandListProps>(function CommandList(\n {\n groups,\n \"aria-label\": ariaLabel,\n value,\n multiple,\n onSelect,\n query: controlledQuery,\n defaultQuery = \"\",\n onQueryChange,\n placeholder,\n emptyText,\n toolbar,\n footer,\n searchPrefix,\n loading,\n onInputKeyDown,\n size = \"md\",\n height: heightProp,\n autoFocus,\n onEscape,\n escapeClears = true,\n match = fuzzy,\n inputProps,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const fromFrame = useContext(CommandListHeightContext);\n const height = heightProp ?? fromFrame ?? \"popover\";\n const uid = useId();\n const listId = `${uid}-list`;\n const [ownQuery, setOwnQuery] = useState(defaultQuery);\n const query = controlledQuery ?? ownQuery;\n const coarse = useSyncExternalStore(subscribeCoarse, isCoarse, () => false);\n const look = SIZES[size];\n const rowHeight = coarse ? Math.max(44, look.row) : look.row;\n const commands = value === undefined && !multiple;\n const checks = !multiple && !commands;\n const selected = useMemo(() => new Set(value == null ? [] : typeof value === \"string\" ? [value] : value), [value]);\n\n const shown = useMemo(() => visibleGroups(groups, query, match), [groups, query, match]);\n const { rows, options, spans } = useMemo(() => {\n const rows: Row[] = [];\n const options: { row: number; item: CommandListItem; gi: number }[] = [];\n const spans: { first: number; last: number }[] = [];\n shown.forEach(({ group, items }, gi) => {\n const first = rows.length;\n if (group.label) rows.push({ kind: \"header\", group, gi });\n for (const { item, score } of items) {\n options.push({ row: rows.length, item, gi });\n rows.push({ kind: \"item\", item, gi, option: options.length - 1, score });\n }\n spans.push({ first, last: rows.length - 1 });\n });\n return { rows, options, spans };\n }, [shown]);\n const labelled = shown.some((g) => g.group.label);\n const fits = height === \"inline\" && !toolbar && !footer;\n const unfiltered = useMemo(\n () => (fits ? visibleGroups(groups, \"\", match).reduce((sum, { group, items }) => sum + (group.label ? HEADER : 0) + items.length * rowHeight, 0) : 0),\n [fits, groups, match, rowHeight],\n );\n const fitted = fits ? { height: SEARCH[size] + 2 * EDGE + Math.max(unfiltered, EMPTY) } : undefined;\n const offsets = useMemo(() => {\n const out = [EDGE];\n for (const row of rows) out.push((out[out.length - 1] ?? EDGE) + (row.kind === \"header\" ? HEADER : rowHeight));\n return out;\n }, [rows, rowHeight]);\n\n const firstEnabled = useCallback(\n (from: number, step: 1 | -1) => {\n for (let i = from; i >= 0 && i < options.length; i += step) if (!options[i]?.item.disabled) return i;\n return -1;\n },\n [options],\n );\n const initialActive = () => {\n const chosen = options.findIndex((o) => selected.has(o.item.value) && !o.item.disabled);\n return chosen >= 0 ? chosen : firstEnabled(0, 1);\n };\n const [active, setActive] = useState(initialActive);\n const signature = useMemo(() => `${query.trim()}\\u0000${options.map((o) => o.item.value).join(\"\\u0000\")}`, [options, query]);\n const [shownFor, setShownFor] = useState(signature);\n if (shownFor !== signature) {\n setShownFor(signature);\n setActive(query.trim() ? firstEnabled(0, 1) : initialActive());\n }\n const activeRef = useRef(active);\n activeRef.current = active;\n\n const scroller = useRef<HTMLDivElement | null>(null);\n const virtual = rows.length > VIRTUALIZE_ABOVE;\n const virtualizer = useVirtualizer<HTMLDivElement, Element>({\n enabled: virtual,\n count: rows.length,\n getScrollElement: () => scroller.current,\n estimateSize: (i) => (rows[i]?.kind === \"header\" ? HEADER : rowHeight),\n overscan: 8,\n useFlushSync: false,\n paddingStart: EDGE,\n paddingEnd: EDGE,\n scrollPaddingStart: labelled ? HEADER : 0,\n observeElementRect: observeWithFallback,\n initialRect: { width: 0, height: FALLBACK_VIEWPORT },\n rangeExtractor: (range: Range) => {\n const activeRow = options[activeRef.current]?.row;\n const keep = defaultRangeExtractor(range);\n return activeRow === undefined || keep.includes(activeRow) ? keep : [...keep, activeRow].sort((a, b) => a - b);\n },\n });\n const keyboardMove = useRef(false);\n useLayoutEffect(() => {\n if (virtual) virtualizer.measure();\n }, [rowHeight, virtualizer, virtual]);\n const reveal = (row: number, align: \"auto\" | \"center\") => {\n if (virtual) return virtualizer.scrollToIndex(row, { align });\n const option = options.find((o) => o.row === row);\n const el = option ? document.getElementById(optionId(options.indexOf(option))) : null;\n el?.scrollIntoView?.({ block: align === \"auto\" ? \"nearest\" : \"center\" });\n };\n useEffect(() => {\n const row = options[active]?.row;\n if (row === undefined) return;\n if (keyboardMove.current) {\n keyboardMove.current = false;\n reveal(row, \"auto\");\n }\n });\n const opened = useRef(false);\n useLayoutEffect(() => {\n if (opened.current) return;\n opened.current = true;\n const row = options[active]?.row;\n if (row !== undefined && row > 0) reveal(row, \"center\");\n });\n\n const setQuery = (next: string) => {\n if (controlledQuery === undefined) setOwnQuery(next);\n onQueryChange?.(next);\n };\n const move = (to: number) => {\n if (to < 0) return;\n keyboardMove.current = true;\n setActive(to);\n };\n const page = Math.max(1, Math.floor((scroller.current?.clientHeight || FALLBACK_VIEWPORT) / rowHeight) - 1);\n const choose = (i: number) => {\n const o = options[i];\n if (!o || o.item.disabled) return;\n setActive(i);\n onSelect?.(o.item.value);\n };\n const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n onInputKeyDown?.(e);\n if (e.defaultPrevented || e.altKey || e.metaKey || e.ctrlKey) return;\n const last = options.length - 1;\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n move(active < 0 ? firstEnabled(0, 1) : firstEnabled(active + 1, 1) >= 0 ? firstEnabled(active + 1, 1) : firstEnabled(0, 1));\n break;\n case \"ArrowUp\":\n e.preventDefault();\n move(active < 0 ? firstEnabled(last, -1) : firstEnabled(active - 1, -1) >= 0 ? firstEnabled(active - 1, -1) : firstEnabled(last, -1));\n break;\n case \"Home\":\n if (e.shiftKey) return;\n e.preventDefault();\n move(firstEnabled(0, 1));\n break;\n case \"End\":\n if (e.shiftKey) return;\n e.preventDefault();\n move(firstEnabled(last, -1));\n break;\n case \"PageDown\":\n e.preventDefault();\n move(firstEnabled(Math.min(last, Math.max(active, 0) + page), -1));\n break;\n case \"PageUp\":\n e.preventDefault();\n move(firstEnabled(Math.max(0, active - page), 1));\n break;\n case \"Enter\":\n if (active < 0) return;\n e.preventDefault();\n e.stopPropagation();\n choose(active);\n break;\n case \"Escape\":\n if (query && escapeClears) {\n e.preventDefault();\n e.stopPropagation();\n setQuery(\"\");\n } else if (onEscape) {\n e.preventDefault();\n e.stopPropagation();\n onEscape();\n }\n break;\n }\n };\n\n const optionId = (i: number) => `${uid}-${i}-${(options[i]?.item.value ?? \"\").replace(/\\s/g, \"_\")}`;\n const groupLabelId = (gi: number) => `${uid}-g-${gi}`;\n const header = (group: CommandListGroup, gi: number) => {\n const count = query.trim() ? (shown[gi]?.items.length ?? 0) : group.count;\n return (\n <div aria-hidden className={cn(MENU_LABEL, \"sticky top-0 z-10 gap-10 bg-raised px-16\")}>\n {group.leading}\n <span id={groupLabelId(gi)} className=\"min-w-0 truncate\">\n {group.label}\n </span>\n {count !== undefined && <span className=\"ml-auto shrink-0 font-regular text-fg-tertiary tabular\">{count}</span>}\n {count !== undefined && checks && <span className=\"size-16 shrink-0\" />}\n </div>\n );\n };\n const option = (row: Extract<Row, { kind: \"item\" }>) => {\n const { item, option: i } = row;\n const isActive = i === active;\n const isSelected = commands ? isActive : selected.has(item.value);\n const state = { query, active: isActive, selected: isSelected };\n return (\n <div\n id={optionId(i)}\n role=\"option\"\n aria-selected={isSelected}\n aria-setsize={options.length}\n aria-posinset={i + 1}\n {...(item.disabled ? { \"aria-disabled\": true, \"data-disabled\": \"\" } : {})}\n {...(isActive ? { \"data-highlighted\": \"\" } : {})}\n {...(isSelected ? { \"data-selected\": \"\" } : {})}\n onMouseMove={() => !isActive && !item.disabled && setActive(i)}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => choose(i)}\n className={cn(MENU_ITEM, \"group/opt mx-6 w-auto\", look.item)}\n >\n {multiple && <OptionCheckbox />}\n {item.leading}\n {item.render ? (\n <span className=\"flex min-w-0 flex-1 items-center gap-8\">{item.render(state)}</span>\n ) : (\n <span className=\"min-w-0 flex-1 truncate\">\n <Highlight text={item.label} query={query} />\n </span>\n )}\n {item.meta !== undefined && <span className={cn(MENU_HINT, \"pl-8 font-regular\")}>{item.meta}</span>}\n {checks && (\n <span aria-hidden className={cn(\"flex size-16 shrink-0 items-center justify-center text-fg\", !isSelected && \"opacity-0\")}>\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </span>\n )}\n </div>\n );\n };\n\n const indexes = virtual ? virtualizer.getVirtualItems().map((v) => v.index) : rows.map((_, i) => i);\n const rendered = new Map<number, number[]>();\n for (const index of indexes) {\n const row = rows[index];\n if (!row) continue;\n const list = rendered.get(row.gi) ?? [];\n if (row.kind === \"item\") list.push(index);\n rendered.set(row.gi, list);\n }\n const empty = rows.length === 0;\n return (\n <div\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\"relative flex min-w-0 flex-col overflow-hidden\", KAESO_COMMAND_LIST_VARIANTS.height[height].classes, className)}\n {...(fitted ? { style: fitted } : {})}\n >\n {loading && (\n <span aria-hidden className=\"absolute inset-x-0 top-0 h-2 overflow-hidden\">\n <span className=\"block h-full w-1/3 animate-indeterminate bg-fg-tertiary\" />\n </span>\n )}\n <div\n onMouseDown={(e) => {\n if (e.target !== e.currentTarget) return;\n e.preventDefault();\n e.currentTarget.querySelector(\"input\")?.focus();\n }}\n className={cn(\"flex shrink-0 cursor-text items-center hairline-b\", look.search)}\n >\n <Icon icon={__icon_Search01Icon} size={size === \"lg\" ? \"md\" : \"sm\"} className=\"text-fg-tertiary\" />\n {searchPrefix}\n <input\n ref={ref}\n {...inputProps}\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-label={placeholder ?? t(\"commandList.search\", \"Search\")}\n {...(active >= 0 && options.length > 0 ? { \"aria-activedescendant\": optionId(active) } : {})}\n {...(autoFocus ? { autoFocus: true, \"data-autofocus\": \"\" } : {})}\n type=\"text\"\n autoComplete=\"off\"\n spellCheck={false}\n placeholder={placeholder ?? t(\"commandList.search\", \"Search\")}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={onKeyDown}\n className={cn(\"min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary\", look.input)}\n />\n </div>\n {toolbar && <div className=\"flex shrink-0 flex-wrap items-center gap-8 px-12 py-8 hairline-b\">{toolbar}</div>}\n <div\n ref={scroller}\n id={listId}\n {...(empty\n ? { role: \"status\" }\n : { role: \"listbox\", \"aria-label\": ariaLabel, ...(multiple ? { \"aria-multiselectable\": true } : {}), ...(loading ? { \"aria-busy\": true } : {}) })}\n data-dialog-body=\"\"\n {...(labelled ? { style: { scrollPaddingTop: HEADER } } : {})}\n className={cn(\"min-h-0 overflow-y-auto overscroll-contain scrollbar-quiet\", height === \"popover\" ? \"flex-initial\" : \"flex-1\")}\n >\n {empty ? (\n <div className=\"flex h-80 items-center justify-center px-16 text-center text-body text-fg-secondary\">\n {loading ? t(\"commandList.loading\", \"Loading…\") : (emptyText ?? t(\"commandList.noResults\", \"No results\"))}\n </div>\n ) : (\n <div role=\"presentation\" className=\"relative w-full\" style={{ height: (offsets[rows.length] ?? 0) + EDGE }}>\n {[...rendered].map(([gi, indexes]) => {\n const span = spans[gi];\n const group = shown[gi]?.group;\n if (!span || !group) return null;\n const top = offsets[span.first] ?? 0;\n const bottom = offsets[span.last + 1] ?? top;\n return (\n <div\n key={group.id}\n {...(group.label ? { role: \"group\", \"aria-labelledby\": groupLabelId(gi) } : { role: \"presentation\" })}\n className=\"absolute left-0 w-full\"\n style={{ top, height: bottom - top }}\n >\n {group.label && header(group, gi)}\n {indexes.map((index) => {\n const row = rows[index];\n return row?.kind === \"item\" ? (\n <div\n key={index}\n role=\"presentation\"\n className=\"absolute left-0 w-full\"\n style={{ top: (offsets[index] ?? 0) - top, height: (offsets[index + 1] ?? 0) - (offsets[index] ?? 0) }}\n >\n {option(row)}\n </div>\n ) : null;\n })}\n </div>\n );\n })}\n </div>\n )}\n </div>\n {footer}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CommandList.displayName = \"CommandList\";\n"],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
3
- import { t } from "./tone-CWpsHPb6.js";
4
- import { forwardRef as n } from "react";
5
- import { jsx as r } from "react/jsx-runtime";
6
- //#region src/components/table/table.tsx
7
- var i = { align: {
8
- start: { classes: "text-left" },
9
- end: { classes: "text-right tabular" }
10
- } }, a = { align: "start" }, o = /* @__PURE__ */ n(function({ className: t, ...n }, i) {
11
- return /* @__PURE__ */ r("table", {
12
- ref: i,
13
- className: e("w-full border-collapse text-body", t),
14
- ...n
15
- });
16
- });
17
- process.env.NODE_ENV !== "production" && (o.displayName = "Table");
18
- var s = /* @__PURE__ */ n(function(e, t) {
19
- return /* @__PURE__ */ r("thead", {
20
- ref: t,
21
- ...e
22
- });
23
- });
24
- process.env.NODE_ENV !== "production" && (s.displayName = "Table.Head");
25
- var c = /* @__PURE__ */ n(function(e, t) {
26
- return /* @__PURE__ */ r("tbody", {
27
- ref: t,
28
- ...e
29
- });
30
- });
31
- process.env.NODE_ENV !== "production" && (c.displayName = "Table.Body");
32
- var l = /* @__PURE__ */ n(function({ className: t, ...n }, i) {
33
- return /* @__PURE__ */ r("tr", {
34
- ref: i,
35
- className: e("hairline-b last:shadow-none", t),
36
- ...n
37
- });
38
- });
39
- process.env.NODE_ENV !== "production" && (l.displayName = "Table.Row");
40
- var u = /* @__PURE__ */ n(function({ align: t = "start", className: n, ...a }, o) {
41
- return /* @__PURE__ */ r("th", {
42
- ref: o,
43
- scope: "col",
44
- className: e("h-36 px-12 text-caption font-medium whitespace-nowrap text-fg-secondary hairline-b-strong first:pl-0 last:pr-0", i.align[t].classes, n),
45
- ...a
46
- });
47
- });
48
- process.env.NODE_ENV !== "production" && (u.displayName = "Table.HeaderCell");
49
- var d = /* @__PURE__ */ n(function({ align: n = "start", tone: a, className: o, ...s }, c) {
50
- return /* @__PURE__ */ r("td", {
51
- ref: c,
52
- className: e("h-44 px-12 py-12 align-middle text-fg first:pl-0 last:pr-0", i.align[n].classes, a && t[a], o),
53
- ...s
54
- });
55
- });
56
- process.env.NODE_ENV !== "production" && (d.displayName = "Table.Cell");
57
- var f = /* @__PURE__ */ Object.assign(o, {
58
- Head: s,
59
- Body: c,
60
- Row: l,
61
- HeaderCell: u,
62
- Cell: d
63
- });
64
- //#endregion
65
- export { i as n, f as r, a as t };
66
-
67
- //# sourceMappingURL=table-CTxDp7zC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-CTxDp7zC.js","names":["cn","KAESO_TABLE_VARIANTS","KAESO_TABLE_DEFAULT_VARIANTS","Root","props","className","Head","Body","Row","HeaderCell","align","Cell","tone","STATUS_TONE_TEXT","Table"],"sources":["../../src/components/table/table.tsx"],"sourcesContent":["import { forwardRef, 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} as const;\nexport const KAESO_TABLE_DEFAULT_VARIANTS = { align: \"start\" } as const;\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(function Table({ className, ...props }, ref) {\n return <table ref={ref} className={cn(\"w-full border-collapse text-body\", className)} {...props} />;\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<HTMLTableCellElement, Omit<ThHTMLAttributes<HTMLTableCellElement>, \"align\"> & { align?: \"start\" | \"end\" | undefined }>(\n function TableHeaderCell({ align = \"start\", className, ...props }, ref) {\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cn(\n \"h-36 px-12 text-caption font-medium whitespace-nowrap text-fg-secondary hairline-b-strong first:pl-0 last:pr-0\",\n KAESO_TABLE_VARIANTS.align[align].classes,\n className,\n )}\n {...props}\n />\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 return (\n <td\n ref={ref}\n className={cn(\n \"h-44 px-12 py-12 align-middle text-fg first:pl-0 last:pr-0\",\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,EAClC,OAAO;CACL,OAAO,EAAE,SAAS,YAAY;CAC9B,KAAK,EAAE,SAAS,qBAAqB;AACvC,EACF,GACaC,IAA+B,EAAE,OAAO,QAAQ,GAEvDC,IAAuB,kBAA+D,SAAe,EAAE,cAAW,GAAGC,KAAS,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,WAAWJ,EAAG,oCAAoCK,CAAS;EAAG,GAAID;CAAQ,CAAA;AACpG,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAC9D,IAAME,IAAuB,kBAA6E,SAAmB,GAAO,GAAK;CACvI,OAAO,kBAAC,SAAD;EAAY;EAAK,GAAIF;CAAQ,CAAA;AACtC,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,IAAsB,kBAAqE,SAAkB,EAAE,cAAW,GAAGJ,KAAS,GAAK;CAC/I,OAAO,kBAAC,MAAD;EAAS;EAAK,WAAWJ,EAAG,+BAA+BK,CAAS;EAAG,GAAID;CAAQ,CAAA;AAC5F,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAI,cAAc;AAC7D,IAAMK,IAA6B,kBACjC,SAAyB,EAAE,WAAQ,SAAS,cAAW,GAAGL,KAAS,GAAK;CACtE,OACE,kBAAC,MAAD;EACO;EACL,OAAM;EACN,WAAWJ,EACT,kHACAC,EAAqB,MAAMS,EAAM,CAAC,SAClCL,CACF;EACA,GAAID;CACL,CAAA;AAEL,CACF;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc;AAKpE,IAAMO,IAAuB,kBAAiD,SAAmB,EAAE,WAAQ,SAAS,SAAM,cAAW,GAAGP,KAAS,GAAK;CACpJ,OACE,kBAAC,MAAD;EACO;EACL,WAAWJ,EACT,8DACAC,EAAqB,MAAMS,EAAM,CAAC,SAClCE,KAAQC,EAAiBD,IACzBP,CACF;EACA,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,IAAaU,IAAwB,uBAAO,OAAOX,GAAM;CAAE;CAAM;CAAM;CAAK;CAAY;AAAK,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-area.js","names":["BaseScrollArea","cn","ScrollArea$1","KAESO_SCROLL_AREA_VARIANTS","KAESO_SCROLL_AREA_DEFAULT_VARIANTS","Bar","orientation","ScrollArea","label","CSPProvider","className","viewportClassName"],"sources":["../../src/components/scroll-area/scroll-area.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { CSPProvider } from \"@base-ui/react/csp-provider\";\nimport { ScrollArea as BaseScrollArea } from \"@base-ui/react/scroll-area\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SCROLL_AREA_VARIANTS = {\n orientation: {\n vertical: { classes: \"scroll-axis-y scroll-fade-y\" },\n horizontal: { classes: \"scroll-axis-x scroll-fade-x\" },\n both: { classes: \"scroll-axis-both\" },\n },\n} as const;\nexport const KAESO_SCROLL_AREA_DEFAULT_VARIANTS = { orientation: \"vertical\" } as const;\n\nexport interface ScrollAreaProps {\n children: ReactNode;\n orientation?: keyof typeof KAESO_SCROLL_AREA_VARIANTS.orientation | undefined;\n className?: string | undefined;\n viewportClassName?: string | undefined;\n \"aria-label\"?: string | undefined;\n}\n\nconst Bar = ({ orientation }: { orientation: \"vertical\" | \"horizontal\" }) => (\n <BaseScrollArea.Scrollbar\n orientation={orientation}\n className={cn(\n \"flex touch-none p-2 opacity-0 select-none transition-control data-hovering:opacity-100 data-scrolling:opacity-100\",\n orientation === \"vertical\" ? \"w-10\" : \"h-10 flex-col\",\n )}\n >\n <BaseScrollArea.Thumb className=\"flex-1 rounded-pill bg-line-strong\" />\n </BaseScrollArea.Scrollbar>\n);\n\nexport const ScrollArea = /* @__PURE__ */ forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(\n { children, orientation = \"vertical\", className, viewportClassName, \"aria-label\": label },\n ref,\n) {\n return (\n <CSPProvider disableStyleElements>\n <BaseScrollArea.Root ref={ref} className={cn(\"relative min-h-0 overflow-hidden\", className)}>\n <BaseScrollArea.Viewport\n className={cn(\"size-full focus-ring-inset\", KAESO_SCROLL_AREA_VARIANTS.orientation[orientation].classes, viewportClassName)}\n {...(label ? { role: \"region\", \"aria-label\": label } : {})}\n >\n {children}\n </BaseScrollArea.Viewport>\n {orientation !== \"horizontal\" && <Bar orientation=\"vertical\" />}\n {orientation !== \"vertical\" && <Bar orientation=\"horizontal\" />}\n {orientation === \"both\" && <BaseScrollArea.Corner />}\n </BaseScrollArea.Root>\n </CSPProvider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ScrollArea.displayName = \"ScrollArea\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAA6B,EACxC,aAAa;CACX,UAAU,EAAE,SAAS,8BAA8B;CACnD,YAAY,EAAE,SAAS,8BAA8B;CACrD,MAAM,EAAE,SAAS,mBAAmB;AACtC,EACF,GACaC,IAAqC,EAAE,aAAa,WAAW,GAUtEC,KAAO,EAAE,qBACb,kBAACL,EAAe,WAAhB;CACe;CACb,WAAWC,EACT,qHACAK,MAAgB,aAAa,SAAS,eACxC;CAEA,UAAA,kBAACN,EAAe,OAAhB,EAAsB,WAAU,qCAAsC,CAAA;AAC9C,CAAA,GAGfO,IAA6B,kBAA4C,SACpF,EAAE,aAAU,iBAAc,YAAY,cAAW,sBAAmB,cAAcC,KAClF,GACA;CACA,OACE,kBAACC,GAAD;EAAa,sBAAA;EACX,UAAA,kBAACT,EAAe,MAAhB;GAA0B;GAAK,WAAWC,EAAG,oCAAoCS,CAAS;GAA1F,UAAA;IACE,kBAACV,EAAe,UAAhB;KACE,WAAWC,EAAG,8BAA8BE,EAA2B,YAAYG,EAAY,CAAC,SAASK,CAAiB;KAC1H,GAAKH,IAAQ;MAAE,MAAM;MAAU,cAAcA;KAAM,IAAI,CAAC;KAEvD;IACsB,CAAA;IACxBF,MAAgB,gBAAgB,kBAACD,GAAD,EAAK,aAAY,WAAY,CAAA;IAC7DC,MAAgB,cAAc,kBAACD,GAAD,EAAK,aAAY,aAAc,CAAA;IAC7DC,MAAgB,UAAU,kBAACN,EAAe,QAAhB,CAAwB,CAAA;GAChC;;CACV,CAAA;AAEjB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}