@logicplanes/kaeso-ui 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/AGENTS.md +2 -0
  2. package/NOTICE.md +1 -1
  3. package/ai/component-guides.md +249 -24
  4. package/ai/component-registry.json +1044 -67
  5. package/ai/component-registry.md +238 -50
  6. package/ai/icons.md +1 -1
  7. package/ai/tokens.md +7 -3
  8. package/dist/blocks/delete-resource.js +1 -1
  9. package/dist/blocks/pages.js +5 -5
  10. package/dist/blocks/resource-list.js +4 -4
  11. package/dist/chunks/app-frame-B9vrgwaE.js +220 -0
  12. package/dist/chunks/app-frame-B9vrgwaE.js.map +1 -0
  13. package/dist/chunks/{avatar-D2nJNbtC.js → avatar-DOzOhYJr.js} +2 -2
  14. package/dist/chunks/{avatar-D2nJNbtC.js.map → avatar-DOzOhYJr.js.map} +1 -1
  15. package/dist/chunks/{badge-Dkyhs0_j.js → badge-wUHlj7m3.js} +2 -2
  16. package/dist/chunks/{badge-Dkyhs0_j.js.map → badge-wUHlj7m3.js.map} +1 -1
  17. package/dist/chunks/{banner-DxGBPQ7p.js → banner-BBlNFHd-.js} +4 -4
  18. package/dist/chunks/{banner-DxGBPQ7p.js.map → banner-BBlNFHd-.js.map} +1 -1
  19. package/dist/chunks/{button-DQvoOxVQ.js → button-CAPyW-v8.js} +8 -8
  20. package/dist/chunks/{button-DQvoOxVQ.js.map → button-CAPyW-v8.js.map} +1 -1
  21. package/dist/chunks/{calendar-CN3YJi2k.js → calendar-CBeptQFq.js} +2 -2
  22. package/dist/chunks/{calendar-CN3YJi2k.js.map → calendar-CBeptQFq.js.map} +1 -1
  23. package/dist/chunks/{checkbox-BgRdbfCE.js → checkbox-C5yvSS7O.js} +3 -3
  24. package/dist/chunks/{checkbox-BgRdbfCE.js.map → checkbox-C5yvSS7O.js.map} +1 -1
  25. package/dist/chunks/{cn-CidVUKMm.js → cn-DUDmdLpZ.js} +3 -1
  26. package/dist/chunks/cn-DUDmdLpZ.js.map +1 -0
  27. package/dist/chunks/{code-BADhvsgC.js → code-C49NzHUQ.js} +2 -2
  28. package/dist/chunks/{code-BADhvsgC.js.map → code-C49NzHUQ.js.map} +1 -1
  29. package/dist/chunks/{code-block-DxtladFW.js → code-block-DREsvJ-g.js} +24 -21
  30. package/dist/chunks/code-block-DREsvJ-g.js.map +1 -0
  31. package/dist/chunks/{collapsible-Cw_1aem5.js → collapsible-CDQq1Y9x.js} +6 -6
  32. package/dist/chunks/collapsible-CDQq1Y9x.js.map +1 -0
  33. package/dist/chunks/combobox-DqtzsAKG.js +314 -0
  34. package/dist/chunks/combobox-DqtzsAKG.js.map +1 -0
  35. package/dist/chunks/command-list-D5k0uvkR.js +417 -0
  36. package/dist/chunks/command-list-D5k0uvkR.js.map +1 -0
  37. package/dist/chunks/{copy-button-DXxn-YYZ.js → copy-button-CNpEnS04.js} +6 -6
  38. package/dist/chunks/{copy-button-DXxn-YYZ.js.map → copy-button-CNpEnS04.js.map} +1 -1
  39. package/dist/chunks/{core-K960A4OT.js → core-CqLWVMDI.js} +36 -36
  40. package/dist/chunks/core-CqLWVMDI.js.map +1 -0
  41. package/dist/chunks/{date-popup-B-6xhb-1.js → date-popup-BgDz6SUj.js} +4 -4
  42. package/dist/chunks/{date-popup-B-6xhb-1.js.map → date-popup-BgDz6SUj.js.map} +1 -1
  43. package/dist/chunks/{de-CTAo4KL7.js → de-CkXZKaBD.js} +37 -5
  44. package/dist/chunks/de-CkXZKaBD.js.map +1 -0
  45. package/dist/chunks/dialog-truWH0qe.js +353 -0
  46. package/dist/chunks/dialog-truWH0qe.js.map +1 -0
  47. package/dist/chunks/{empty-DIbBpytW.js → empty-YXmSkKzR.js} +2 -2
  48. package/dist/chunks/{empty-DIbBpytW.js.map → empty-YXmSkKzR.js.map} +1 -1
  49. package/dist/chunks/{field-d8V94bvZ.js → field-BZriODU7.js} +3 -3
  50. package/dist/chunks/field-BZriODU7.js.map +1 -0
  51. package/dist/chunks/{icon-CeNQtobn.js → icon-BqujXDUc.js} +2 -2
  52. package/dist/chunks/{icon-CeNQtobn.js.map → icon-BqujXDUc.js.map} +1 -1
  53. package/dist/chunks/{icon-button-_x1RUphC.js → icon-button-D4O4puwH.js} +3 -3
  54. package/dist/chunks/{icon-button-_x1RUphC.js.map → icon-button-D4O4puwH.js.map} +1 -1
  55. package/dist/chunks/identity-CsZvAUwu.js +361 -0
  56. package/dist/chunks/identity-CsZvAUwu.js.map +1 -0
  57. package/dist/chunks/{input-CNTfI6YE.js → input-B0wtkcNh.js} +5 -5
  58. package/dist/chunks/{input-CNTfI6YE.js.map → input-B0wtkcNh.js.map} +1 -1
  59. package/dist/chunks/{input-group-CYA1MEoZ.js → input-group-BQLw06B0.js} +33 -27
  60. package/dist/chunks/input-group-BQLw06B0.js.map +1 -0
  61. package/dist/chunks/{inset-BLMdxX4I.js → inset-BnBj8NJV.js} +12 -2
  62. package/dist/chunks/inset-BnBj8NJV.js.map +1 -0
  63. package/dist/chunks/{iso-field-1qmg7TP8.js → iso-field-BUXgY1dB.js} +5 -3
  64. package/dist/chunks/{iso-field-1qmg7TP8.js.map → iso-field-BUXgY1dB.js.map} +1 -1
  65. package/dist/chunks/{json-view-B6KHIWzh.js → json-view-BkG2hTXV.js} +11 -10
  66. package/dist/chunks/{json-view-B6KHIWzh.js.map → json-view-BkG2hTXV.js.map} +1 -1
  67. package/dist/chunks/{kbd-CBcBDvqU.js → kbd-DqWmbr_e.js} +2 -2
  68. package/dist/chunks/{kbd-CBcBDvqU.js.map → kbd-DqWmbr_e.js.map} +1 -1
  69. package/dist/chunks/{link-vz9aV8WX.js → link-YMcxM-BZ.js} +4 -4
  70. package/dist/chunks/{link-vz9aV8WX.js.map → link-YMcxM-BZ.js.map} +1 -1
  71. package/dist/chunks/{link-provider---9JdxTg.js → link-provider-BsUxhZKG.js} +2 -2
  72. package/dist/chunks/{link-provider---9JdxTg.js.map → link-provider-BsUxhZKG.js.map} +1 -1
  73. package/dist/chunks/list-wXZIZo_s.js +492 -0
  74. package/dist/chunks/list-wXZIZo_s.js.map +1 -0
  75. package/dist/chunks/{loader-CUehxvSZ.js → loader-ENBh2Fbt.js} +2 -2
  76. package/dist/chunks/{loader-CUehxvSZ.js.map → loader-ENBh2Fbt.js.map} +1 -1
  77. package/dist/chunks/{markdown-5NyaHHfN.js → markdown-DWyxjsSY.js} +10 -10
  78. package/dist/chunks/{markdown-5NyaHHfN.js.map → markdown-DWyxjsSY.js.map} +1 -1
  79. package/dist/chunks/{menu-DyVPwgfF.js → menu-Bnfi9P3t.js} +7 -7
  80. package/dist/chunks/{menu-DyVPwgfF.js.map → menu-Bnfi9P3t.js.map} +1 -1
  81. package/dist/chunks/{meter-DWhyzFGQ.js → meter-DhTnem4k.js} +2 -2
  82. package/dist/chunks/{meter-DWhyzFGQ.js.map → meter-DhTnem4k.js.map} +1 -1
  83. package/dist/chunks/nav-sheet-QqNRHo-y.js +60 -0
  84. package/dist/chunks/nav-sheet-QqNRHo-y.js.map +1 -0
  85. package/dist/chunks/{nav-wordmark-DLkItdvo.js → nav-wordmark-DmbT1Aiw.js} +2 -2
  86. package/dist/chunks/{nav-wordmark-DLkItdvo.js.map → nav-wordmark-DmbT1Aiw.js.map} +1 -1
  87. package/dist/chunks/option-checkbox-Df7WhGn4.js +25 -0
  88. package/dist/chunks/option-checkbox-Df7WhGn4.js.map +1 -0
  89. package/dist/chunks/over-sheet-B8vzr_zU.js +8 -0
  90. package/dist/chunks/over-sheet-B8vzr_zU.js.map +1 -0
  91. package/dist/chunks/{page-header-CEPZzhRp.js → page-header-Ccnrspbp.js} +5 -5
  92. package/dist/chunks/{page-header-CEPZzhRp.js.map → page-header-Ccnrspbp.js.map} +1 -1
  93. package/dist/chunks/{pagination-CCMxQ5pH.js → pagination-CEmWZNjp.js} +5 -4
  94. package/dist/chunks/{pagination-CCMxQ5pH.js.map → pagination-CEmWZNjp.js.map} +1 -1
  95. package/dist/chunks/picker-popover-C4ElNk7t.js +102 -0
  96. package/dist/chunks/picker-popover-C4ElNk7t.js.map +1 -0
  97. package/dist/chunks/{popover-BE7VO-a4.js → popover-bjxg020P.js} +3 -3
  98. package/dist/chunks/{popover-BE7VO-a4.js.map → popover-bjxg020P.js.map} +1 -1
  99. package/dist/chunks/{radio-CUxbLCvD.js → radio-DwYcXAzv.js} +2 -2
  100. package/dist/chunks/{radio-CUxbLCvD.js.map → radio-DwYcXAzv.js.map} +1 -1
  101. package/dist/chunks/range-popup-CG9Jo5B7.js +128 -0
  102. package/dist/chunks/range-popup-CG9Jo5B7.js.map +1 -0
  103. package/dist/chunks/release-art-Chd8l9Rf.js +555 -0
  104. package/dist/chunks/release-art-Chd8l9Rf.js.map +1 -0
  105. package/dist/chunks/{resize-motion-CMaidkwe.js → resize-motion-BWGMchyP.js} +27 -23
  106. package/dist/chunks/resize-motion-BWGMchyP.js.map +1 -0
  107. package/dist/chunks/{rights-BbiJ0AJB.js → rights-hMoaFasn.js} +12 -12
  108. package/dist/chunks/rights-hMoaFasn.js.map +1 -0
  109. package/dist/chunks/{section-DzOLLN1p.js → section-BsET7Fo-.js} +4 -4
  110. package/dist/chunks/{section-DzOLLN1p.js.map → section-BsET7Fo-.js.map} +1 -1
  111. package/dist/chunks/{segmented-MrinfDL8.js → segmented-DXKVF-nY.js} +4 -4
  112. package/dist/chunks/{segmented-MrinfDL8.js.map → segmented-DXKVF-nY.js.map} +1 -1
  113. package/dist/chunks/{select-Bc4kRiSG.js → select-Bbv2f5F8.js} +63 -80
  114. package/dist/chunks/select-Bbv2f5F8.js.map +1 -0
  115. package/dist/chunks/{separator-D5AzVFTS.js → separator-CpAUELNs.js} +2 -2
  116. package/dist/chunks/{separator-D5AzVFTS.js.map → separator-CpAUELNs.js.map} +1 -1
  117. package/dist/chunks/{sidebar-5IA18LuP.js → sidebar-Dey1ZfGt.js} +54 -51
  118. package/dist/chunks/sidebar-Dey1ZfGt.js.map +1 -0
  119. package/dist/chunks/{sidebar-menu-DRWRxcJ3.js → sidebar-menu-ct8IiL4z.js} +2 -2
  120. package/dist/chunks/{sidebar-menu-DRWRxcJ3.js.map → sidebar-menu-ct8IiL4z.js.map} +1 -1
  121. package/dist/chunks/{skeleton-kfuqdl1a.js → skeleton-BM797MAg.js} +2 -2
  122. package/dist/chunks/{skeleton-kfuqdl1a.js.map → skeleton-BM797MAg.js.map} +1 -1
  123. package/dist/chunks/{slider-DbhjJ3ML.js → slider-Ds-tqY-1.js} +2 -2
  124. package/dist/chunks/{slider-DbhjJ3ML.js.map → slider-Ds-tqY-1.js.map} +1 -1
  125. package/dist/chunks/status-dot-BqVOlShY.js +29 -0
  126. package/dist/chunks/status-dot-BqVOlShY.js.map +1 -0
  127. package/dist/chunks/{styles-Btvg2DCf.js → styles-CVJU9t9v.js} +2 -2
  128. package/dist/chunks/{styles-Btvg2DCf.js.map → styles-CVJU9t9v.js.map} +1 -1
  129. package/dist/chunks/{swap-text-BhPI8DOf.js → swap-text-Cica0pUr.js} +2 -2
  130. package/dist/chunks/{swap-text-BhPI8DOf.js.map → swap-text-Cica0pUr.js.map} +1 -1
  131. package/dist/chunks/{switch-XMY_CQE-.js → switch-CSKMEomo.js} +3 -3
  132. package/dist/chunks/{switch-XMY_CQE-.js.map → switch-CSKMEomo.js.map} +1 -1
  133. package/dist/chunks/{table-DYKa86af.js → table-D-36EM7f.js} +2 -2
  134. package/dist/chunks/{table-DYKa86af.js.map → table-D-36EM7f.js.map} +1 -1
  135. package/dist/chunks/{tag-Dg89uYpV.js → tag-CwDKXVHj.js} +4 -4
  136. package/dist/chunks/{tag-Dg89uYpV.js.map → tag-CwDKXVHj.js.map} +1 -1
  137. package/dist/chunks/{text--5MKh2G4.js → text-Dvvgg5Jt.js} +3 -3
  138. package/dist/chunks/{text--5MKh2G4.js.map → text-Dvvgg5Jt.js.map} +1 -1
  139. package/dist/chunks/{textarea-Cj8iR82R.js → textarea-2d373OyU.js} +35 -31
  140. package/dist/chunks/textarea-2d373OyU.js.map +1 -0
  141. package/dist/chunks/timeseries-LRDAZHV0.js +339 -0
  142. package/dist/chunks/timeseries-LRDAZHV0.js.map +1 -0
  143. package/dist/chunks/{toolbar-Dw3uxpsE.js → toolbar-nVLFWH2i.js} +3 -3
  144. package/dist/chunks/{toolbar-Dw3uxpsE.js.map → toolbar-nVLFWH2i.js.map} +1 -1
  145. package/dist/chunks/{tooltip-DEbCCsru.js → tooltip-S1DmyLVl.js} +4 -4
  146. package/dist/chunks/{tooltip-DEbCCsru.js.map → tooltip-S1DmyLVl.js.map} +1 -1
  147. package/dist/chunks/{tooltip-root-DRd4ciUv.js → tooltip-root-vjylFUqw.js} +4 -4
  148. package/dist/chunks/{tooltip-root-DRd4ciUv.js.map → tooltip-root-vjylFUqw.js.map} +1 -1
  149. package/dist/chunks/{virtual-rows-BZe49bKi.js → virtual-rows-yAMjeAwj.js} +4 -3
  150. package/dist/chunks/virtual-rows-yAMjeAwj.js.map +1 -0
  151. package/dist/chunks/{zh-CN-C7GmVswt.js → zh-CN-CqEA4PCM.js} +37 -5
  152. package/dist/chunks/zh-CN-CqEA4PCM.js.map +1 -0
  153. package/dist/components/app-frame.js +2 -2
  154. package/dist/components/avatar.js +1 -1
  155. package/dist/components/badge.js +1 -1
  156. package/dist/components/banner.js +1 -1
  157. package/dist/components/button-group.js +33 -32
  158. package/dist/components/button-group.js.map +1 -1
  159. package/dist/components/button.js +1 -1
  160. package/dist/components/calendar.js +1 -1
  161. package/dist/components/charts/bar.js +34 -31
  162. package/dist/components/charts/bar.js.map +1 -1
  163. package/dist/components/charts/donut.js +2 -2
  164. package/dist/components/charts/gauge.js +2 -2
  165. package/dist/components/charts/heatmap.js +1 -1
  166. package/dist/components/charts/sankey.js +2 -2
  167. package/dist/components/charts/sparkline.js +1 -1
  168. package/dist/components/charts/timeseries.js +1 -252
  169. package/dist/components/charts.js +3 -3
  170. package/dist/components/checkbox.js +1 -1
  171. package/dist/components/code-block.js +2 -2
  172. package/dist/components/code.js +1 -1
  173. package/dist/components/collapsible.js +1 -1
  174. package/dist/components/combobox.js +1 -1
  175. package/dist/components/command-list.js +4 -0
  176. package/dist/components/command-palette.js +120 -171
  177. package/dist/components/command-palette.js.map +1 -1
  178. package/dist/components/copy-button.js +1 -1
  179. package/dist/components/data-table.js +251 -193
  180. package/dist/components/data-table.js.map +1 -1
  181. package/dist/components/date-picker.js +7 -7
  182. package/dist/components/date-picker.js.map +1 -1
  183. package/dist/components/dialog.js +7 -9
  184. package/dist/components/dialog.js.map +1 -1
  185. package/dist/components/display-options.js +67 -53
  186. package/dist/components/display-options.js.map +1 -1
  187. package/dist/components/empty.js +1 -1
  188. package/dist/components/field.js +1 -1
  189. package/dist/components/filter-chip.js +138 -63
  190. package/dist/components/filter-chip.js.map +1 -1
  191. package/dist/components/filter-row.js +2 -2
  192. package/dist/components/flow.js +2 -2
  193. package/dist/components/heading.js +1 -1
  194. package/dist/components/icon-button.js +1 -1
  195. package/dist/components/icon.js +1 -1
  196. package/dist/components/input.js +56 -54
  197. package/dist/components/input.js.map +1 -1
  198. package/dist/components/kaeso/conversation.js +88 -79
  199. package/dist/components/kaeso/conversation.js.map +1 -1
  200. package/dist/components/kaeso/identity.js +1 -1
  201. package/dist/components/kaeso/moments.js +8 -8
  202. package/dist/components/kaeso/moments.js.map +1 -1
  203. package/dist/components/kaeso/rights.js +1 -1
  204. package/dist/components/kaeso/usage.js +6 -6
  205. package/dist/components/kaeso/usage.js.map +1 -1
  206. package/dist/components/kaeso.js +212 -84
  207. package/dist/components/kaeso.js.map +1 -1
  208. package/dist/components/kbd.js +1 -1
  209. package/dist/components/key-value.js +3 -3
  210. package/dist/components/label.js +1 -1
  211. package/dist/components/layout.js +1 -1
  212. package/dist/components/link.js +1 -1
  213. package/dist/components/list.js +1 -1
  214. package/dist/components/loader.js +2 -2
  215. package/dist/components/logo.js +2 -2
  216. package/dist/components/markdown.js +1 -1
  217. package/dist/components/menu.js +2 -2
  218. package/dist/components/meter.js +1 -1
  219. package/dist/components/page-header.js +1 -1
  220. package/dist/components/pagination.js +1 -1
  221. package/dist/components/playground.js +654 -381
  222. package/dist/components/playground.js.map +1 -1
  223. package/dist/components/popover.js +2 -2
  224. package/dist/components/qr-code.js +1 -1
  225. package/dist/components/radio.js +1 -1
  226. package/dist/components/release-art.js +2 -0
  227. package/dist/components/scroll-area.js +1 -1
  228. package/dist/components/section.js +1 -1
  229. package/dist/components/segmented.js +1 -1
  230. package/dist/components/select.js +1 -1
  231. package/dist/components/separator.js +1 -1
  232. package/dist/components/settings.js +3 -3
  233. package/dist/components/sheet.js +69 -52
  234. package/dist/components/sheet.js.map +1 -1
  235. package/dist/components/sidebar.js +1 -1
  236. package/dist/components/skeleton.js +1 -1
  237. package/dist/components/slider.js +1 -1
  238. package/dist/components/stat.js +88 -74
  239. package/dist/components/stat.js.map +1 -1
  240. package/dist/components/status-dot.js +1 -1
  241. package/dist/components/surface.js +1 -1
  242. package/dist/components/swap-text.js +1 -1
  243. package/dist/components/switch.js +1 -1
  244. package/dist/components/table.js +1 -1
  245. package/dist/components/tabs.js +48 -49
  246. package/dist/components/tabs.js.map +1 -1
  247. package/dist/components/tag.js +1 -1
  248. package/dist/components/text.js +1 -1
  249. package/dist/components/theme-image.js +1 -1
  250. package/dist/components/theme-menu.js +2 -2
  251. package/dist/components/theme-select.js +1 -1
  252. package/dist/components/timeline.js +1 -1
  253. package/dist/components/toast.js +4 -4
  254. package/dist/components/toc.js +1 -1
  255. package/dist/components/toolbar.js +1 -1
  256. package/dist/components/tooltip.js +1 -1
  257. package/dist/components/visually-hidden.js +1 -1
  258. package/dist/format.js +132 -79
  259. package/dist/format.js.map +1 -1
  260. package/dist/i18n-provider.js +1 -1
  261. package/dist/index.js +115 -111
  262. package/dist/kaeso.css +43 -8
  263. package/dist/styles.css +1 -1
  264. package/dist/types/components/charts/bar.d.ts +6 -0
  265. package/dist/types/components/charts/core.d.ts +2 -2
  266. package/dist/types/components/charts/docs.d.ts +7 -0
  267. package/dist/types/components/charts/time-axis.d.ts +5 -0
  268. package/dist/types/components/charts/timeseries.d.ts +9 -0
  269. package/dist/types/components/code-block/highlighter.d.ts +2 -0
  270. package/dist/types/components/combobox/combobox.d.ts +2 -0
  271. package/dist/types/components/combobox/docs.d.ts +2 -4
  272. package/dist/types/components/command-list/command-list.d.ts +84 -0
  273. package/dist/types/components/command-list/docs.d.ts +52 -0
  274. package/dist/types/components/command-list/index.d.ts +3 -0
  275. package/dist/types/components/command-list/match.d.ts +1 -0
  276. package/dist/types/components/command-list/picker-popover.d.ts +44 -0
  277. package/dist/types/components/data-table/data-table.d.ts +3 -2
  278. package/dist/types/components/data-table/docs.d.ts +1 -0
  279. package/dist/types/components/date-picker/docs.d.ts +0 -6
  280. package/dist/types/components/dialog/dialog.d.ts +24 -0
  281. package/dist/types/components/dialog/docs.d.ts +4 -0
  282. package/dist/types/components/display-options/display-options.d.ts +1 -0
  283. package/dist/types/components/filter-chip/docs.d.ts +4 -0
  284. package/dist/types/components/filter-chip/filter-chip.d.ts +7 -0
  285. package/dist/types/components/input/docs.d.ts +2 -12
  286. package/dist/types/components/input/number-input.d.ts +1 -0
  287. package/dist/types/components/input/tag-input.d.ts +1 -0
  288. package/dist/types/components/kaeso/docs.d.ts +34 -0
  289. package/dist/types/components/kaeso/identity.d.ts +10 -1
  290. package/dist/types/components/kaeso/index.d.ts +1 -0
  291. package/dist/types/components/kaeso/provider-marks.d.ts +5 -1
  292. package/dist/types/components/kaeso/provider-picker.d.ts +42 -0
  293. package/dist/types/components/list/docs.d.ts +2 -0
  294. package/dist/types/components/list/list.d.ts +2 -0
  295. package/dist/types/components/menu/styles.d.ts +1 -1
  296. package/dist/types/components/playground/docs.d.ts +32 -0
  297. package/dist/types/components/playground/index.d.ts +1 -0
  298. package/dist/types/components/playground/model-picker.d.ts +39 -4
  299. package/dist/types/components/playground/reasoning.d.ts +29 -0
  300. package/dist/types/components/playground/response-view.d.ts +7 -1
  301. package/dist/types/components/release-art/docs.d.ts +13 -0
  302. package/dist/types/components/release-art/drawing.d.ts +48 -0
  303. package/dist/types/components/release-art/index.d.ts +1 -0
  304. package/dist/types/components/release-art/release-art.d.ts +37 -0
  305. package/dist/types/components/select/docs.d.ts +0 -2
  306. package/dist/types/components/select/option-checkbox.d.ts +1 -0
  307. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  308. package/dist/types/components/stat/docs.d.ts +1 -0
  309. package/dist/types/components/stat/stat.d.ts +1 -0
  310. package/dist/types/components/status-dot/docs.d.ts +2 -0
  311. package/dist/types/components/status-dot/status-dot.d.ts +2 -0
  312. package/dist/types/format/index.d.ts +8 -0
  313. package/dist/types/index.d.ts +2 -0
  314. package/dist/types/utils/index.d.ts +1 -1
  315. package/dist/types/utils/inset.d.ts +5 -0
  316. package/dist/types/utils/over-sheet.d.ts +1 -0
  317. package/dist/types/utils/restore-focus.d.ts +1 -1
  318. package/dist/utils.js +4 -4
  319. package/foundations/accessibility.md +1 -0
  320. package/foundations/layout.md +45 -0
  321. package/foundations/writing.md +1 -0
  322. package/package.json +2 -2
  323. package/dist/chunks/app-frame-BXh-06HL.js +0 -214
  324. package/dist/chunks/app-frame-BXh-06HL.js.map +0 -1
  325. package/dist/chunks/cn-CidVUKMm.js.map +0 -1
  326. package/dist/chunks/code-block-DxtladFW.js.map +0 -1
  327. package/dist/chunks/collapsible-Cw_1aem5.js.map +0 -1
  328. package/dist/chunks/combobox-D30Wt11R.js +0 -291
  329. package/dist/chunks/combobox-D30Wt11R.js.map +0 -1
  330. package/dist/chunks/core-K960A4OT.js.map +0 -1
  331. package/dist/chunks/de-CTAo4KL7.js.map +0 -1
  332. package/dist/chunks/dialog-LNKgPEsV.js +0 -319
  333. package/dist/chunks/dialog-LNKgPEsV.js.map +0 -1
  334. package/dist/chunks/field-d8V94bvZ.js.map +0 -1
  335. package/dist/chunks/field-press-DwzBFafd.js +0 -10
  336. package/dist/chunks/field-press-DwzBFafd.js.map +0 -1
  337. package/dist/chunks/identity-BtZC_d_Q.js +0 -342
  338. package/dist/chunks/identity-BtZC_d_Q.js.map +0 -1
  339. package/dist/chunks/input-group-CYA1MEoZ.js.map +0 -1
  340. package/dist/chunks/inset-BLMdxX4I.js.map +0 -1
  341. package/dist/chunks/list-CzaiyNja.js +0 -483
  342. package/dist/chunks/list-CzaiyNja.js.map +0 -1
  343. package/dist/chunks/nav-sheet-BIErlV74.js +0 -58
  344. package/dist/chunks/nav-sheet-BIErlV74.js.map +0 -1
  345. package/dist/chunks/range-popup-DGOnGGag.js +0 -111
  346. package/dist/chunks/range-popup-DGOnGGag.js.map +0 -1
  347. package/dist/chunks/resize-motion-CMaidkwe.js.map +0 -1
  348. package/dist/chunks/rights-BbiJ0AJB.js.map +0 -1
  349. package/dist/chunks/select-Bc4kRiSG.js.map +0 -1
  350. package/dist/chunks/sidebar-5IA18LuP.js.map +0 -1
  351. package/dist/chunks/status-dot-CBoQpyL4.js +0 -25
  352. package/dist/chunks/status-dot-CBoQpyL4.js.map +0 -1
  353. package/dist/chunks/textarea-Cj8iR82R.js.map +0 -1
  354. package/dist/chunks/virtual-rows-BZe49bKi.js.map +0 -1
  355. package/dist/chunks/zh-CN-C7GmVswt.js.map +0 -1
  356. package/dist/components/charts/timeseries.js.map +0 -1
@@ -1,30 +1,30 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
3
  import { t } from "../chunks/dev-CR1p7gCm.js";
4
- import { i as n } from "../chunks/context-BELWW79w.js";
5
- import { t as r } from "../chunks/icon-CeNQtobn.js";
6
- import { t as i } from "../chunks/icon-button-_x1RUphC.js";
7
- import { a } from "../chunks/tag-Dg89uYpV.js";
8
- import { r as o } from "../chunks/switch-XMY_CQE-.js";
9
- import { r as s } from "../chunks/segmented-MrinfDL8.js";
10
- import { r as c } from "../chunks/select-Bc4kRiSG.js";
11
- import { i as l } from "../chunks/popover-BE7VO-a4.js";
12
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
13
- import { SlidersHorizontalIcon as f } from "@hugeicons/core-free-icons";
4
+ import { i as n, r } from "../chunks/context-BELWW79w.js";
5
+ import { t as i } from "../chunks/icon-BqujXDUc.js";
6
+ import { t as a } from "../chunks/icon-button-D4O4puwH.js";
7
+ import { a as o } from "../chunks/tag-CwDKXVHj.js";
8
+ import { r as s } from "../chunks/switch-CSKMEomo.js";
9
+ import { r as c } from "../chunks/segmented-DXKVF-nY.js";
10
+ import { r as l } from "../chunks/select-Bbv2f5F8.js";
11
+ import { i as u } from "../chunks/popover-bjxg020P.js";
12
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
13
+ import { SlidersHorizontalIcon as p, ViewOffSlashIcon as m } from "@hugeicons/core-free-icons";
14
14
  //#region src/components/display-options/display-options.tsx
15
- var p = { trigger: {
15
+ var h = { trigger: {
16
16
  secondary: { classes: "" },
17
17
  ghost: { classes: "" }
18
- } }, m = { trigger: "secondary" };
19
- function h({ view: e, rows: t, toggles: i, properties: l, footer: f }) {
20
- let p = n();
21
- return /* @__PURE__ */ d("div", {
18
+ } }, g = { trigger: "secondary" };
19
+ function _({ view: e, rows: t, toggles: a, properties: u, footer: p }) {
20
+ let h = n(), g = r(), _ = u ? u.options.filter((e) => u.value.includes(e.value) && u.hidden?.includes(e.value)) : [];
21
+ return /* @__PURE__ */ f("div", {
22
22
  className: "flex w-320 flex-col",
23
23
  children: [
24
- e && /* @__PURE__ */ u("div", {
24
+ e && /* @__PURE__ */ d("div", {
25
25
  className: "p-12 pb-8",
26
- children: /* @__PURE__ */ u(s, {
27
- "aria-label": p("displayOptions.view", "View"),
26
+ children: /* @__PURE__ */ d(c, {
27
+ "aria-label": h("displayOptions.view", "View"),
28
28
  options: e.options,
29
29
  value: e.value,
30
30
  onValueChange: e.onChange,
@@ -33,17 +33,17 @@ function h({ view: e, rows: t, toggles: i, properties: l, footer: f }) {
33
33
  className: "bg-item-hover"
34
34
  })
35
35
  }),
36
- t && t.length > 0 && /* @__PURE__ */ u("div", {
36
+ t && t.length > 0 && /* @__PURE__ */ d("div", {
37
37
  className: "flex flex-col px-12 py-4",
38
- children: t.map((e) => /* @__PURE__ */ d("div", {
38
+ children: t.map((e) => /* @__PURE__ */ f("div", {
39
39
  className: "flex h-40 items-center justify-between gap-12",
40
- children: [/* @__PURE__ */ d("span", {
40
+ children: [/* @__PURE__ */ f("span", {
41
41
  className: "flex items-center gap-8 text-body text-fg-secondary",
42
- children: [e.icon && /* @__PURE__ */ u(r, {
42
+ children: [e.icon && /* @__PURE__ */ d(i, {
43
43
  icon: e.icon,
44
44
  size: "sm"
45
45
  }), e.label]
46
- }), /* @__PURE__ */ u(c, {
46
+ }), /* @__PURE__ */ d(l, {
47
47
  size: "sm",
48
48
  appearance: "default",
49
49
  "aria-label": e.label,
@@ -53,9 +53,9 @@ function h({ view: e, rows: t, toggles: i, properties: l, footer: f }) {
53
53
  })]
54
54
  }, e.label))
55
55
  }),
56
- i && i.length > 0 && /* @__PURE__ */ u("div", {
56
+ a && a.length > 0 && /* @__PURE__ */ d("div", {
57
57
  className: "flex flex-col px-12 py-4 hairline-t",
58
- children: i.map((e) => /* @__PURE__ */ u(o, {
58
+ children: a.map((e) => /* @__PURE__ */ d(s, {
59
59
  size: "sm",
60
60
  label: e.label,
61
61
  checked: e.checked,
@@ -63,50 +63,64 @@ function h({ view: e, rows: t, toggles: i, properties: l, footer: f }) {
63
63
  className: "h-40"
64
64
  }, e.label))
65
65
  }),
66
- l && /* @__PURE__ */ d("div", {
66
+ u && /* @__PURE__ */ f("div", {
67
67
  className: "flex flex-col gap-8 p-12 hairline-t",
68
- children: [/* @__PURE__ */ u("span", {
69
- className: "text-caption font-medium text-fg-secondary",
70
- children: p("displayOptions.properties", "Display properties")
71
- }), /* @__PURE__ */ u("div", {
72
- className: "flex flex-wrap gap-6",
73
- children: l.options.map((e) => {
74
- let t = l.value.includes(e.value);
75
- return /* @__PURE__ */ u(a, {
76
- size: "sm",
77
- variant: t ? "soft" : "outline",
78
- pressed: t,
79
- onClick: () => l.onChange(t ? l.value.filter((t) => t !== e.value) : [...l.value, e.value]),
80
- children: e.label
81
- }, e.value);
68
+ children: [
69
+ /* @__PURE__ */ d("span", {
70
+ className: "text-caption font-medium text-fg-secondary",
71
+ children: h("displayOptions.properties", "Display properties")
72
+ }),
73
+ /* @__PURE__ */ d("div", {
74
+ className: "flex flex-wrap gap-6",
75
+ children: u.options.map((e) => {
76
+ let t = u.value.includes(e.value), n = t && _.includes(e);
77
+ return /* @__PURE__ */ d(o, {
78
+ size: "sm",
79
+ variant: t ? "soft" : "outline",
80
+ pressed: t,
81
+ ...n ? {
82
+ icon: m,
83
+ "aria-description": h("displayOptions.doesNotFit", "Doesn't fit at this width")
84
+ } : {},
85
+ onClick: () => u.onChange(t ? u.value.filter((t) => t !== e.value) : [...u.value, e.value]),
86
+ children: e.label
87
+ }, e.value);
88
+ })
89
+ }),
90
+ _.length > 0 && /* @__PURE__ */ d("span", {
91
+ className: "text-caption text-fg-tertiary",
92
+ children: h("displayOptions.hiddenProperties", "{count, plural, one {{properties} doesn't fit at this width.} other {{properties} don't fit at this width.}}", {
93
+ count: _.length,
94
+ properties: new Intl.ListFormat(g, { type: "conjunction" }).format(_.map((e) => e.label))
95
+ })
82
96
  })
83
- })]
97
+ ]
84
98
  }),
85
- f && /* @__PURE__ */ u("div", {
99
+ p && /* @__PURE__ */ d("div", {
86
100
  className: "p-12 hairline-t",
87
- children: f
101
+ children: p
88
102
  })
89
103
  ]
90
104
  });
91
105
  }
92
- function g({ trigger: r = "secondary", inline: a, ...o }) {
106
+ function v({ trigger: r = "secondary", inline: i, ...o }) {
93
107
  let s = n();
94
- return !o.view && !o.rows?.length && !o.toggles?.length && !o.properties && t("DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful."), a ? /* @__PURE__ */ u("div", {
108
+ return !o.view && !o.rows?.length && !o.toggles?.length && !o.properties && t("DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful."), i ? /* @__PURE__ */ d("div", {
95
109
  className: e("rounded-popover bg-raised shadow-raised"),
96
- children: /* @__PURE__ */ u(h, { ...o })
97
- }) : /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(l.Trigger, { children: /* @__PURE__ */ u(i, {
98
- icon: f,
110
+ children: /* @__PURE__ */ d(_, { ...o })
111
+ }) : /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(u.Trigger, { children: /* @__PURE__ */ d(a, {
112
+ icon: p,
99
113
  "aria-label": s("displayOptions.displayOptions", "Display options"),
100
114
  variant: r
101
- }) }), /* @__PURE__ */ u(l.Content, {
115
+ }) }), /* @__PURE__ */ d(u.Content, {
102
116
  padding: "none",
103
117
  align: "end",
104
118
  "aria-label": s("displayOptions.displayOptions", "Display options"),
105
- children: /* @__PURE__ */ u(h, { ...o })
119
+ children: /* @__PURE__ */ d(_, { ...o })
106
120
  })] });
107
121
  }
108
- process.env.NODE_ENV !== "production" && (g.displayName = "DisplayOptions");
122
+ process.env.NODE_ENV !== "production" && (v.displayName = "DisplayOptions");
109
123
  //#endregion
110
- export { g as DisplayOptions, m as KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS, p as KAESO_DISPLAY_OPTIONS_VARIANTS };
124
+ export { v as DisplayOptions, g as KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS, h as KAESO_DISPLAY_OPTIONS_VARIANTS };
111
125
 
112
126
  //# sourceMappingURL=display-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-options.js","names":["__icon_SlidersHorizontalIcon","cn","useUiText","Icon","IconButton","Switch","Segmented","Select","Popover","KAESO_DISPLAY_OPTIONS_VARIANTS","KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS","Panel","t","view","rows","r","toggles","toggle","properties","on","o","Tag","v","footer","DisplayOptions","props","devWarn","inline","SlidersHorizontalIcon","trigger"],"sources":["../../src/components/display-options/display-options.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { SlidersHorizontalIcon as __icon_SlidersHorizontalIcon } from \"@hugeicons/core-free-icons\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Popover } from \"../popover/popover.js\";\nimport { Segmented, type SegmentedOption } from \"../segmented/segmented.js\";\nimport { Select, type SelectOption } from \"../select/select.js\";\nimport { Switch } from \"../switch/switch.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport type { IconData } from \"../icon/icon.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_DISPLAY_OPTIONS_VARIANTS = {\n trigger: {\n secondary: { classes: \"\" },\n ghost: { classes: \"\" },\n },\n} as const;\nexport const KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS = { trigger: \"secondary\" } as const;\n\nexport interface DisplayOptionsRow {\n label: string;\n icon?: IconData | undefined;\n value: string;\n options: SelectOption[];\n onChange: (value: string) => void;\n}\nexport interface DisplayOptionsToggle {\n label: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport interface DisplayOptionsProps {\n view?: { value: string; options: SegmentedOption[]; onChange: (v: string) => void } | undefined;\n rows?: DisplayOptionsRow[] | undefined;\n toggles?: DisplayOptionsToggle[] | undefined;\n properties?: { options: { value: string; label: string }[]; value: string[]; onChange: (v: string[]) => void } | undefined;\n trigger?: keyof typeof KAESO_DISPLAY_OPTIONS_VARIANTS.trigger | undefined;\n inline?: boolean | undefined;\n footer?: ReactNode | undefined;\n}\n\nfunction Panel({ view, rows, toggles, properties, footer }: DisplayOptionsProps) {\n const t = useUiText();\n return (\n <div className=\"flex w-320 flex-col\">\n {view && (\n <div className=\"p-12 pb-8\">\n <Segmented\n aria-label={t(\"displayOptions.view\", \"View\")}\n options={view.options}\n value={view.value}\n onValueChange={view.onChange}\n fullWidth\n size=\"sm\"\n className=\"bg-item-hover\"\n />\n </div>\n )}\n {rows && rows.length > 0 && (\n <div className=\"flex flex-col px-12 py-4\">\n {rows.map((r) => (\n <div key={r.label} className=\"flex h-40 items-center justify-between gap-12\">\n <span className=\"flex items-center gap-8 text-body text-fg-secondary\">\n {r.icon && <Icon icon={r.icon} size=\"sm\" />}\n {r.label}\n </span>\n <Select size=\"sm\" appearance=\"default\" aria-label={r.label} options={r.options} value={r.value} onValueChange={r.onChange} />\n </div>\n ))}\n </div>\n )}\n {toggles && toggles.length > 0 && (\n <div className=\"flex flex-col px-12 py-4 hairline-t\">\n {toggles.map((toggle) => (\n <Switch key={toggle.label} size=\"sm\" label={toggle.label} checked={toggle.checked} onCheckedChange={toggle.onChange} className=\"h-40\" />\n ))}\n </div>\n )}\n {properties && (\n <div className=\"flex flex-col gap-8 p-12 hairline-t\">\n <span className=\"text-caption font-medium text-fg-secondary\">{t(\"displayOptions.properties\", \"Display properties\")}</span>\n <div className=\"flex flex-wrap gap-6\">\n {properties.options.map((o) => {\n const on = properties.value.includes(o.value);\n return (\n <Tag\n key={o.value}\n size=\"sm\"\n variant={on ? \"soft\" : \"outline\"}\n pressed={on}\n onClick={() => properties.onChange(on ? properties.value.filter((v) => v !== o.value) : [...properties.value, o.value])}\n >\n {o.label}\n </Tag>\n );\n })}\n </div>\n </div>\n )}\n {footer && <div className=\"p-12 hairline-t\">{footer}</div>}\n </div>\n );\n}\n\nexport function DisplayOptions({ trigger = \"secondary\", inline, ...props }: DisplayOptionsProps) {\n const t = useUiText();\n if (!props.view && !props.rows?.length && !props.toggles?.length && !props.properties)\n devWarn(\"DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful.\");\n if (inline) {\n return (\n <div className={cn(\"rounded-popover bg-raised shadow-raised\")}>\n <Panel {...props} />\n </div>\n );\n }\n return (\n <Popover>\n <Popover.Trigger>\n <IconButton icon={__icon_SlidersHorizontalIcon} aria-label={t(\"displayOptions.displayOptions\", \"Display options\")} variant={trigger} />\n </Popover.Trigger>\n <Popover.Content padding=\"none\" align=\"end\" aria-label={t(\"displayOptions.displayOptions\", \"Display options\")}>\n <Panel {...props} />\n </Popover.Content>\n </Popover>\n );\n}\nif (process.env.NODE_ENV !== \"production\") DisplayOptions.displayName = \"DisplayOptions\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"display-options.js","names":["__icon_ViewOffSlashIcon","__icon_SlidersHorizontalIcon","cn","useUiText","Icon","IconButton","Tag","Switch","Segmented","Select","Popover","KAESO_DISPLAY_OPTIONS_VARIANTS","KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS","Panel","t","locale","useLocale","squeezed","properties","o","view","rows","r","toggles","toggle","on","out","ViewOffSlashIcon","v","footer","DisplayOptions","props","devWarn","inline","SlidersHorizontalIcon","trigger"],"sources":["../../src/components/display-options/display-options.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { ViewOffSlashIcon as __icon_ViewOffSlashIcon, SlidersHorizontalIcon as __icon_SlidersHorizontalIcon } from \"@hugeicons/core-free-icons\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Popover } from \"../popover/popover.js\";\nimport { Segmented, type SegmentedOption } from \"../segmented/segmented.js\";\nimport { Select, type SelectOption } from \"../select/select.js\";\nimport { Switch } from \"../switch/switch.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport type { IconData } from \"../icon/icon.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_DISPLAY_OPTIONS_VARIANTS = {\n trigger: {\n secondary: { classes: \"\" },\n ghost: { classes: \"\" },\n },\n} as const;\nexport const KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS = { trigger: \"secondary\" } as const;\n\nexport interface DisplayOptionsRow {\n label: string;\n icon?: IconData | undefined;\n value: string;\n options: SelectOption[];\n onChange: (value: string) => void;\n}\nexport interface DisplayOptionsToggle {\n label: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport interface DisplayOptionsProps {\n view?: { value: string; options: SegmentedOption[]; onChange: (v: string) => void } | undefined;\n rows?: DisplayOptionsRow[] | undefined;\n toggles?: DisplayOptionsToggle[] | undefined;\n properties?: { options: { value: string; label: string }[]; value: string[]; onChange: (v: string[]) => void; hidden?: string[] | undefined } | undefined;\n trigger?: keyof typeof KAESO_DISPLAY_OPTIONS_VARIANTS.trigger | undefined;\n inline?: boolean | undefined;\n footer?: ReactNode | undefined;\n}\n\nfunction Panel({ view, rows, toggles, properties, footer }: DisplayOptionsProps) {\n const t = useUiText();\n const locale = useLocale();\n const squeezed = properties ? properties.options.filter((o) => properties.value.includes(o.value) && properties.hidden?.includes(o.value)) : [];\n return (\n <div className=\"flex w-320 flex-col\">\n {view && (\n <div className=\"p-12 pb-8\">\n <Segmented\n aria-label={t(\"displayOptions.view\", \"View\")}\n options={view.options}\n value={view.value}\n onValueChange={view.onChange}\n fullWidth\n size=\"sm\"\n className=\"bg-item-hover\"\n />\n </div>\n )}\n {rows && rows.length > 0 && (\n <div className=\"flex flex-col px-12 py-4\">\n {rows.map((r) => (\n <div key={r.label} className=\"flex h-40 items-center justify-between gap-12\">\n <span className=\"flex items-center gap-8 text-body text-fg-secondary\">\n {r.icon && <Icon icon={r.icon} size=\"sm\" />}\n {r.label}\n </span>\n <Select size=\"sm\" appearance=\"default\" aria-label={r.label} options={r.options} value={r.value} onValueChange={r.onChange} />\n </div>\n ))}\n </div>\n )}\n {toggles && toggles.length > 0 && (\n <div className=\"flex flex-col px-12 py-4 hairline-t\">\n {toggles.map((toggle) => (\n <Switch key={toggle.label} size=\"sm\" label={toggle.label} checked={toggle.checked} onCheckedChange={toggle.onChange} className=\"h-40\" />\n ))}\n </div>\n )}\n {properties && (\n <div className=\"flex flex-col gap-8 p-12 hairline-t\">\n <span className=\"text-caption font-medium text-fg-secondary\">{t(\"displayOptions.properties\", \"Display properties\")}</span>\n <div className=\"flex flex-wrap gap-6\">\n {properties.options.map((o) => {\n const on = properties.value.includes(o.value);\n const out = on && squeezed.includes(o);\n return (\n <Tag\n key={o.value}\n size=\"sm\"\n variant={on ? \"soft\" : \"outline\"}\n pressed={on}\n {...(out ? { icon: __icon_ViewOffSlashIcon, \"aria-description\": t(\"displayOptions.doesNotFit\", \"Doesn't fit at this width\") } : {})}\n onClick={() => properties.onChange(on ? properties.value.filter((v) => v !== o.value) : [...properties.value, o.value])}\n >\n {o.label}\n </Tag>\n );\n })}\n </div>\n {squeezed.length > 0 && (\n <span className=\"text-caption text-fg-tertiary\">\n {t(\n \"displayOptions.hiddenProperties\",\n \"{count, plural, one {{properties} doesn't fit at this width.} other {{properties} don't fit at this width.}}\",\n {\n count: squeezed.length,\n properties: new Intl.ListFormat(locale, { type: \"conjunction\" }).format(squeezed.map((o) => o.label)),\n },\n )}\n </span>\n )}\n </div>\n )}\n {footer && <div className=\"p-12 hairline-t\">{footer}</div>}\n </div>\n );\n}\n\nexport function DisplayOptions({ trigger = \"secondary\", inline, ...props }: DisplayOptionsProps) {\n const t = useUiText();\n if (!props.view && !props.rows?.length && !props.toggles?.length && !props.properties)\n devWarn(\"DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful.\");\n if (inline) {\n return (\n <div className={cn(\"rounded-popover bg-raised shadow-raised\")}>\n <Panel {...props} />\n </div>\n );\n }\n return (\n <Popover>\n <Popover.Trigger>\n <IconButton icon={__icon_SlidersHorizontalIcon} aria-label={t(\"displayOptions.displayOptions\", \"Display options\")} variant={trigger} />\n </Popover.Trigger>\n <Popover.Content padding=\"none\" align=\"end\" aria-label={t(\"displayOptions.displayOptions\", \"Display options\")}>\n <Panel {...props} />\n </Popover.Content>\n </Popover>\n );\n}\nif (process.env.NODE_ENV !== \"production\") DisplayOptions.displayName = \"DisplayOptions\";\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAaW,IAAiC,EAC5C,SAAS;CACP,WAAW,EAAE,SAAS,GAAG;CACzB,OAAO,EAAE,SAAS,GAAG;AACvB,EACF,GACaC,IAAyC,EAAE,SAAS,YAAY;AAyB7E,SAASC,EAAM,EAAE,SAAM,SAAM,YAAS,eAAY,aAA+B;CAC/E,IAAMC,IAAIX,EAAU,GACdY,IAASC,EAAU,GACnBC,IAAWC,IAAaA,EAAW,QAAQ,QAAQ,MAAMA,EAAW,MAAM,SAASC,EAAE,KAAK,KAAKD,EAAW,QAAQ,SAASC,EAAE,KAAK,CAAC,IAAI,CAAC;CAC9I,OACE,kBAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GACGC,KACC,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAACZ,GAAD;KACE,cAAYM,EAAE,uBAAuB,MAAM;KAC3C,SAASM,EAAK;KACd,OAAOA,EAAK;KACZ,eAAeA,EAAK;KACpB,WAAA;KACA,MAAK;KACL,WAAU;IACX,CAAA;GACE,CAAA;GAENC,KAAQA,EAAK,SAAS,KACrB,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAAA,EAAK,KAAK,MACT,kBAAC,OAAD;KAAmB,WAAU;KAA7B,UAAA,CACE,kBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CACGC,EAAE,QAAQ,kBAAClB,GAAD;OAAM,MAAMkB,EAAE;OAAM,MAAK;MAAM,CAAA,GACzCA,EAAE,KACC;KACN,CAAA,GAAA,kBAACb,GAAD;MAAQ,MAAK;MAAK,YAAW;MAAU,cAAYa,EAAE;MAAO,SAASA,EAAE;MAAS,OAAOA,EAAE;MAAO,eAAeA,EAAE;KAAW,CAAA,CACzH;IANK,GAAAA,EAAE,KAMP,CACN;GACE,CAAA;GAENC,KAAWA,EAAQ,SAAS,KAC3B,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAAA,EAAQ,KAAK,MACZ,kBAAChB,GAAD;KAA2B,MAAK;KAAK,OAAOiB,EAAO;KAAO,SAASA,EAAO;KAAS,iBAAiBA,EAAO;KAAU,WAAU;IAAQ,GAA1HA,EAAO,KAAmH,CACxI;GACE,CAAA;GAENN,KACC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,QAAD;MAAM,WAAU;MAA8C,UAAAJ,EAAE,6BAA6B,oBAAoB;KAAQ,CAAA;KACzH,kBAAC,OAAD;MAAK,WAAU;MACZ,UAAAI,EAAW,QAAQ,KAAK,MAAM;OAC7B,IAAMO,IAAKP,EAAW,MAAM,SAASC,EAAE,KAAK,GACtCO,IAAMD,KAAMR,EAAS,SAASE,CAAC;OACrC,OACE,kBAACb,GAAD;QAEE,MAAK;QACL,SAASmB,IAAK,SAAS;QACvB,SAASA;QACT,GAAKC,IAAM;SAAE,MAAM1B;SAAyB,oBAAoBc,EAAE,6BAA6B,2BAA2B;QAAE,IAAI,CAAC;QACjI,eAAeI,EAAW,SAASO,IAAKP,EAAW,MAAM,QAAQ,MAAMU,MAAMT,EAAE,KAAK,IAAI,CAAC,GAAGD,EAAW,OAAOC,EAAE,KAAK,CAAC;QAErH,UAAAA,EAAE;OACA,GAREA,EAAE,KAQJ;MAET,CAAC;KACE,CAAA;KACJF,EAAS,SAAS,KACjB,kBAAC,QAAD;MAAM,WAAU;MACb,UAAAH,EACC,mCACA,gHACA;OACE,OAAOG,EAAS;OAChB,YAAY,IAAI,KAAK,WAAWF,GAAQ,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,OAAOE,EAAS,KAAK,MAAME,EAAE,KAAK,CAAC;MACtG,CACF;KACI,CAAA;IAEL;;GAENU,KAAU,kBAAC,OAAD;IAAK,WAAU;IAAmB,UAAAA;GAAY,CAAA;EACtD;;AAET;AAEA,SAAgBC,EAAe,EAAE,aAAU,aAAa,WAAQ,GAAGC,KAA8B;CAC/F,IAAMjB,IAAIX,EAAU;CAUpB,OATI,CAAC4B,EAAM,QAAQ,CAACA,EAAM,MAAM,UAAU,CAACA,EAAM,SAAS,UAAU,CAACA,EAAM,cACzEC,EAAQ,yFAAyF,GAC/FC,IAEA,kBAAC,OAAD;EAAK,WAAW/B,EAAG,yCAAyC;EAC1D,UAAA,kBAACW,GAAD,EAAO,GAAIkB,EAAQ,CAAA;CAChB,CAAA,IAIP,kBAACrB,GAAD,EAAA,UAAA,CACE,kBAACA,EAAQ,SAAT,EAAA,UACE,kBAACL,GAAD;EAAY,MAAMJ;EAA8B,cAAYa,EAAE,iCAAiC,iBAAiB;EAAG,SAASqB;CAAU,CAAA,EACvH,CAAA,GACjB,kBAACzB,EAAQ,SAAT;EAAiB,SAAQ;EAAO,OAAM;EAAM,cAAYI,EAAE,iCAAiC,iBAAiB;EAC1G,UAAA,kBAACD,GAAD,EAAO,GAAIkB,EAAQ,CAAA;CACJ,CAAA,CACV,EAAA,CAAA;AAEb;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as Empty, n as KAESO_EMPTY_DEFAULT_VARIANTS, r as KAESO_EMPTY_VARIANTS } from "../chunks/empty-DIbBpytW.js";
2
+ export { t as Empty, n as KAESO_EMPTY_DEFAULT_VARIANTS, r as KAESO_EMPTY_VARIANTS } from "../chunks/empty-YXmSkKzR.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as Field, n as Fieldset, r as KAESO_FIELD_DEFAULT_VARIANTS, i as KAESO_FIELD_VARIANTS, a as useField, o as useFieldControl, s as withField } from "../chunks/field-d8V94bvZ.js";
2
+ export { t as Field, n as Fieldset, r as KAESO_FIELD_DEFAULT_VARIANTS, i as KAESO_FIELD_VARIANTS, a as useField, o as useFieldControl, s as withField } from "../chunks/field-BZriODU7.js";
@@ -1,66 +1,141 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t, r as n } from "../chunks/context-BELWW79w.js";
4
- import { t as r } from "../chunks/icon-CeNQtobn.js";
5
- import { i } from "../chunks/menu-DyVPwgfF.js";
6
- import { forwardRef as a, useEffect as o, useRef as s, useState as c } from "react";
7
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
- import { Cancel01Icon as d } from "@hugeicons/core-free-icons";
4
+ import { t as r } from "../chunks/icon-BqujXDUc.js";
5
+ import { i } from "../chunks/menu-Bnfi9P3t.js";
6
+ import { t as a } from "../chunks/command-list-D5k0uvkR.js";
7
+ import { r as o } from "../chunks/picker-popover-C4ElNk7t.js";
8
+ import { forwardRef as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
9
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
+ import { Cancel01Icon as m } from "@hugeicons/core-free-icons";
9
11
  //#region src/components/filter-chip/filter-chip.tsx
10
- var f = { size: { sm: { classes: "h-32 text-body" } } }, p = { size: "sm" }, m = 8, h = (e) => e.textValue ?? (typeof e.label == "string" || typeof e.label == "number" ? String(e.label) : e.value), g = "relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment", _ = /* @__PURE__ */ a(function({ property: a, propertyIcon: p, operator: _, operators: v, onOperatorChange: y, value: b, values: x, selected: S = [], multiple: C, onSelectedChange: w, onRemove: T, defaultValuesOpen: E, className: D, "data-force": O }, k) {
11
- let A = t(), j = n(), [M, N] = c(!!E && !!x?.length), [P, F] = c(""), I = s(null), L = (x?.length ?? 0) > m, R = P.trim().toLowerCase(), z = L && R ? (x ?? []).filter((e) => h(e).toLowerCase().includes(R) || e.value.toLowerCase().includes(R)) : x ?? [];
12
- return o(() => {
13
- if (!M || !L) return;
14
- let e = setTimeout(() => I.current?.focus(), 0);
12
+ var h = { size: { sm: { classes: "h-32 text-body" } } }, g = { size: "sm" }, _ = 8, v = 50;
13
+ function y(e, t) {
14
+ if (!e.some((e) => e.group)) return e.map(t);
15
+ let n = [];
16
+ for (let t of e) {
17
+ let e = n[n.length - 1];
18
+ e && e.group === t.group ? e.values.push(t) : n.push({
19
+ group: t.group,
20
+ values: [t]
21
+ });
22
+ }
23
+ return n.map((e, n) => /* @__PURE__ */ f(i.Group, {
24
+ label: e.group,
25
+ children: e.values.map(t)
26
+ }, `${e.group ?? ""}:${n}`));
27
+ }
28
+ function b(e) {
29
+ let t = /* @__PURE__ */ new Map();
30
+ for (let n of e) {
31
+ let e = n.group ?? "", i = t.get(e) ?? {
32
+ id: e || "values",
33
+ ...e ? { label: e } : {},
34
+ items: []
35
+ };
36
+ i.items.push({
37
+ value: n.value,
38
+ label: x(n),
39
+ keywords: [n.value],
40
+ ...n.leading || n.icon ? { leading: n.leading ?? (n.icon ? /* @__PURE__ */ f(r, {
41
+ icon: n.icon,
42
+ size: "sm",
43
+ className: "text-fg-secondary"
44
+ }) : void 0) } : {},
45
+ ...typeof n.label == "string" ? {} : { render: () => /* @__PURE__ */ f("span", {
46
+ className: "min-w-0 flex-1 truncate",
47
+ children: n.label
48
+ }) }
49
+ }), t.set(e, i);
50
+ }
51
+ return [...t.values()];
52
+ }
53
+ var x = (e) => e.textValue ?? (typeof e.label == "string" || typeof e.label == "number" ? String(e.label) : e.value), S = "relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment", C = /* @__PURE__ */ s(function({ property: s, propertyIcon: g, operator: C, operators: w, onOperatorChange: T, value: E, values: D, groups: O, searchable: k, width: A, selected: j = [], multiple: M, onSelectedChange: N, onRemove: P, defaultValuesOpen: F, onValuesOpenChange: I, className: L, "data-force": R }, z) {
54
+ let B = t(), V = n(), H = O ? O.reduce((e, t) => e + t.items.length, 0) : D?.length ?? 0, [U, W] = d(!!F && H > 0), G = (e) => {
55
+ W(e), I?.(e);
56
+ }, [K, q] = d(""), J = u(null), Y = !!k || H > _, X = !!O || H > v, Z = l(() => O ?? (X && D ? b(D) : []), [
57
+ O,
58
+ X,
59
+ D
60
+ ]), Q = K.trim().toLowerCase(), $ = Y && Q ? (D ?? []).filter((e) => x(e).toLowerCase().includes(Q) || e.value.toLowerCase().includes(Q)) : D ?? [];
61
+ return c(() => {
62
+ if (!U || !Y || X) return;
63
+ let e = setTimeout(() => J.current?.focus(), 0);
15
64
  return () => clearTimeout(e);
16
- }, [M, L]), /* @__PURE__ */ u("div", {
17
- ref: k,
65
+ }, [
66
+ U,
67
+ Y,
68
+ X
69
+ ]), /* @__PURE__ */ p("div", {
70
+ ref: z,
18
71
  role: "group",
19
- "aria-label": typeof a == "string" ? A("filterChip.filterNamed", "Filter: {property}", { property: a }) : A("filterChip.filter", "Filter"),
20
- ...O ? { "data-force": O } : {},
21
- className: e("group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over", f.size.sm.classes, D),
72
+ "aria-label": typeof s == "string" ? B("filterChip.filterNamed", "Filter: {property}", { property: s }) : B("filterChip.filter", "Filter"),
73
+ ...R ? { "data-force": R } : {},
74
+ className: e("group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over", h.size.sm.classes, L),
22
75
  children: [
23
- /* @__PURE__ */ u("span", {
24
- className: e(g, "cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent"),
25
- children: [p && /* @__PURE__ */ l(r, {
26
- icon: p,
76
+ /* @__PURE__ */ p("span", {
77
+ className: e(S, "cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent"),
78
+ children: [g && /* @__PURE__ */ f(r, {
79
+ icon: g,
27
80
  size: "sm"
28
- }), a]
81
+ }), s]
29
82
  }),
30
- /* @__PURE__ */ u(i, { children: [/* @__PURE__ */ l(i.Trigger, { children: /* @__PURE__ */ l("button", {
83
+ /* @__PURE__ */ p(i, { children: [/* @__PURE__ */ f(i.Trigger, { children: /* @__PURE__ */ f("button", {
31
84
  type: "button",
32
- className: e(g, "text-fg-secondary divider-l"),
33
- disabled: !v?.length,
34
- children: _
35
- }) }), v && /* @__PURE__ */ l(i.Content, { children: /* @__PURE__ */ l(i.RadioGroup, {
36
- value: _,
37
- onValueChange: (e) => y?.(e),
38
- children: v.map((e) => /* @__PURE__ */ l(i.RadioItem, {
85
+ className: e(S, "text-fg-secondary divider-l"),
86
+ disabled: !w?.length,
87
+ children: C
88
+ }) }), w && /* @__PURE__ */ f(i.Content, { children: /* @__PURE__ */ f(i.RadioGroup, {
89
+ value: C,
90
+ onValueChange: (e) => T?.(e),
91
+ children: w.map((e) => /* @__PURE__ */ f(i.RadioItem, {
39
92
  value: e,
40
93
  children: e
41
94
  }, e))
42
95
  }) })] }),
43
- /* @__PURE__ */ u(i, {
44
- open: M,
96
+ X && (O || D) ? /* @__PURE__ */ f(o, {
97
+ title: typeof s == "string" ? s : B("filterChip.filter", "Filter"),
98
+ open: U,
99
+ onOpenChange: G,
100
+ ...A ? { width: A } : {},
101
+ trigger: /* @__PURE__ */ f("button", {
102
+ type: "button",
103
+ className: e(S, "divider-l", !P && "pr-12"),
104
+ children: E
105
+ }),
106
+ children: /* @__PURE__ */ f(a, {
107
+ groups: Z,
108
+ "aria-label": typeof s == "string" ? s : B("filterChip.filter", "Filter"),
109
+ value: j,
110
+ ...M ? { multiple: !0 } : {},
111
+ autoFocus: !0,
112
+ placeholder: typeof s == "string" ? B("filterChip.searchNamedValues", "Search {property} values", { property: V === "en" ? s.toLowerCase() : s }) : B("filterChip.searchValues", "Search values"),
113
+ emptyText: B("filterChip.noMatches", "No values match"),
114
+ onSelect: (e) => {
115
+ M ? N?.(j.includes(e) ? j.filter((t) => t !== e) : [...j, e]) : (N?.([e]), G(!1));
116
+ }
117
+ })
118
+ }) : /* @__PURE__ */ p(i, {
119
+ open: U,
45
120
  onOpenChange: (e) => {
46
- N(e), e || F("");
121
+ G(e), e || q("");
47
122
  },
48
- children: [/* @__PURE__ */ l(i.Trigger, { children: /* @__PURE__ */ l("button", {
123
+ children: [/* @__PURE__ */ f(i.Trigger, { children: /* @__PURE__ */ f("button", {
49
124
  type: "button",
50
- className: e(g, "divider-l", !T && "pr-12"),
51
- disabled: !x?.length,
52
- children: b
53
- }) }), x && /* @__PURE__ */ l(i.Content, {
54
- ...L ? { className: "w-280" } : {},
55
- ...L ? {
56
- header: /* @__PURE__ */ l("input", {
57
- ref: I,
125
+ className: e(S, "divider-l", !P && "pr-12"),
126
+ disabled: H === 0,
127
+ children: E
128
+ }) }), D && /* @__PURE__ */ f(i.Content, {
129
+ ...Y ? { className: "w-280" } : {},
130
+ ...Y ? {
131
+ header: /* @__PURE__ */ f("input", {
132
+ ref: J,
58
133
  type: "search",
59
- "aria-label": typeof a == "string" ? A("filterChip.searchNamedValues", "Search {property} values", { property: j === "en" ? a.toLowerCase() : a }) : A("filterChip.searchValues", "Search values"),
60
- placeholder: A("filterChip.search", "Search"),
134
+ "aria-label": typeof s == "string" ? B("filterChip.searchNamedValues", "Search {property} values", { property: V === "en" ? s.toLowerCase() : s }) : B("filterChip.searchValues", "Search values"),
135
+ placeholder: B("filterChip.search", "Search"),
61
136
  autoComplete: "off",
62
- value: P,
63
- onChange: (e) => F(e.target.value),
137
+ value: K,
138
+ onChange: (e) => q(e.target.value),
64
139
  onKeyDown: (e) => {
65
140
  [
66
141
  "ArrowDown",
@@ -72,24 +147,24 @@ var f = { size: { sm: { classes: "h-32 text-body" } } }, p = { size: "sm" }, m =
72
147
  },
73
148
  className: "h-28 w-full bg-transparent text-body text-fg outline-none placeholder:text-fg-tertiary coarse:h-36"
74
149
  }),
75
- ...z.length === 0 ? { footer: A("filterChip.noMatches", "No values match") } : {}
150
+ ...$.length === 0 ? { footer: B("filterChip.noMatches", "No values match") } : {}
76
151
  } : {},
77
- children: C ? z.map((e) => /* @__PURE__ */ l(i.CheckboxItem, {
78
- checked: S.includes(e.value),
79
- onCheckedChange: (t) => w?.(t ? [...S, e.value] : S.filter((t) => t !== e.value)),
152
+ children: M ? y($, (e) => /* @__PURE__ */ f(i.CheckboxItem, {
153
+ checked: j.includes(e.value),
154
+ onCheckedChange: (t) => N?.(t ? [...j, e.value] : j.filter((t) => t !== e.value)),
80
155
  ...e.icon ? { icon: e.icon } : {},
81
- children: /* @__PURE__ */ u("span", {
156
+ children: /* @__PURE__ */ p("span", {
82
157
  className: "inline-flex items-center gap-8",
83
158
  children: [e.leading, e.label]
84
159
  })
85
- }, e.value)) : /* @__PURE__ */ l(i.RadioGroup, {
86
- value: S[0] ?? "",
87
- onValueChange: (e) => w?.([e]),
88
- children: z.map((e) => /* @__PURE__ */ l(i.RadioItem, {
160
+ }, e.value)) : /* @__PURE__ */ f(i.RadioGroup, {
161
+ value: j[0] ?? "",
162
+ onValueChange: (e) => N?.([e]),
163
+ children: y($, (e) => /* @__PURE__ */ f(i.RadioItem, {
89
164
  value: e.value,
90
165
  closeOnClick: !0,
91
166
  ...e.icon ? { icon: e.icon } : {},
92
- children: /* @__PURE__ */ u("span", {
167
+ children: /* @__PURE__ */ p("span", {
93
168
  className: "inline-flex items-center gap-8",
94
169
  children: [e.leading, e.label]
95
170
  })
@@ -97,15 +172,15 @@ var f = { size: { sm: { classes: "h-32 text-body" } } }, p = { size: "sm" }, m =
97
172
  })
98
173
  })]
99
174
  }),
100
- T && /* @__PURE__ */ l("span", {
175
+ P && /* @__PURE__ */ f("span", {
101
176
  className: "flex items-center pr-4 divider-l pl-4",
102
- children: /* @__PURE__ */ l("button", {
177
+ children: /* @__PURE__ */ f("button", {
103
178
  type: "button",
104
- "aria-label": typeof a == "string" ? A("filterChip.removeNamed", "Remove the {property} filter", { property: a }) : A("filterChip.remove", "Remove filter"),
105
- onClick: T,
179
+ "aria-label": typeof s == "string" ? B("filterChip.removeNamed", "Remove the {property} filter", { property: s }) : B("filterChip.remove", "Remove filter"),
180
+ onClick: P,
106
181
  className: "relative inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg focus-ring tap-target",
107
- children: /* @__PURE__ */ l(r, {
108
- icon: d,
182
+ children: /* @__PURE__ */ f(r, {
183
+ icon: m,
109
184
  size: "xs"
110
185
  })
111
186
  })
@@ -113,8 +188,8 @@ var f = { size: { sm: { classes: "h-32 text-body" } } }, p = { size: "sm" }, m =
113
188
  ]
114
189
  });
115
190
  });
116
- process.env.NODE_ENV !== "production" && (_.displayName = "FilterChip");
191
+ process.env.NODE_ENV !== "production" && (C.displayName = "FilterChip");
117
192
  //#endregion
118
- export { _ as FilterChip, p as KAESO_FILTER_CHIP_DEFAULT_VARIANTS, f as KAESO_FILTER_CHIP_VARIANTS };
193
+ export { C as FilterChip, g as KAESO_FILTER_CHIP_DEFAULT_VARIANTS, h as KAESO_FILTER_CHIP_VARIANTS };
119
194
 
120
195
  //# sourceMappingURL=filter-chip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-chip.js","names":["__icon_Cancel01Icon","cn","useUiText","useLocale","Icon","KAESO_FILTER_CHIP_VARIANTS","KAESO_FILTER_CHIP_DEFAULT_VARIANTS","SEARCH_ABOVE","textOf","v","SEG","FilterChip","force","t","locale","open","setOpen","useState","defaultValuesOpen","values","query","setQuery","search","useRef","searchable","q","shown","useEffect","timer","property","className","propertyIcon","Menu","operators","operator","onOperatorChange","o","onRemove","value","multiple","selected","onSelectedChange","c","s","Cancel01Icon"],"sources":["../../src/components/filter-chip/filter-chip.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Menu } from \"../menu/menu.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FILTER_CHIP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 text-body\" },\n },\n} as const;\nexport const KAESO_FILTER_CHIP_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface FilterChipChoice {\n value: string;\n label: ReactNode;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n textValue?: string | undefined;\n}\n\nconst SEARCH_ABOVE = 8;\n\nexport interface FilterChipProps {\n property: ReactNode;\n propertyIcon?: IconData | undefined;\n operator: string;\n operators?: string[] | undefined;\n onOperatorChange?: ((operator: string) => void) | undefined;\n value: ReactNode;\n values?: FilterChipChoice[] | undefined;\n selected?: string[] | undefined;\n multiple?: boolean | undefined;\n onSelectedChange?: ((selected: string[]) => void) | undefined;\n onRemove?: (() => void) | undefined;\n defaultValuesOpen?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst textOf = (v: FilterChipChoice) => v.textValue ?? (typeof v.label === \"string\" || typeof v.label === \"number\" ? String(v.label) : v.value);\n\nconst SEG =\n \"relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment\";\n\nexport const FilterChip = /* @__PURE__ */ forwardRef<HTMLDivElement, FilterChipProps>(function FilterChip(\n {\n property,\n propertyIcon,\n operator,\n operators,\n onOperatorChange,\n value,\n values,\n selected = [],\n multiple,\n onSelectedChange,\n onRemove,\n defaultValuesOpen,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const [open, setOpen] = useState(!!defaultValuesOpen && !!values?.length);\n const [query, setQuery] = useState(\"\");\n const search = useRef<HTMLInputElement | null>(null);\n const searchable = (values?.length ?? 0) > SEARCH_ABOVE;\n const q = query.trim().toLowerCase();\n const shown = searchable && q ? (values ?? []).filter((v) => textOf(v).toLowerCase().includes(q) || v.value.toLowerCase().includes(q)) : (values ?? []);\n useEffect(() => {\n if (!open || !searchable) return;\n const timer = setTimeout(() => search.current?.focus(), 0);\n return () => clearTimeout(timer);\n }, [open, searchable]);\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={typeof property === \"string\" ? t(\"filterChip.filterNamed\", \"Filter: {property}\", { property }) : t(\"filterChip.filter\", \"Filter\")}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over\",\n KAESO_FILTER_CHIP_VARIANTS.size.sm.classes,\n className,\n )}\n >\n <span className={cn(SEG, \"cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent\")}>\n {propertyIcon && <Icon icon={propertyIcon} size=\"sm\" />}\n {property}\n </span>\n <Menu>\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"text-fg-secondary divider-l\")} disabled={!operators?.length}>\n {operator}\n </button>\n </Menu.Trigger>\n {operators && (\n <Menu.Content>\n <Menu.RadioGroup value={operator} onValueChange={(v) => onOperatorChange?.(v)}>\n {operators.map((o) => (\n <Menu.RadioItem key={o} value={o}>\n {o}\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n )}\n </Menu>\n <Menu\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n if (!o) setQuery(\"\");\n }}\n >\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"divider-l\", !onRemove && \"pr-12\")} disabled={!values?.length}>\n {value}\n </button>\n </Menu.Trigger>\n {values && (\n <Menu.Content\n {...(searchable ? { className: \"w-280\" } : {})}\n {...(searchable\n ? {\n header: (\n <input\n ref={search}\n type=\"search\"\n aria-label={\n typeof property === \"string\"\n ? t(\"filterChip.searchNamedValues\", \"Search {property} values\", { property: locale === \"en\" ? property.toLowerCase() : property })\n : t(\"filterChip.searchValues\", \"Search values\")\n }\n placeholder={t(\"filterChip.search\", \"Search\")}\n autoComplete=\"off\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (![\"ArrowDown\", \"ArrowUp\", \"Escape\", \"Tab\", \"Enter\"].includes(e.key)) e.stopPropagation();\n }}\n className=\"h-28 w-full bg-transparent text-body text-fg outline-none placeholder:text-fg-tertiary coarse:h-36\"\n />\n ),\n ...(shown.length === 0 ? { footer: t(\"filterChip.noMatches\", \"No values match\") } : {}),\n }\n : {})}\n >\n {multiple ? (\n shown.map((v) => (\n <Menu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={(c) => onSelectedChange?.(c ? [...selected, v.value] : selected.filter((s) => s !== v.value))}\n {...(v.icon ? { icon: v.icon } : {})}\n >\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.CheckboxItem>\n ))\n ) : (\n <Menu.RadioGroup value={selected[0] ?? \"\"} onValueChange={(s) => onSelectedChange?.([s])}>\n {shown.map((v) => (\n <Menu.RadioItem key={v.value} value={v.value} closeOnClick {...(v.icon ? { icon: v.icon } : {})}>\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n )}\n </Menu.Content>\n )}\n </Menu>\n {onRemove && (\n <span className=\"flex items-center pr-4 divider-l pl-4\">\n <button\n type=\"button\"\n aria-label={\n typeof property === \"string\" ? t(\"filterChip.removeNamed\", \"Remove the {property} filter\", { property }) : t(\"filterChip.remove\", \"Remove filter\")\n }\n onClick={onRemove}\n className=\"relative inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg focus-ring tap-target\"\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n </span>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") FilterChip.displayName = \"FilterChip\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter-chip.js","names":["__icon_Cancel01Icon","cn","useUiText","useLocale","Icon","CommandList","PickerPopover","KAESO_FILTER_CHIP_VARIANTS","KAESO_FILTER_CHIP_DEFAULT_VARIANTS","SEARCH_ABOVE","LIST_ABOVE","inRuns","values","v","item","runs","last","Menu","r","i","choiceGroups","groups","key","group","textOf","SEG","FilterChip","givenGroups","forceSearch","force","t","locale","choices","n","g","open","setOwnOpen","useState","defaultValuesOpen","setOpen","o","onValuesOpenChange","query","setQuery","search","useRef","searchable","long","useMemo","q","shown","useEffect","timer","property","className","propertyIcon","operators","operator","onOperatorChange","width","onRemove","value","selected","multiple","onSelectedChange","s","c","Cancel01Icon"],"sources":["../../src/components/filter-chip/filter-chip.tsx"],"sourcesContent":["import { forwardRef, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Menu } from \"../menu/menu.js\";\nimport { CommandList, type CommandListGroup } from \"../command-list/command-list.js\";\nimport { PickerPopover, type PickerPopoverProps } from \"../command-list/picker-popover.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FILTER_CHIP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 text-body\" },\n },\n} as const;\nexport const KAESO_FILTER_CHIP_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface FilterChipChoice {\n value: string;\n label: ReactNode;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n textValue?: string | undefined;\n group?: string | undefined;\n}\n\nconst SEARCH_ABOVE = 8;\nconst LIST_ABOVE = 50;\n\nfunction inRuns(values: FilterChipChoice[], item: (v: FilterChipChoice) => ReactNode): ReactNode {\n if (!values.some((v) => v.group)) return values.map(item);\n const runs: { group: string | undefined; values: FilterChipChoice[] }[] = [];\n for (const v of values) {\n const last = runs[runs.length - 1];\n if (last && last.group === v.group) last.values.push(v);\n else runs.push({ group: v.group, values: [v] });\n }\n return runs.map((r, i) => (\n <Menu.Group key={`${r.group ?? \"\"}:${i}`} label={r.group}>\n {r.values.map(item)}\n </Menu.Group>\n ));\n}\n\nfunction choiceGroups(values: FilterChipChoice[]): CommandListGroup[] {\n const groups = new Map<string, CommandListGroup>();\n for (const v of values) {\n const key = v.group ?? \"\";\n const group = groups.get(key) ?? { id: key || \"values\", ...(key ? { label: key } : {}), items: [] };\n group.items.push({\n value: v.value,\n label: textOf(v),\n keywords: [v.value],\n ...(v.leading || v.icon ? { leading: v.leading ?? (v.icon ? <Icon icon={v.icon} size=\"sm\" className=\"text-fg-secondary\" /> : undefined) } : {}),\n ...(typeof v.label === \"string\" ? {} : { render: () => <span className=\"min-w-0 flex-1 truncate\">{v.label}</span> }),\n });\n groups.set(key, group);\n }\n return [...groups.values()];\n}\n\nexport interface FilterChipProps {\n property: ReactNode;\n propertyIcon?: IconData | undefined;\n operator: string;\n operators?: string[] | undefined;\n onOperatorChange?: ((operator: string) => void) | undefined;\n value: ReactNode;\n values?: FilterChipChoice[] | undefined;\n groups?: CommandListGroup[] | undefined;\n searchable?: boolean | undefined;\n width?: PickerPopoverProps[\"width\"] | undefined;\n selected?: string[] | undefined;\n multiple?: boolean | undefined;\n onSelectedChange?: ((selected: string[]) => void) | undefined;\n onRemove?: (() => void) | undefined;\n defaultValuesOpen?: boolean | undefined;\n onValuesOpenChange?: ((open: boolean) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst textOf = (v: FilterChipChoice) => v.textValue ?? (typeof v.label === \"string\" || typeof v.label === \"number\" ? String(v.label) : v.value);\n\nconst SEG =\n \"relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment\";\n\nexport const FilterChip = /* @__PURE__ */ forwardRef<HTMLDivElement, FilterChipProps>(function FilterChip(\n {\n property,\n propertyIcon,\n operator,\n operators,\n onOperatorChange,\n value,\n values,\n groups: givenGroups,\n searchable: forceSearch,\n width,\n selected = [],\n multiple,\n onSelectedChange,\n onRemove,\n defaultValuesOpen,\n onValuesOpenChange,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const choices = givenGroups ? givenGroups.reduce((n, g) => n + g.items.length, 0) : (values?.length ?? 0);\n const [open, setOwnOpen] = useState(!!defaultValuesOpen && choices > 0);\n const setOpen = (o: boolean) => {\n setOwnOpen(o);\n onValuesOpenChange?.(o);\n };\n const [query, setQuery] = useState(\"\");\n const search = useRef<HTMLInputElement | null>(null);\n const searchable = !!forceSearch || choices > SEARCH_ABOVE;\n const long = !!givenGroups || choices > LIST_ABOVE;\n const groups = useMemo(() => givenGroups ?? (long && values ? choiceGroups(values) : []), [givenGroups, long, values]);\n const q = query.trim().toLowerCase();\n const shown = searchable && q ? (values ?? []).filter((v) => textOf(v).toLowerCase().includes(q) || v.value.toLowerCase().includes(q)) : (values ?? []);\n useEffect(() => {\n if (!open || !searchable || long) return;\n const timer = setTimeout(() => search.current?.focus(), 0);\n return () => clearTimeout(timer);\n }, [open, searchable, long]);\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={typeof property === \"string\" ? t(\"filterChip.filterNamed\", \"Filter: {property}\", { property }) : t(\"filterChip.filter\", \"Filter\")}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over\",\n KAESO_FILTER_CHIP_VARIANTS.size.sm.classes,\n className,\n )}\n >\n <span className={cn(SEG, \"cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent\")}>\n {propertyIcon && <Icon icon={propertyIcon} size=\"sm\" />}\n {property}\n </span>\n <Menu>\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"text-fg-secondary divider-l\")} disabled={!operators?.length}>\n {operator}\n </button>\n </Menu.Trigger>\n {operators && (\n <Menu.Content>\n <Menu.RadioGroup value={operator} onValueChange={(v) => onOperatorChange?.(v)}>\n {operators.map((o) => (\n <Menu.RadioItem key={o} value={o}>\n {o}\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n )}\n </Menu>\n {long && (givenGroups || values) ? (\n <PickerPopover\n title={typeof property === \"string\" ? property : t(\"filterChip.filter\", \"Filter\")}\n open={open}\n onOpenChange={setOpen}\n {...(width ? { width } : {})}\n trigger={\n <button type=\"button\" className={cn(SEG, \"divider-l\", !onRemove && \"pr-12\")}>\n {value}\n </button>\n }\n >\n <CommandList\n groups={groups}\n aria-label={typeof property === \"string\" ? property : t(\"filterChip.filter\", \"Filter\")}\n value={selected}\n {...(multiple ? { multiple: true } : {})}\n autoFocus\n placeholder={\n typeof property === \"string\"\n ? t(\"filterChip.searchNamedValues\", \"Search {property} values\", { property: locale === \"en\" ? property.toLowerCase() : property })\n : t(\"filterChip.searchValues\", \"Search values\")\n }\n emptyText={t(\"filterChip.noMatches\", \"No values match\")}\n onSelect={(v) => {\n if (multiple) onSelectedChange?.(selected.includes(v) ? selected.filter((s) => s !== v) : [...selected, v]);\n else {\n onSelectedChange?.([v]);\n setOpen(false);\n }\n }}\n />\n </PickerPopover>\n ) : (\n <Menu\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n if (!o) setQuery(\"\");\n }}\n >\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"divider-l\", !onRemove && \"pr-12\")} disabled={choices === 0}>\n {value}\n </button>\n </Menu.Trigger>\n {values && (\n <Menu.Content\n {...(searchable ? { className: \"w-280\" } : {})}\n {...(searchable\n ? {\n header: (\n <input\n ref={search}\n type=\"search\"\n aria-label={\n typeof property === \"string\"\n ? t(\"filterChip.searchNamedValues\", \"Search {property} values\", { property: locale === \"en\" ? property.toLowerCase() : property })\n : t(\"filterChip.searchValues\", \"Search values\")\n }\n placeholder={t(\"filterChip.search\", \"Search\")}\n autoComplete=\"off\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (![\"ArrowDown\", \"ArrowUp\", \"Escape\", \"Tab\", \"Enter\"].includes(e.key)) e.stopPropagation();\n }}\n className=\"h-28 w-full bg-transparent text-body text-fg outline-none placeholder:text-fg-tertiary coarse:h-36\"\n />\n ),\n ...(shown.length === 0 ? { footer: t(\"filterChip.noMatches\", \"No values match\") } : {}),\n }\n : {})}\n >\n {multiple ? (\n inRuns(shown, (v) => (\n <Menu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={(c) => onSelectedChange?.(c ? [...selected, v.value] : selected.filter((s) => s !== v.value))}\n {...(v.icon ? { icon: v.icon } : {})}\n >\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.CheckboxItem>\n ))\n ) : (\n <Menu.RadioGroup value={selected[0] ?? \"\"} onValueChange={(s) => onSelectedChange?.([s])}>\n {inRuns(shown, (v) => (\n <Menu.RadioItem key={v.value} value={v.value} closeOnClick {...(v.icon ? { icon: v.icon } : {})}>\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n )}\n </Menu.Content>\n )}\n </Menu>\n )}\n {onRemove && (\n <span className=\"flex items-center pr-4 divider-l pl-4\">\n <button\n type=\"button\"\n aria-label={\n typeof property === \"string\" ? t(\"filterChip.removeNamed\", \"Remove the {property} filter\", { property }) : t(\"filterChip.remove\", \"Remove filter\")\n }\n onClick={onRemove}\n className=\"relative inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg focus-ring tap-target\"\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n </span>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") FilterChip.displayName = \"FilterChip\";\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-CidVUKMm.js";
3
- import { n as t } from "../chunks/inset-BLMdxX4I.js";
2
+ import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
+ import { i as t } from "../chunks/inset-BnBj8NJV.js";
4
4
  import { i as n } from "../chunks/context-BELWW79w.js";
5
5
  import { t as r } from "../chunks/arrow-focus-BcySmwwU.js";
6
6
  import { forwardRef as i } from "react";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t } from "../chunks/context-BELWW79w.js";
4
- import { t as n } from "../chunks/icon-CeNQtobn.js";
4
+ import { t as n } from "../chunks/icon-BqujXDUc.js";
5
5
  import { t as r } from "../chunks/observe-resize-DhxhmoyB.js";
6
6
  import { forwardRef as i, useLayoutEffect as a, useRef as o, useState as s } from "react";
7
7
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/components/heading/heading.tsx
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as IconButton, n as KAESO_ICON_BUTTON_DEFAULT_VARIANTS, r as KAESO_ICON_BUTTON_VARIANTS } from "../chunks/icon-button-_x1RUphC.js";
2
+ export { t as IconButton, n as KAESO_ICON_BUTTON_DEFAULT_VARIANTS, r as KAESO_ICON_BUTTON_VARIANTS } from "../chunks/icon-button-D4O4puwH.js";
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { n as e, r as t, t as n } from "../chunks/icon-CeNQtobn.js";
2
+ import { n as e, r as t, t as n } from "../chunks/icon-BqujXDUc.js";
3
3
  import { t as r } from "../chunks/icon-CBzvyEqC.js";
4
4
  export { n as Icon, e as KAESO_ICON_DEFAULT_VARIANTS, t as KAESO_ICON_VARIANTS, r as icons };