@logicplanes/kaeso-ui 0.4.2 → 0.4.4

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 (279) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +312 -21
  3. package/ai/component-registry.json +616 -25
  4. package/ai/component-registry.md +154 -26
  5. package/ai/icons.md +4 -4
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +2 -2
  10. package/dist/blocks/resource-list.js +41 -40
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
  17. package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
  18. package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
  19. package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
  20. package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
  21. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  22. package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
  23. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  24. package/dist/chunks/{code-block-U5fCqwgC.js → code-block-BZIe_B9l.js} +41 -37
  25. package/dist/chunks/code-block-BZIe_B9l.js.map +1 -0
  26. package/dist/chunks/code-block-DdNPHEzI.js +344 -0
  27. package/dist/chunks/code-block-DdNPHEzI.js.map +1 -0
  28. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  29. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  30. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  31. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  32. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  33. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  34. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  35. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  36. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  37. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  38. package/dist/chunks/{de-BnNQtBSV.js → de-D_0mmG-k.js} +10 -1
  39. package/dist/chunks/de-D_0mmG-k.js.map +1 -0
  40. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  41. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  42. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  43. package/dist/chunks/icon-CPJWE2N-.js.map +1 -0
  44. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  45. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  46. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  47. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  48. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  49. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  50. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  51. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  52. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  53. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  54. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  55. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  56. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  57. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  58. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  59. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  60. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  61. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  62. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-BupwFOae.js} +5 -5
  63. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-BupwFOae.js.map} +1 -1
  64. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  65. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  66. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  67. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  68. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  69. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  70. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  71. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  72. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  73. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  74. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  75. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  76. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  77. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  78. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  79. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  80. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  81. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  82. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  83. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  84. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  85. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  86. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  87. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  88. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  89. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  90. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  91. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  92. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  93. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  94. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  95. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  96. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  97. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  98. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  99. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  100. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  101. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  102. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  103. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  104. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  105. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  106. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  107. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  108. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  109. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  110. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-Bm6UPIbW.js} +10 -1
  111. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +1 -0
  112. package/dist/components/agent-avatar.js +2 -0
  113. package/dist/components/app-frame.js +2 -2
  114. package/dist/components/banner.js +1 -1
  115. package/dist/components/button-group.js +2 -2
  116. package/dist/components/button.js +1 -1
  117. package/dist/components/calendar.js +1 -1
  118. package/dist/components/charts/bar.js +1 -1
  119. package/dist/components/charts/donut.js +1 -1
  120. package/dist/components/charts/gauge.js +1 -1
  121. package/dist/components/charts/sankey.js +1 -1
  122. package/dist/components/charts/timeseries.js +1 -1
  123. package/dist/components/charts.js +2 -2
  124. package/dist/components/checkbox.js +1 -1
  125. package/dist/components/code-block.js +3 -2
  126. package/dist/components/combobox.js +1 -1
  127. package/dist/components/command-list.js +2 -2
  128. package/dist/components/command-palette.js +85 -81
  129. package/dist/components/command-palette.js.map +1 -1
  130. package/dist/components/copy-button.js +1 -1
  131. package/dist/components/data-table.js +191 -187
  132. package/dist/components/data-table.js.map +1 -1
  133. package/dist/components/date-picker.js +6 -4
  134. package/dist/components/date-picker.js.map +1 -1
  135. package/dist/components/dialog.js +125 -91
  136. package/dist/components/dialog.js.map +1 -1
  137. package/dist/components/display-options.js +49 -46
  138. package/dist/components/display-options.js.map +1 -1
  139. package/dist/components/filter-chip.js +3 -3
  140. package/dist/components/filter-chip.js.map +1 -1
  141. package/dist/components/filter-row.js +1 -1
  142. package/dist/components/icon-button.js +1 -1
  143. package/dist/components/icon.js +1 -1
  144. package/dist/components/input.js +49 -49
  145. package/dist/components/input.js.map +1 -1
  146. package/dist/components/kaeso/conversation.js +3 -3
  147. package/dist/components/kaeso/identity.js +1 -1
  148. package/dist/components/kaeso/moments.js +3 -3
  149. package/dist/components/kaeso/rights.js +1 -1
  150. package/dist/components/kaeso/usage.js +8 -8
  151. package/dist/components/kaeso/usage.js.map +1 -1
  152. package/dist/components/kaeso.js +263 -95
  153. package/dist/components/kaeso.js.map +1 -1
  154. package/dist/components/key-value.js +2 -2
  155. package/dist/components/link.js +1 -1
  156. package/dist/components/list.js +1 -1
  157. package/dist/components/markdown.js +1 -1
  158. package/dist/components/menu.js +2 -2
  159. package/dist/components/page-header.js +1 -1
  160. package/dist/components/pagination.js +1 -1
  161. package/dist/components/playground.js +27 -26
  162. package/dist/components/playground.js.map +1 -1
  163. package/dist/components/popover.js +12 -11
  164. package/dist/components/popover.js.map +1 -1
  165. package/dist/components/radio.js +1 -1
  166. package/dist/components/segmented.js +1 -1
  167. package/dist/components/settings.js +8 -8
  168. package/dist/components/settings.js.map +1 -1
  169. package/dist/components/sheet.js +2 -2
  170. package/dist/components/sidebar.js +1 -1
  171. package/dist/components/switch.js +1 -1
  172. package/dist/components/tabs.js +22 -22
  173. package/dist/components/tabs.js.map +1 -1
  174. package/dist/components/tag.js +1 -1
  175. package/dist/components/text.js +1 -1
  176. package/dist/components/theme-menu.js +33 -30
  177. package/dist/components/theme-menu.js.map +1 -1
  178. package/dist/components/thumbnail.js +41 -0
  179. package/dist/components/thumbnail.js.map +1 -0
  180. package/dist/components/toast.js +96 -87
  181. package/dist/components/toast.js.map +1 -1
  182. package/dist/components/toolbar.js +1 -1
  183. package/dist/components/tooltip.js +1 -1
  184. package/dist/format.js.map +1 -1
  185. package/dist/i18n-provider.js +1 -1
  186. package/dist/index.js +90 -88
  187. package/dist/kaeso.css +3 -0
  188. package/dist/styles.css +1 -1
  189. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  190. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  191. package/dist/types/component-docs.d.ts +1 -1
  192. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  193. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  194. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  195. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  196. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  197. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  198. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  199. package/dist/types/components/calendar/calendar.d.ts +1 -4
  200. package/dist/types/components/charts/core.d.ts +11 -18
  201. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  202. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  203. package/dist/types/components/code-block/diff.d.ts +26 -0
  204. package/dist/types/components/code-block/docs.d.ts +14 -0
  205. package/dist/types/components/code-block/index.d.ts +1 -0
  206. package/dist/types/components/combobox/combobox.d.ts +26 -2
  207. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  208. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  209. package/dist/types/components/data-table/data-table.d.ts +2 -1
  210. package/dist/types/components/data-table/docs.d.ts +1 -0
  211. package/dist/types/components/dialog/dialog.d.ts +7 -9
  212. package/dist/types/components/dialog/docs.d.ts +2 -0
  213. package/dist/types/components/dialog/scope.d.ts +2 -0
  214. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  215. package/dist/types/components/display-options/display-options.d.ts +2 -5
  216. package/dist/types/components/input/input.d.ts +23 -0
  217. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  218. package/dist/types/components/kaeso/docs.d.ts +18 -0
  219. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  220. package/dist/types/components/kaeso/identity.d.ts +2 -0
  221. package/dist/types/components/kaeso/index.d.ts +2 -0
  222. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  223. package/dist/types/components/kaeso/usage.d.ts +2 -0
  224. package/dist/types/components/list/list.d.ts +4 -8
  225. package/dist/types/components/menu/docs.d.ts +8 -1
  226. package/dist/types/components/menu/menu.d.ts +19 -31
  227. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  228. package/dist/types/components/popover/hover-card.d.ts +2 -0
  229. package/dist/types/components/radio/docs.d.ts +15 -0
  230. package/dist/types/components/radio/radio.d.ts +2 -4
  231. package/dist/types/components/settings/settings.d.ts +2 -0
  232. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  233. package/dist/types/components/tabs/tabs.d.ts +15 -0
  234. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  235. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  236. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  237. package/dist/types/components/thumbnail/index.d.ts +1 -0
  238. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  239. package/dist/types/components/toast/toast.d.ts +5 -12
  240. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  241. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  242. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  243. package/dist/types/format/index.d.ts +5 -5
  244. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  245. package/dist/types/icons/groups.d.ts +3 -3
  246. package/dist/types/icons/vocabulary.d.ts +20 -0
  247. package/dist/types/index.d.ts +2 -0
  248. package/dist/types/utils/inset.d.ts +4 -0
  249. package/dist/types/utils/link-provider.d.ts +1 -1
  250. package/dist/types/utils/merge-refs.d.ts +3 -0
  251. package/dist/types/utils/portal-context.d.ts +1 -1
  252. package/dist/utils.js +3 -3
  253. package/foundations/shape.md +1 -1
  254. package/package.json +2 -2
  255. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  256. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  257. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  258. package/dist/chunks/code-block-U5fCqwgC.js.map +0 -1
  259. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  260. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  261. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  262. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  263. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  264. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  265. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  266. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  267. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  268. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  269. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  270. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  271. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  272. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  273. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  274. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  275. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  276. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  277. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  278. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  279. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { i as e, o as t, s as n, t as r } from "./styles-CVJU9t9v.js";
3
3
  import { t as i } from "./cn-Dj6sRgkF.js";
4
- import { r as a } from "./link-provider-BsUxhZKG.js";
4
+ import { r as a } from "./link-provider-cvl8lSTT.js";
5
5
  import { n as o, r as s } from "./portal-context-BBbzDKmY.js";
6
6
  import { t as c } from "./icon-D7ja-_Yk.js";
7
7
  import { i as l } from "./kbd-BF1vKXJf.js";
@@ -270,16 +270,18 @@ var B = /* @__PURE__ */ p(function({ label: e, children: t }, n) {
270
270
  });
271
271
  });
272
272
  process.env.NODE_ENV !== "production" && (B.displayName = "Menu.Group");
273
- function V() {
273
+ var V = /* @__PURE__ */ p(function(e, t) {
274
274
  return /* @__PURE__ */ v("div", {
275
+ ref: t,
275
276
  role: "separator",
276
277
  "aria-orientation": "horizontal",
277
278
  className: n
278
279
  });
279
- }
280
+ });
280
281
  process.env.NODE_ENV !== "production" && (V.displayName = "Menu.Separator");
281
- function H({ avatar: e, name: t, email: n }) {
282
+ var H = /* @__PURE__ */ p(function({ avatar: e, name: t, email: n }, r) {
282
283
  return /* @__PURE__ */ y("div", {
284
+ ref: r,
283
285
  className: "flex min-w-0 items-center gap-10 px-10 pt-8 pb-10",
284
286
  children: [e, /* @__PURE__ */ y("div", {
285
287
  className: "flex min-w-0 flex-col",
@@ -292,7 +294,7 @@ function H({ avatar: e, name: t, email: n }) {
292
294
  })]
293
295
  })]
294
296
  });
295
- }
297
+ });
296
298
  process.env.NODE_ENV !== "production" && (H.displayName = "Menu.Header");
297
299
  function U({ children: e, open: t, onOpenChange: n }) {
298
300
  let r = g(null);
@@ -353,22 +355,23 @@ var K = /* @__PURE__ */ Object.assign(A, {
353
355
  Sub: U,
354
356
  SubTrigger: W,
355
357
  SubContent: G
356
- });
357
- function q({ children: e, onOpenChange: t }) {
358
+ }), q = {}, J = {};
359
+ function Y({ children: e, onOpenChange: t }) {
358
360
  return /* @__PURE__ */ v(w.Root, {
359
361
  ...t ? { onOpenChange: (e) => t(e) } : {},
360
362
  children: e
361
363
  });
362
364
  }
363
- process.env.NODE_ENV !== "production" && (q.displayName = "ContextMenu");
364
- function J({ children: e, className: t }) {
365
+ process.env.NODE_ENV !== "production" && (Y.displayName = "ContextMenu");
366
+ var X = /* @__PURE__ */ p(function({ children: e, className: t }, n) {
365
367
  return /* @__PURE__ */ v(w.Trigger, {
368
+ ref: n,
366
369
  className: t,
367
370
  children: e
368
371
  });
369
- }
370
- process.env.NODE_ENV !== "production" && (J.displayName = "ContextMenu.Trigger");
371
- var Y = /* @__PURE__ */ p(function({ children: e, className: n, header: r, footer: a, width: c = "auto" }, l) {
372
+ });
373
+ process.env.NODE_ENV !== "production" && (X.displayName = "ContextMenu.Trigger");
374
+ var Z = /* @__PURE__ */ p(function({ children: e, className: n, header: r, footer: a, width: c = "auto" }, l) {
372
375
  return /* @__PURE__ */ v(w.Portal, {
373
376
  container: s(),
374
377
  children: /* @__PURE__ */ v(w.Positioner, {
@@ -395,10 +398,10 @@ var Y = /* @__PURE__ */ p(function({ children: e, className: n, header: r, foote
395
398
  })
396
399
  });
397
400
  });
398
- process.env.NODE_ENV !== "production" && (Y.displayName = "ContextMenu.Content");
399
- var X = /* @__PURE__ */ Object.assign(q, {
400
- Trigger: J,
401
- Content: Y,
401
+ process.env.NODE_ENV !== "production" && (Z.displayName = "ContextMenu.Content");
402
+ var ee = /* @__PURE__ */ Object.assign(Y, {
403
+ Trigger: X,
404
+ Content: Z,
402
405
  Item: F,
403
406
  LinkItem: I,
404
407
  CheckboxItem: L,
@@ -409,16 +412,16 @@ var X = /* @__PURE__ */ Object.assign(q, {
409
412
  Sub: U,
410
413
  SubTrigger: W,
411
414
  SubContent: G
412
- });
413
- function Z({ children: e, className: t, "aria-label": n }) {
415
+ }), te = {}, ne = {}, Q = /* @__PURE__ */ p(function({ children: e, className: t, "aria-label": n }, r) {
414
416
  return /* @__PURE__ */ v(T, {
417
+ ref: r,
415
418
  className: i("inline-flex items-center gap-2", t),
416
419
  ...n ? { "aria-label": n } : {},
417
420
  children: e
418
421
  });
419
- }
420
- process.env.NODE_ENV !== "production" && (Z.displayName = "Menubar");
421
- var Q = /* @__PURE__ */ p(function({ children: e, className: t, "data-force": n }, r) {
422
+ });
423
+ process.env.NODE_ENV !== "production" && (Q.displayName = "Menubar");
424
+ var $ = /* @__PURE__ */ p(function({ children: e, className: t, "data-force": n }, r) {
422
425
  return /* @__PURE__ */ v(C.Trigger, {
423
426
  ref: r,
424
427
  ...n ? { "data-force": n } : {},
@@ -426,10 +429,10 @@ var Q = /* @__PURE__ */ p(function({ children: e, className: t, "data-force": n
426
429
  children: e
427
430
  });
428
431
  });
429
- process.env.NODE_ENV !== "production" && (Q.displayName = "Menubar.Trigger");
430
- var $ = /* @__PURE__ */ Object.assign(Z, {
432
+ process.env.NODE_ENV !== "production" && ($.displayName = "Menubar.Trigger");
433
+ var re = /* @__PURE__ */ Object.assign(Q, {
431
434
  Menu: A,
432
- Trigger: Q,
435
+ Trigger: $,
433
436
  Content: N,
434
437
  Item: F,
435
438
  CheckboxItem: L,
@@ -442,6 +445,6 @@ var $ = /* @__PURE__ */ Object.assign(Z, {
442
445
  SubContent: G
443
446
  });
444
447
  //#endregion
445
- export { $ as a, K as i, D as n, E as r, X as t };
448
+ export { te as a, K as c, ne as i, re as l, J as n, D as o, q as r, E as s, ee as t };
446
449
 
447
- //# sourceMappingURL=menu-fl_QQb38.js.map
450
+ //# sourceMappingURL=menu-DEmBfdPm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-DEmBfdPm.js","names":["BaseMenu","_Fragment","__icon_ArrowUpRight01Icon","__icon_Tick02Icon","__icon_ArrowRight01Icon","Menu","BaseContextMenu","ContextMenu","Menubar","BaseMenubar","MENU_ITEM","MENU_POPUP","MENU_SEPARATOR","MENU_DANGER","cn","useLinkComponent","pageBoundary","usePortalContainer","Icon","KbdSequence","useLayoutWidth","anchorWidthStyle","Fragment$1","KAESO_MENU_VARIANTS","KAESO_MENU_DEFAULT_VARIANTS","NO_TRIGGER","TriggerContext","Root","trigger","useRef","Menu","open","defaultOpen","onOpenChange","o","Trigger","useContext","setTrigger","useCallback","el","children","openOnHover","framed","labelledBy","orientation","rest","props","className","header","footer","Content","triggerWidth","width","popup","ref","at","ItemContent","leading","description","icon","danger","descriptionTone","shortcut","hint","Item","force","disabled","onClick","closeOnClick","variant","LinkItem","LinkComp","external","ArrowUpRight01Icon","CheckboxItem","checked","defaultChecked","onCheckedChange","c","Tick02Icon","RadioGroup","value","defaultValue","onValueChange","v","RadioItem","Group","label","Separator","Header","avatar","name","email","Sub","SubTrigger","setRef","ArrowRight01Icon","SubContent","Menu$1","KAESO_CONTEXT_MENU_VARIANTS","KAESO_CONTEXT_MENU_DEFAULT_VARIANTS","ContextRoot","ContextMenu","ContextTrigger","ContextContent","ContextMenu$1","KAESO_MENUBAR_VARIANTS","KAESO_MENUBAR_DEFAULT_VARIANTS","MenubarRoot","ariaLabel","Menubar","MenubarTrigger","Menubar$1"],"sources":["../../src/components/menu/menu.tsx"],"sourcesContent":["import { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n type RefObject,\n} from \"react\";\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport { ContextMenu as BaseContextMenu } from \"@base-ui/react/context-menu\";\nimport { Menubar as BaseMenubar } from \"@base-ui/react/menubar\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useLinkComponent } from \"../../utils/link-provider.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { ArrowUpRight01Icon as __icon_ArrowUpRight01Icon, Tick02Icon as __icon_Tick02Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { anchorWidthStyle, useLayoutWidth } from \"../../hooks/use-layout-width.js\";\nimport { MENU_DANGER, MENU_HINT, MENU_ICON, MENU_ITEM, MENU_LABEL, MENU_POPUP, MENU_SEPARATOR } from \"./styles.js\";\n\nexport const KAESO_MENU_VARIANTS = {\n item: {\n default: { classes: \"\" },\n danger: { classes: MENU_DANGER },\n },\n width: {\n auto: { classes: \"\" },\n trigger: { classes: \"w-anchor\" },\n },\n description: {\n secondary: { classes: \"text-fg-secondary\" },\n danger: { classes: \"text-danger-text\" },\n },\n} as const;\nexport const KAESO_MENU_DEFAULT_VARIANTS = { item: \"default\", width: \"auto\", description: \"secondary\" } as const;\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\nexport interface MenuProps {\n children: ReactNode;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n modal?: boolean | undefined;\n}\n\nconst NO_TRIGGER: RefObject<HTMLElement | null> = { current: null };\nconst TriggerContext = /* @__PURE__ */ createContext<RefObject<HTMLElement | null> | null>(null);\n\nfunction Root({ open, defaultOpen, onOpenChange, modal = false, children }: MenuProps) {\n const trigger = useRef<HTMLElement | null>(null);\n return (\n <BaseMenu.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n modal={modal}\n >\n <TriggerContext.Provider value={trigger}>{children}</TriggerContext.Provider>\n </BaseMenu.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Menu\";\n\nfunction Trigger({ children, openOnHover }: { children: ReactElement; openOnHover?: boolean | undefined }) {\n const trigger = useContext(TriggerContext);\n const setTrigger = useCallback(\n (el: HTMLElement | null) => {\n if (trigger) trigger.current = el;\n },\n [trigger],\n );\n return <BaseMenu.Trigger ref={setTrigger} render={children} {...(openOnHover ? { openOnHover } : {})} />;\n}\nif (process.env.NODE_ENV !== \"production\") Trigger.displayName = \"Menu.Trigger\";\n\nexport interface MenuContentProps {\n children: ReactNode;\n side?: Side | undefined;\n align?: Align | undefined;\n sideOffset?: number | undefined;\n width?: keyof typeof KAESO_MENU_VARIANTS.width | undefined;\n className?: string | undefined;\n header?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n}\n\nfunction framed(header: ReactNode, footer: ReactNode) {\n return function framedMenuPopup(props: HTMLAttributes<HTMLDivElement> & { ref?: Ref<HTMLDivElement> | undefined }) {\n const { role, id, \"aria-labelledby\": labelledBy, \"aria-orientation\": orientation, children, className, ...rest } = props;\n return (\n <div {...rest} className={cn(className, \"overflow-hidden p-0\")}>\n <div tabIndex={0} className=\"flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain rounded-menu p-6 focus-ring-inset scrollbar-quiet\">\n <div className=\"mb-6 px-10 pt-6 pb-10 hairline-b\">{header}</div>\n <div role={role} id={id} aria-labelledby={labelledBy} aria-orientation={orientation} className=\"flex flex-col\">\n {children}\n </div>\n {footer && <div className=\"px-10 pt-6 pb-4 text-caption text-fg-tertiary\">{footer}</div>}\n </div>\n </div>\n );\n };\n}\n\nconst Content = /* @__PURE__ */ forwardRef<HTMLDivElement, MenuContentProps>(function MenuContent(\n { children, side = \"bottom\", align = \"start\", sideOffset = 6, width = \"auto\", className, header, footer },\n ref,\n) {\n const trigger = useContext(TriggerContext);\n const triggerWidth = useLayoutWidth(trigger ?? NO_TRIGGER, width === \"trigger\" && !!trigger);\n const popup = useRef<HTMLDivElement | null>(null);\n return (\n <BaseMenu.Portal container={usePortalContainer()}>\n <BaseMenu.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side={side}\n align={align}\n sideOffset={sideOffset}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BaseMenu.Popup\n ref={(el) => {\n popup.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n finalFocus={() => {\n const at = document.activeElement;\n if (at && at !== document.body && !popup.current?.contains(at)) return false;\n return trigger?.current?.isConnected ? trigger.current : true;\n }}\n tabIndex={0}\n className={cn(MENU_POPUP, KAESO_MENU_VARIANTS.width[width].classes, className)}\n style={width === \"trigger\" ? anchorWidthStyle(triggerWidth) : undefined}\n {...(header ? { render: framed(header, footer) } : {})}\n >\n {children}\n {!header && footer && <div className=\"px-10 pt-6 pb-4 text-caption text-fg-tertiary\">{footer}</div>}\n </BaseMenu.Popup>\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Content.displayName = \"Menu.Content\";\n\nexport interface MenuItemProps {\n children: ReactNode;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n description?: ReactNode | undefined;\n descriptionTone?: keyof typeof KAESO_MENU_VARIANTS.description | undefined;\n shortcut?: string[] | string[][] | undefined;\n hint?: ReactNode | undefined;\n variant?: keyof typeof KAESO_MENU_VARIANTS.item | undefined;\n disabled?: boolean | undefined;\n onClick?: (() => void) | undefined;\n closeOnClick?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nfunction ItemContent({\n icon,\n leading,\n description,\n descriptionTone = \"secondary\",\n shortcut,\n hint,\n children,\n danger,\n}: Pick<MenuItemProps, \"icon\" | \"leading\" | \"description\" | \"descriptionTone\" | \"shortcut\" | \"hint\" | \"children\"> & { danger?: boolean | undefined }) {\n return (\n <>\n {leading ? (\n <span className={cn(\"flex size-16 shrink-0 items-center justify-center\", description && \"self-start mt-10\")}>{leading}</span>\n ) : (\n icon && <Icon icon={icon} size=\"sm\" className={cn(danger ? \"text-danger-text\" : MENU_ICON, description && \"self-start mt-10\")} />\n )}\n {description ? (\n <span className=\"flex min-w-0 flex-1 flex-col gap-2 py-8\">\n <span className=\"truncate\">{children}</span>\n <span className={cn(\"text-small font-regular whitespace-normal\", KAESO_MENU_VARIANTS.description[descriptionTone].classes)}>{description}</span>\n </span>\n ) : (\n <span className=\"min-w-0 flex-1 truncate\">{children}</span>\n )}\n {(shortcut || hint) && (\n <span className={MENU_HINT}>\n {hint}\n {shortcut && <KbdSequence keys={shortcut} />}\n </span>\n )}\n </>\n );\n}\n\nconst Item = /* @__PURE__ */ forwardRef<HTMLDivElement, MenuItemProps>(function MenuItem(\n {\n children,\n icon,\n leading,\n description,\n descriptionTone,\n shortcut,\n hint,\n variant = \"default\",\n disabled,\n onClick,\n closeOnClick,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n return (\n <BaseMenu.Item\n ref={ref}\n {...(disabled ? { disabled } : {})}\n {...(onClick ? { onClick } : {})}\n {...(closeOnClick !== undefined ? { closeOnClick } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(MENU_ITEM, KAESO_MENU_VARIANTS.item[variant].classes, className)}\n >\n <ItemContent\n icon={icon}\n leading={leading}\n description={description}\n descriptionTone={descriptionTone}\n shortcut={shortcut}\n hint={hint}\n danger={variant === \"danger\"}\n >\n {children}\n </ItemContent>\n </BaseMenu.Item>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Item.displayName = \"Menu.Item\";\n\nexport interface MenuLinkItemProps extends Pick<\n MenuItemProps,\n \"icon\" | \"leading\" | \"description\" | \"descriptionTone\" | \"shortcut\" | \"hint\" | \"children\" | \"className\"\n> {\n href: string;\n external?: boolean | undefined;\n}\n\nconst LinkItem = /* @__PURE__ */ forwardRef<HTMLAnchorElement, MenuLinkItemProps>(function MenuLinkItem(\n { children, href, external, icon, leading, description, descriptionTone, shortcut, hint, className },\n ref,\n) {\n const LinkComp = useLinkComponent();\n return (\n <BaseMenu.LinkItem\n ref={ref}\n href={href}\n {...(external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : { render: <LinkComp href={href} /> })}\n className={cn(MENU_ITEM, \"no-underline\", className)}\n >\n <ItemContent\n icon={icon}\n leading={leading}\n description={description}\n descriptionTone={descriptionTone}\n shortcut={shortcut}\n hint={hint ?? (external ? <Icon icon={__icon_ArrowUpRight01Icon} size=\"xs\" /> : undefined)}\n >\n {children}\n </ItemContent>\n </BaseMenu.LinkItem>\n );\n});\nif (process.env.NODE_ENV !== \"production\") LinkItem.displayName = \"Menu.LinkItem\";\n\nexport interface MenuCheckboxItemProps extends Omit<MenuItemProps, \"variant\" | \"onClick\"> {\n checked?: boolean | undefined;\n defaultChecked?: boolean | undefined;\n onCheckedChange?: ((checked: boolean) => void) | undefined;\n}\n\nconst CheckboxItem = /* @__PURE__ */ forwardRef<HTMLDivElement, MenuCheckboxItemProps>(function MenuCheckboxItem(\n {\n children,\n icon,\n leading,\n description,\n descriptionTone,\n shortcut,\n hint,\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n closeOnClick = false,\n className,\n },\n ref,\n) {\n return (\n <BaseMenu.CheckboxItem\n ref={ref}\n {...(checked !== undefined ? { checked } : {})}\n {...(defaultChecked !== undefined ? { defaultChecked } : {})}\n {...(onCheckedChange ? { onCheckedChange: (c: boolean) => onCheckedChange(c) } : {})}\n {...(disabled ? { disabled } : {})}\n closeOnClick={closeOnClick}\n className={cn(MENU_ITEM, className)}\n >\n <ItemContent icon={icon} leading={leading} description={description} descriptionTone={descriptionTone} shortcut={shortcut} hint={hint}>\n {children}\n </ItemContent>\n <BaseMenu.CheckboxItemIndicator keepMounted className=\"flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-checked:opacity-100\">\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </BaseMenu.CheckboxItemIndicator>\n </BaseMenu.CheckboxItem>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxItem.displayName = \"Menu.CheckboxItem\";\n\nconst RadioGroup = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n { value?: string | undefined; defaultValue?: string | undefined; onValueChange?: ((v: string) => void) | undefined; children: ReactNode }\n>(function MenuRadioGroup({ value, defaultValue, onValueChange, children }, ref) {\n return (\n <BaseMenu.RadioGroup\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n >\n {children}\n </BaseMenu.RadioGroup>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RadioGroup.displayName = \"Menu.RadioGroup\";\n\nconst RadioItem = /* @__PURE__ */ forwardRef<HTMLDivElement, Omit<MenuItemProps, \"variant\"> & { value: string }>(function MenuRadioItem(\n { children, value, icon, leading, description, descriptionTone, shortcut, hint, disabled, closeOnClick, className },\n ref,\n) {\n return (\n <BaseMenu.RadioItem\n ref={ref}\n value={value}\n {...(disabled ? { disabled } : {})}\n {...(closeOnClick !== undefined ? { closeOnClick } : {})}\n className={cn(MENU_ITEM, className)}\n >\n <ItemContent icon={icon} leading={leading} description={description} descriptionTone={descriptionTone} shortcut={shortcut} hint={hint}>\n {children}\n </ItemContent>\n <BaseMenu.RadioItemIndicator keepMounted className=\"flex size-16 shrink-0 items-center justify-center text-fg opacity-0 data-checked:opacity-100\">\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </BaseMenu.RadioItemIndicator>\n </BaseMenu.RadioItem>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RadioItem.displayName = \"Menu.RadioItem\";\n\nconst Group = /* @__PURE__ */ forwardRef<HTMLDivElement, { label?: ReactNode | undefined; children: ReactNode }>(function MenuGroup({ label, children }, ref) {\n return (\n <BaseMenu.Group ref={ref} className=\"flex flex-col\">\n {label && <BaseMenu.GroupLabel className={MENU_LABEL}>{label}</BaseMenu.GroupLabel>}\n {children}\n </BaseMenu.Group>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Group.displayName = \"Menu.Group\";\n\nconst Separator = /* @__PURE__ */ forwardRef<HTMLDivElement>(function MenuSeparator(_props, ref) {\n return <div ref={ref} role=\"separator\" aria-orientation=\"horizontal\" className={MENU_SEPARATOR} />;\n});\nif (process.env.NODE_ENV !== \"production\") Separator.displayName = \"Menu.Separator\";\n\nconst Header = /* @__PURE__ */ forwardRef<HTMLDivElement, { avatar?: ReactNode | undefined; name: ReactNode; email?: ReactNode | undefined }>(function MenuHeader(\n { avatar, name, email },\n ref,\n) {\n return (\n <div ref={ref} className=\"flex min-w-0 items-center gap-10 px-10 pt-8 pb-10\">\n {avatar}\n <div className=\"flex min-w-0 flex-col\">\n <span className=\"truncate text-body font-semibold text-fg\">{name}</span>\n {email && <span className=\"truncate text-caption font-regular text-fg-secondary\">{email}</span>}\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Header.displayName = \"Menu.Header\";\n\nfunction Sub({ children, open, onOpenChange }: { children: ReactNode; open?: boolean | undefined; onOpenChange?: ((o: boolean) => void) | undefined }) {\n const trigger = useRef<HTMLElement | null>(null);\n return (\n <BaseMenu.SubmenuRoot {...(open !== undefined ? { open } : {})} {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}>\n <TriggerContext.Provider value={trigger}>{children}</TriggerContext.Provider>\n </BaseMenu.SubmenuRoot>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Sub.displayName = \"Menu.Sub\";\n\nconst SubTrigger = /* @__PURE__ */ forwardRef<HTMLDivElement, Omit<MenuItemProps, \"shortcut\" | \"variant\" | \"onClick\">>(function MenuSubTrigger(\n { children, icon, leading, description, descriptionTone, hint, disabled, className },\n ref,\n) {\n const trigger = useContext(TriggerContext);\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n if (trigger) trigger.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [trigger, ref],\n );\n return (\n <BaseMenu.SubmenuTrigger ref={setRef} {...(disabled ? { disabled } : {})} className={cn(MENU_ITEM, \"open:bg-fill-1\", className)}>\n <ItemContent icon={icon} leading={leading} description={description} descriptionTone={descriptionTone} hint={hint}>\n {children}\n </ItemContent>\n <Icon icon={__icon_ArrowRight01Icon} size=\"sm\" className=\"-mr-2 text-fg-tertiary\" />\n </BaseMenu.SubmenuTrigger>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SubTrigger.displayName = \"Menu.SubTrigger\";\n\nconst SubContent = /* @__PURE__ */ forwardRef<HTMLDivElement, Omit<MenuContentProps, \"side\" | \"align\">>(function MenuSubContent(props, ref) {\n return <Content ref={ref} side=\"right\" align=\"start\" sideOffset={2} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") SubContent.displayName = \"Menu.SubContent\";\n\nexport const Menu = /* @__PURE__ */ Object.assign(Root, {\n Trigger,\n Content,\n Item,\n LinkItem,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Group,\n Separator,\n Header,\n Sub,\n SubTrigger,\n SubContent,\n});\n\nexport const KAESO_CONTEXT_MENU_VARIANTS = {} as const;\nexport const KAESO_CONTEXT_MENU_DEFAULT_VARIANTS = {} as const;\n\nfunction ContextRoot({ children, onOpenChange }: { children: ReactNode; onOpenChange?: ((open: boolean) => void) | undefined }) {\n return <BaseContextMenu.Root {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}>{children}</BaseContextMenu.Root>;\n}\nif (process.env.NODE_ENV !== \"production\") ContextRoot.displayName = \"ContextMenu\";\nconst ContextTrigger = /* @__PURE__ */ forwardRef<HTMLDivElement, { children: ReactNode; className?: string | undefined }>(function ContextMenuTrigger(\n { children, className },\n ref,\n) {\n return (\n <BaseContextMenu.Trigger ref={ref} className={className}>\n {children}\n </BaseContextMenu.Trigger>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ContextTrigger.displayName = \"ContextMenu.Trigger\";\nconst ContextContent = /* @__PURE__ */ forwardRef<HTMLDivElement, Omit<MenuContentProps, \"side\" | \"align\" | \"sideOffset\">>(function ContextMenuContent(\n { children, className, header, footer, width = \"auto\" },\n ref,\n) {\n return (\n <BaseContextMenu.Portal container={usePortalContainer()}>\n <BaseContextMenu.Positioner positionMethod=\"fixed\" collisionBoundary={pageBoundary()} collisionPadding={8} className=\"z-50 outline-none\">\n <BaseContextMenu.Popup ref={ref} tabIndex={0} className={cn(MENU_POPUP, KAESO_MENU_VARIANTS.width[width].classes, className)}>\n {header && <div className=\"mb-6 px-10 pt-6 pb-10 hairline-b\">{header}</div>}\n {children}\n {footer && <div className=\"px-10 pt-6 pb-4 text-caption text-fg-tertiary\">{footer}</div>}\n </BaseContextMenu.Popup>\n </BaseContextMenu.Positioner>\n </BaseContextMenu.Portal>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ContextContent.displayName = \"ContextMenu.Content\";\nexport const ContextMenu = /* @__PURE__ */ Object.assign(ContextRoot, {\n Trigger: ContextTrigger,\n Content: ContextContent,\n Item,\n LinkItem,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Group,\n Separator,\n Sub,\n SubTrigger,\n SubContent,\n});\n\nexport const KAESO_MENUBAR_VARIANTS = {} as const;\nexport const KAESO_MENUBAR_DEFAULT_VARIANTS = {} as const;\n\nconst MenubarRoot = /* @__PURE__ */ forwardRef<HTMLDivElement, { children: ReactNode; className?: string | undefined; \"aria-label\"?: string | undefined }>(function Menubar(\n { children, className, \"aria-label\": ariaLabel },\n ref,\n) {\n return (\n <BaseMenubar ref={ref} className={cn(\"inline-flex items-center gap-2\", className)} {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}>\n {children}\n </BaseMenubar>\n );\n});\nif (process.env.NODE_ENV !== \"production\") MenubarRoot.displayName = \"Menubar\";\nconst MenubarTrigger = /* @__PURE__ */ forwardRef<HTMLButtonElement, { children: ReactNode; className?: string | undefined; \"data-force\"?: string | undefined }>(\n function MenubarTrigger({ children, className, \"data-force\": force }, ref) {\n return (\n <BaseMenu.Trigger\n ref={ref}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"inline-flex h-32 cursor-pointer items-center rounded-pill px-12 text-body font-medium text-fg material-ghost transition-control focus-ring\",\n className,\n )}\n >\n {children}\n </BaseMenu.Trigger>\n );\n },\n);\nif (process.env.NODE_ENV !== \"production\") MenubarTrigger.displayName = \"Menubar.Trigger\";\nexport const Menubar = /* @__PURE__ */ Object.assign(MenubarRoot, {\n Menu: Root,\n Trigger: MenubarTrigger,\n Content,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Group,\n Separator,\n Sub,\n SubTrigger,\n SubContent,\n});\n"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use client";
2
+ import { l as e } from "./styles-CVJU9t9v.js";
3
+ import { r as t } from "./portal-context-BBbzDKmY.js";
4
+ import { i as n } from "./context-BELWW79w.js";
5
+ import { c as r, s as i } from "./sidebar-3r1ZRXlN.js";
6
+ import { forwardRef as a, useEffect as o, useMemo as s, useRef as c } from "react";
7
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { Dialog as d } from "@base-ui/react/dialog";
9
+ //#region src/components/app-frame/nav-sheet.tsx
10
+ var f = /* @__PURE__ */ e({ NavSheet: () => p }), p = /* @__PURE__ */ a(function({ open: e, onOpenChange: a, peek: f = !1, returnFocus: p, children: m }, h) {
11
+ let g = c(void 0), _ = n();
12
+ o(() => () => clearTimeout(g.current), []);
13
+ let v = s(() => ({
14
+ close: () => a(!1),
15
+ peek: f
16
+ }), [a, f]);
17
+ return o(() => {
18
+ if (!e || f || typeof window > "u") return;
19
+ let t = window.matchMedia("(min-width: 1024px)"), n = () => t.matches && a(!1);
20
+ return n(), t.addEventListener("change", n), () => t.removeEventListener("change", n);
21
+ }, [
22
+ e,
23
+ f,
24
+ a
25
+ ]), /* @__PURE__ */ l(d.Root, {
26
+ open: e,
27
+ onOpenChange: (e) => a(e),
28
+ modal: !f,
29
+ children: /* @__PURE__ */ u(d.Portal, {
30
+ container: t(),
31
+ children: [/* @__PURE__ */ l(d.Backdrop, { className: "fixed inset-0 z-40 bg-overlay opacity-60 backdrop-motion" }), /* @__PURE__ */ l(d.Popup, {
32
+ ref: h,
33
+ "aria-label": _("appFrame.navigation", "Navigation"),
34
+ "data-side": "left",
35
+ initialFocus: !f,
36
+ ...p ? { finalFocus: p } : {},
37
+ className: "fixed top-0 bottom-0 left-0 z-40 flex overflow-hidden rounded-r-sheet bg-chrome shadow-dialog outline-none safe-area-sheet sheet-motion",
38
+ onClick: (e) => {
39
+ e.target.closest("a[href]") && a(!1);
40
+ },
41
+ onPointerEnter: () => clearTimeout(g.current),
42
+ onPointerLeave: () => {
43
+ f && (g.current = setTimeout(() => a(!1), 160));
44
+ },
45
+ children: /* @__PURE__ */ l(i.Provider, {
46
+ value: !0,
47
+ children: /* @__PURE__ */ l(r.Provider, {
48
+ value: v,
49
+ children: m
50
+ })
51
+ })
52
+ })]
53
+ })
54
+ });
55
+ });
56
+ process.env.NODE_ENV !== "production" && (p.displayName = "NavSheet");
57
+ //#endregion
58
+ export { f as n, p as t };
59
+
60
+ //# sourceMappingURL=nav-sheet-CzgIwgAm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-sheet-CzgIwgAm.js","names":["__exportAll","usePortalContainer","useUiText","SidebarSheetContext","SidebarFloatingContext","nav_sheet_exports","NavSheet","leave","useRef","t","sheet","useMemo","onOpenChange","peek","useEffect","open","wide","onChange","Dialog","o","returnFocus"],"sources":["../../src/components/app-frame/nav-sheet.tsx"],"sourcesContent":["import { forwardRef, useEffect, useMemo, useRef, type ReactNode, type RefObject } from \"react\";\nimport { Dialog } from \"@base-ui/react/dialog\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { SidebarFloatingContext, SidebarSheetContext } from \"../sidebar/sidebar.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport interface NavSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n peek?: boolean | undefined;\n returnFocus?: RefObject<HTMLElement | null> | undefined;\n children: ReactNode;\n}\n\nexport const NavSheet = /* @__PURE__ */ forwardRef<HTMLDivElement, NavSheetProps>(function NavSheet({ open, onOpenChange, peek = false, returnFocus, children }, ref) {\n const leave = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const t = useUiText();\n useEffect(() => () => clearTimeout(leave.current), []);\n const sheet = useMemo(() => ({ close: () => onOpenChange(false), peek }), [onOpenChange, peek]);\n useEffect(() => {\n if (!open || peek || typeof window === \"undefined\") return;\n const wide = window.matchMedia(\"(min-width: 1024px)\");\n const onChange = () => wide.matches && onOpenChange(false);\n onChange();\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, [open, peek, onOpenChange]);\n return (\n <Dialog.Root open={open} onOpenChange={(o: boolean) => onOpenChange(o)} modal={!peek}>\n <Dialog.Portal container={usePortalContainer()}>\n <Dialog.Backdrop className=\"fixed inset-0 z-40 bg-overlay opacity-60 backdrop-motion\" />\n <Dialog.Popup\n ref={ref}\n aria-label={t(\"appFrame.navigation\", \"Navigation\")}\n data-side=\"left\"\n initialFocus={!peek}\n {...(returnFocus ? { finalFocus: returnFocus } : {})}\n className=\"fixed top-0 bottom-0 left-0 z-40 flex overflow-hidden rounded-r-sheet bg-chrome shadow-dialog outline-none safe-area-sheet sheet-motion\"\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"a[href]\")) onOpenChange(false);\n }}\n onPointerEnter={() => clearTimeout(leave.current)}\n onPointerLeave={() => {\n if (!peek) return;\n leave.current = setTimeout(() => onOpenChange(false), 160);\n }}\n >\n <SidebarFloatingContext.Provider value>\n <SidebarSheetContext.Provider value={sheet}>{children}</SidebarSheetContext.Provider>\n </SidebarFloatingContext.Provider>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") NavSheet.displayName = \"NavSheet\";\n"],"mappings":";;;;;;;;;A,kDAcaM,IAA2B,kBAA0C,SAAkB,EAAE,SAAM,iBAAc,UAAO,IAAO,gBAAa,eAAY,GAAK;CACpK,IAAMC,IAAQC,EAAkD,KAAA,CAAS,GACnEC,IAAIP,EAAU;CACpB,cAAsB,aAAaK,EAAM,OAAO,GAAG,CAAC,CAAC;CACrD,IAAMG,IAAQC,SAAe;EAAE,aAAaC,EAAa,EAAK;EAAG;CAAK,IAAI,CAACA,GAAcC,CAAI,CAAC;CAS9F,OARAC,QAAgB;EACd,IAAI,CAACC,KAAQF,KAAQ,OAAO,SAAW,KAAa;EACpD,IAAMG,IAAO,OAAO,WAAW,qBAAqB,GAC9CC,UAAiBD,EAAK,WAAWJ,EAAa,EAAK;EAGzD,OAFAK,EAAS,GACTD,EAAK,iBAAiB,UAAUC,CAAQ,SAC3BD,EAAK,oBAAoB,UAAUC,CAAQ;CAC1D,GAAG;EAACF;EAAMF;EAAMD;CAAY,CAAC,GAE3B,kBAACM,EAAO,MAAR;EAAmB;EAAM,eAAe,MAAeN,EAAaO,CAAC;EAAG,OAAO,CAACN;EAC9E,UAAA,kBAACK,EAAO,QAAR;GAAe,WAAWjB,EAAmB;GAA7C,UAAA,CACE,kBAACiB,EAAO,UAAR,EAAiB,WAAU,2DAA4D,CAAA,GACvF,kBAACA,EAAO,OAAR;IACO;IACL,cAAYT,EAAE,uBAAuB,YAAY;IACjD,aAAU;IACV,cAAc,CAACI;IACf,GAAKO,IAAc,EAAE,YAAYA,EAAY,IAAI,CAAC;IAClD,WAAU;IACV,UAAU,MAAM;KACd,AAAK,EAAE,OAAuB,QAAQ,SAAS,KAAGR,EAAa,EAAK;IACtE;IACA,sBAAsB,aAAaL,EAAM,OAAO;IAChD,sBAAsB;KACpB,AAAKM,MACL,EAAM,UAAU,iBAAiBD,EAAa,EAAK,GAAG,GAAG;IAC3D;IAEA,UAAA,kBAACR,EAAuB,UAAxB;KAAiC,OAAA;KAC/B,UAAA,kBAACD,EAAoB,UAArB;MAA8B,OAAOO;MAAQ;KAAuC,CAAA;IACrD,CAAA;GACrB,CAAA,CACD;;CACJ,CAAA;AAEjB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { t } from "./icon-D7ja-_Yk.js";
4
- import { s as n } from "./app-frame-C8csevkL.js";
4
+ import { s as n } from "./app-frame-DogGRmsu.js";
5
5
  import { forwardRef as r } from "react";
6
6
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
7
  //#region src/components/page-header/page-header.tsx
@@ -38,4 +38,4 @@ process.env.NODE_ENV !== "production" && (c.displayName = "PageHeader");
38
38
  //#endregion
39
39
  export { o as n, c as r, s as t };
40
40
 
41
- //# sourceMappingURL=page-header-DjUMDG69.js.map
41
+ //# sourceMappingURL=page-header-DL2y2iZp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-header-DjUMDG69.js","names":["cn","useAppFrame","KAESO_PAGE_HEADER_VARIANTS","KAESO_PAGE_HEADER_DEFAULT_VARIANTS","PageHeader","Heading","className","start","title","icon","Icon","tabs","actions"],"sources":["../../src/components/page-header/page-header.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { useAppFrame } from \"../app-frame/app-frame.js\";\n\nexport const KAESO_PAGE_HEADER_VARIANTS = {\n size: {\n md: {\n classes: \"min-h-52 flex-wrap gap-x-12 gap-y-8 px-24 py-10 sm:h-52 sm:flex-nowrap sm:py-0\",\n },\n },\n} as const;\nexport const KAESO_PAGE_HEADER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface PageHeaderProps {\n title?: ReactNode | undefined;\n icon?: IconData | undefined;\n tabs?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n start?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const PageHeader = /* @__PURE__ */ forwardRef<HTMLElement, PageHeaderProps>(function PageHeader({ title, icon, tabs, actions, start, className }, ref) {\n const Heading = useAppFrame().embedded ? \"h2\" : \"h1\";\n return (\n <header ref={ref} className={cn(\"flex shrink-0 items-center\", KAESO_PAGE_HEADER_VARIANTS.size.md.classes, className)}>\n {start}\n {title && (\n <Heading className=\"flex min-w-0 items-center gap-8 text-body-lg font-semibold text-fg\">\n {icon && <Icon icon={icon} size=\"sm\" className=\"text-fg-secondary\" />}\n <span className=\"truncate\">{title}</span>\n </Heading>\n )}\n {tabs && <div className=\"order-last min-w-0 basis-full sm:order-none sm:ml-8 sm:basis-auto\">{tabs}</div>}\n <div className=\"ml-auto flex shrink-0 items-center gap-8\">{actions}</div>\n </header>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PageHeader.displayName = \"PageHeader\";\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA6B,EACxC,MAAM,EACJ,IAAI,EACF,SAAS,iFACX,EACF,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAWlDC,IAA6B,kBAAyC,SAAoB,EAAE,UAAO,SAAM,SAAM,YAAS,UAAO,gBAAa,GAAK;CAC5J,IAAMC,IAAUJ,EAAY,CAAC,CAAC,WAAW,OAAO;CAChD,OACE,kBAAC,UAAD;EAAa;EAAK,WAAWD,EAAG,8BAA8BE,EAA2B,KAAK,GAAG,SAASI,CAAS;EAAnH,UAAA;GACGC;GACAC,KACC,kBAACH,GAAD;IAAS,WAAU;IAAnB,UAAA,CACGI,KAAQ,kBAACC,GAAD;KAAY;KAAM,MAAK;KAAK,WAAU;IAAqB,CAAA,GACpE,kBAAC,QAAD;KAAM,WAAU;KAAY,UAAAF;IAAY,CAAA,CACjC;;GAEVG,KAAQ,kBAAC,OAAD;IAAK,WAAU;IAAqE,UAAAA;GAAU,CAAA;GACvG,kBAAC,OAAD;IAAK,WAAU;IAA4C,UAAAC;GAAa,CAAA;EAClE;;AAEZ,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
1
+ {"version":3,"file":"page-header-DL2y2iZp.js","names":["cn","useAppFrame","KAESO_PAGE_HEADER_VARIANTS","KAESO_PAGE_HEADER_DEFAULT_VARIANTS","PageHeader","Heading","className","start","title","icon","Icon","tabs","actions"],"sources":["../../src/components/page-header/page-header.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { useAppFrame } from \"../app-frame/app-frame.js\";\n\nexport const KAESO_PAGE_HEADER_VARIANTS = {\n size: {\n md: {\n classes: \"min-h-52 flex-wrap gap-x-12 gap-y-8 px-24 py-10 sm:h-52 sm:flex-nowrap sm:py-0\",\n },\n },\n} as const;\nexport const KAESO_PAGE_HEADER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface PageHeaderProps {\n title?: ReactNode | undefined;\n icon?: IconData | undefined;\n tabs?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n start?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const PageHeader = /* @__PURE__ */ forwardRef<HTMLElement, PageHeaderProps>(function PageHeader({ title, icon, tabs, actions, start, className }, ref) {\n const Heading = useAppFrame().embedded ? \"h2\" : \"h1\";\n return (\n <header ref={ref} className={cn(\"flex shrink-0 items-center\", KAESO_PAGE_HEADER_VARIANTS.size.md.classes, className)}>\n {start}\n {title && (\n <Heading className=\"flex min-w-0 items-center gap-8 text-body-lg font-semibold text-fg\">\n {icon && <Icon icon={icon} size=\"sm\" className=\"text-fg-secondary\" />}\n <span className=\"truncate\">{title}</span>\n </Heading>\n )}\n {tabs && <div className=\"order-last min-w-0 basis-full sm:order-none sm:ml-8 sm:basis-auto\">{tabs}</div>}\n <div className=\"ml-auto flex shrink-0 items-center gap-8\">{actions}</div>\n </header>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PageHeader.displayName = \"PageHeader\";\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA6B,EACxC,MAAM,EACJ,IAAI,EACF,SAAS,iFACX,EACF,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAWlDC,IAA6B,kBAAyC,SAAoB,EAAE,UAAO,SAAM,SAAM,YAAS,UAAO,gBAAa,GAAK;CAC5J,IAAMC,IAAUJ,EAAY,CAAC,CAAC,WAAW,OAAO;CAChD,OACE,kBAAC,UAAD;EAAa;EAAK,WAAWD,EAAG,8BAA8BE,EAA2B,KAAK,GAAG,SAASI,CAAS;EAAnH,UAAA;GACGC;GACAC,KACC,kBAACH,GAAD;IAAS,WAAU;IAAnB,UAAA,CACGI,KAAQ,kBAACC,GAAD;KAAY;KAAM,MAAK;KAAK,WAAU;IAAqB,CAAA,GACpE,kBAAC,QAAD;KAAM,WAAU;KAAY,UAAAF;IAAY,CAAA,CACjC;;GAEVG,KAAQ,kBAAC,OAAD;IAAK,WAAU;IAAqE,UAAAA;GAAU,CAAA;GACvG,kBAAC,OAAD;IAAK,WAAU;IAA4C,UAAAC;GAAa,CAAA;EAClE;;AAEZ,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t } from "./context-BELWW79w.js";
4
- import { n } from "./button-Dzu7_csE.js";
5
- import { t as r } from "./icon-button-CPYR21Sz.js";
4
+ import { n } from "./button-CzuxqawA.js";
5
+ import { t as r } from "./icon-button-CrdF_eMG.js";
6
6
  import { forwardRef as i } from "react";
7
7
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
8
  import { ArrowLeft01Icon as s, ArrowRight01Icon as c } from "@hugeicons/core-free-icons";
@@ -83,4 +83,4 @@ process.env.NODE_ENV !== "production" && (d.displayName = "Pagination");
83
83
  //#endregion
84
84
  export { l as n, d as r, u as t };
85
85
 
86
- //# sourceMappingURL=pagination-BaY8jdli.js.map
86
+ //# sourceMappingURL=pagination-Cn_qF4cg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-BaY8jdli.js","names":["__icon_ArrowLeft01Icon","__icon_ArrowRight01Icon","cn","useUiText","IconButton","KAESO_PAGINATION_VARIANTS","KAESO_PAGINATION_DEFAULT_VARIANTS","Pagination","t","label","previous","next","loadMore","variant","hasMore","className","Button","onLoadMore","ArrowLeft01Icon","hasPrevious","onPrevious","ArrowRight01Icon","onNext","pages","pageCount","i","p","page","onPageChange"],"sources":["../../src/components/pagination/pagination.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ArrowLeft01Icon as __icon_ArrowLeft01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Button } from \"../button/button.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_PAGINATION_VARIANTS = {\n variant: {\n \"load-more\": { classes: \"\" },\n cursor: { classes: \"\" },\n pages: { classes: \"\" },\n },\n} as const;\nexport const KAESO_PAGINATION_DEFAULT_VARIANTS = { variant: \"load-more\" } as const;\n\nexport interface PaginationProps {\n variant?: keyof typeof KAESO_PAGINATION_VARIANTS.variant | undefined;\n hasMore?: boolean | undefined;\n hasPrevious?: boolean | undefined;\n loading?: boolean | undefined;\n onLoadMore?: (() => void) | undefined;\n onNext?: (() => void) | undefined;\n onPrevious?: (() => void) | undefined;\n page?: number | undefined;\n pageCount?: number | undefined;\n onPageChange?: ((page: number) => void) | undefined;\n className?: string | undefined;\n}\n\nexport const Pagination = /* @__PURE__ */ forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { variant = \"load-more\", hasMore, hasPrevious, loading, onLoadMore, onNext, onPrevious, page = 1, pageCount = 1, onPageChange, className },\n ref,\n) {\n const t = useUiText();\n const label = t(\"pagination.label\", \"Pagination\");\n const previous = t(\"pagination.previous\", \"Previous page\");\n const next = t(\"pagination.next\", \"Next page\");\n const loadMore = t(\"pagination.loadMore\", \"Load more\");\n\n if (variant === \"load-more\") {\n if (!hasMore) return null;\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center justify-center gap-12 py-12\", className)}>\n <Button variant=\"ghost\" size=\"sm\" loading={loading} onClick={onLoadMore} reserveLabels={[loadMore]}>\n {loadMore}\n </Button>\n </nav>\n );\n }\n if (variant === \"cursor\") {\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-8\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} variant=\"secondary\" disabled={!hasPrevious} onClick={onPrevious} />\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} variant=\"secondary\" disabled={!hasMore} onClick={onNext} />\n </nav>\n );\n }\n const pages = Array.from({ length: pageCount }, (_, i) => i + 1).filter((p) => p === 1 || p === pageCount || Math.abs(p - page) <= 1);\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-4\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} disabled={page <= 1} onClick={() => onPageChange?.(page - 1)} />\n {pages.map((p, i) => (\n <span key={p} className=\"flex items-center gap-4\">\n {i > 0 && p - (pages[i - 1] ?? p) > 1 && <span className=\"w-24 text-center text-fg-tertiary\">…</span>}\n <button\n type=\"button\"\n aria-current={p === page ? \"page\" : undefined}\n aria-label={t(\"pagination.page\", \"Page {page}\", { page: String(p) })}\n onClick={() => onPageChange?.(p)}\n className={cn(\n \"inline-flex h-32 min-w-32 cursor-pointer items-center justify-center rounded-pill px-8 text-body font-medium tabular transition-control focus-ring\",\n p === page ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-1 hover:text-fg\",\n )}\n >\n {p}\n </button>\n </span>\n ))}\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} disabled={page >= pageCount} onClick={() => onPageChange?.(page + 1)} />\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Pagination.displayName = \"Pagination\";\n"],"mappings":";;;;;;;;;AAOA,IAAaK,IAA4B,EACvC,SAAS;CACP,aAAa,EAAE,SAAS,GAAG;CAC3B,QAAQ,EAAE,SAAS,GAAG;CACtB,OAAO,EAAE,SAAS,GAAG;AACvB,EACF,GACaC,IAAoC,EAAE,SAAS,YAAY,GAgB3DC,IAA6B,kBAAyC,SACjF,EAAE,aAAU,aAAa,YAAS,gBAAa,YAAS,eAAY,WAAQ,eAAY,UAAO,GAAG,eAAY,GAAG,iBAAc,gBAC/H,GACA;CACA,IAAMC,IAAIL,EAAU,GACdM,IAAQD,EAAE,oBAAoB,YAAY,GAC1CE,IAAWF,EAAE,uBAAuB,eAAe,GACnDG,IAAOH,EAAE,mBAAmB,WAAW,GACvCI,IAAWJ,EAAE,uBAAuB,WAAW;CAErD,IAAIK,MAAY,aAEd,OADKC,IAEH,kBAAC,OAAD;EAAU;EAAK,cAAYL;EAAO,WAAWP,EAAG,iDAAiDa,CAAS;EACxG,UAAA,kBAACC,GAAD;GAAQ,SAAQ;GAAQ,MAAK;GAAc;GAAS,SAASC;GAAY,eAAe,CAACL,CAAQ;GAC9F,UAAAA;EACK,CAAA;CACL,CAAA,IANc;CASvB,IAAIC,MAAY,UACd,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYJ;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA,CACE,kBAACX,GAAD;GAAY,MAAMJ;GAAwB,cAAYU;GAAU,SAAQ;GAAY,UAAU,CAACS;GAAa,SAASC;EAAa,CAAA,GAClI,kBAAChB,GAAD;GAAY,MAAMH;GAAyB,cAAYU;GAAM,SAAQ;GAAY,UAAU,CAACG;GAAS,SAASQ;EAAS,CAAA,CACpH;;CAGT,IAAMC,IAAQ,MAAM,KAAK,EAAE,QAAQC,EAAU,IAAI,GAAG,MAAMC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAMC,MAAM,KAAKA,MAAMF,KAAa,KAAK,IAAIE,IAAIC,CAAI,KAAK,CAAC;CACpI,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYlB;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA;GACE,kBAACX,GAAD;IAAY,MAAMJ;IAAwB,cAAYU;IAAU,UAAUiB,KAAQ;IAAG,eAAeC,IAAeD,IAAO,CAAC;GAAI,CAAA;GAC9HJ,EAAM,KAAK,GAAG,MACb,kBAAC,QAAD;IAAc,WAAU;IAAxB,UAAA,CACGE,IAAI,KAAKC,KAAKH,EAAME,IAAI,MAAMC,KAAK,KAAK,kBAAC,QAAD;KAAM,WAAU;KAAoC,UAAA;IAAO,CAAA,GACpG,kBAAC,UAAD;KACE,MAAK;KACL,gBAAcA,MAAMC,IAAO,SAAS,KAAA;KACpC,cAAYnB,EAAE,mBAAmB,eAAe,EAAE,MAAM,OAAOkB,CAAC,EAAE,CAAC;KACnE,eAAeE,IAAeF,CAAC;KAC/B,WAAWxB,EACT,sJACAwB,MAAMC,IAAO,sBAAsB,iDACrC;KAEC,UAAAD;IACK,CAAA,CACJ;GAdK,GAAAA,CAcL,CACP;GACD,kBAACtB,GAAD;IAAY,MAAMH;IAAyB,cAAYU;IAAM,UAAUgB,KAAQH;IAAW,eAAeI,IAAeD,IAAO,CAAC;GAAI,CAAA;EACjI;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
1
+ {"version":3,"file":"pagination-Cn_qF4cg.js","names":["__icon_ArrowLeft01Icon","__icon_ArrowRight01Icon","cn","useUiText","IconButton","KAESO_PAGINATION_VARIANTS","KAESO_PAGINATION_DEFAULT_VARIANTS","Pagination","t","label","previous","next","loadMore","variant","hasMore","className","Button","onLoadMore","ArrowLeft01Icon","hasPrevious","onPrevious","ArrowRight01Icon","onNext","pages","pageCount","i","p","page","onPageChange"],"sources":["../../src/components/pagination/pagination.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ArrowLeft01Icon as __icon_ArrowLeft01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Button } from \"../button/button.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_PAGINATION_VARIANTS = {\n variant: {\n \"load-more\": { classes: \"\" },\n cursor: { classes: \"\" },\n pages: { classes: \"\" },\n },\n} as const;\nexport const KAESO_PAGINATION_DEFAULT_VARIANTS = { variant: \"load-more\" } as const;\n\nexport interface PaginationProps {\n variant?: keyof typeof KAESO_PAGINATION_VARIANTS.variant | undefined;\n hasMore?: boolean | undefined;\n hasPrevious?: boolean | undefined;\n loading?: boolean | undefined;\n onLoadMore?: (() => void) | undefined;\n onNext?: (() => void) | undefined;\n onPrevious?: (() => void) | undefined;\n page?: number | undefined;\n pageCount?: number | undefined;\n onPageChange?: ((page: number) => void) | undefined;\n className?: string | undefined;\n}\n\nexport const Pagination = /* @__PURE__ */ forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { variant = \"load-more\", hasMore, hasPrevious, loading, onLoadMore, onNext, onPrevious, page = 1, pageCount = 1, onPageChange, className },\n ref,\n) {\n const t = useUiText();\n const label = t(\"pagination.label\", \"Pagination\");\n const previous = t(\"pagination.previous\", \"Previous page\");\n const next = t(\"pagination.next\", \"Next page\");\n const loadMore = t(\"pagination.loadMore\", \"Load more\");\n\n if (variant === \"load-more\") {\n if (!hasMore) return null;\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center justify-center gap-12 py-12\", className)}>\n <Button variant=\"ghost\" size=\"sm\" loading={loading} onClick={onLoadMore} reserveLabels={[loadMore]}>\n {loadMore}\n </Button>\n </nav>\n );\n }\n if (variant === \"cursor\") {\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-8\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} variant=\"secondary\" disabled={!hasPrevious} onClick={onPrevious} />\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} variant=\"secondary\" disabled={!hasMore} onClick={onNext} />\n </nav>\n );\n }\n const pages = Array.from({ length: pageCount }, (_, i) => i + 1).filter((p) => p === 1 || p === pageCount || Math.abs(p - page) <= 1);\n return (\n <nav ref={ref} aria-label={label} className={cn(\"flex items-center gap-4\", className)}>\n <IconButton icon={__icon_ArrowLeft01Icon} aria-label={previous} disabled={page <= 1} onClick={() => onPageChange?.(page - 1)} />\n {pages.map((p, i) => (\n <span key={p} className=\"flex items-center gap-4\">\n {i > 0 && p - (pages[i - 1] ?? p) > 1 && <span className=\"w-24 text-center text-fg-tertiary\">…</span>}\n <button\n type=\"button\"\n aria-current={p === page ? \"page\" : undefined}\n aria-label={t(\"pagination.page\", \"Page {page}\", { page: String(p) })}\n onClick={() => onPageChange?.(p)}\n className={cn(\n \"inline-flex h-32 min-w-32 cursor-pointer items-center justify-center rounded-pill px-8 text-body font-medium tabular transition-control focus-ring\",\n p === page ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-1 hover:text-fg\",\n )}\n >\n {p}\n </button>\n </span>\n ))}\n <IconButton icon={__icon_ArrowRight01Icon} aria-label={next} disabled={page >= pageCount} onClick={() => onPageChange?.(page + 1)} />\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Pagination.displayName = \"Pagination\";\n"],"mappings":";;;;;;;;;AAOA,IAAaK,IAA4B,EACvC,SAAS;CACP,aAAa,EAAE,SAAS,GAAG;CAC3B,QAAQ,EAAE,SAAS,GAAG;CACtB,OAAO,EAAE,SAAS,GAAG;AACvB,EACF,GACaC,IAAoC,EAAE,SAAS,YAAY,GAgB3DC,IAA6B,kBAAyC,SACjF,EAAE,aAAU,aAAa,YAAS,gBAAa,YAAS,eAAY,WAAQ,eAAY,UAAO,GAAG,eAAY,GAAG,iBAAc,gBAC/H,GACA;CACA,IAAMC,IAAIL,EAAU,GACdM,IAAQD,EAAE,oBAAoB,YAAY,GAC1CE,IAAWF,EAAE,uBAAuB,eAAe,GACnDG,IAAOH,EAAE,mBAAmB,WAAW,GACvCI,IAAWJ,EAAE,uBAAuB,WAAW;CAErD,IAAIK,MAAY,aAEd,OADKC,IAEH,kBAAC,OAAD;EAAU;EAAK,cAAYL;EAAO,WAAWP,EAAG,iDAAiDa,CAAS;EACxG,UAAA,kBAACC,GAAD;GAAQ,SAAQ;GAAQ,MAAK;GAAc;GAAS,SAASC;GAAY,eAAe,CAACL,CAAQ;GAC9F,UAAAA;EACK,CAAA;CACL,CAAA,IANc;CASvB,IAAIC,MAAY,UACd,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYJ;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA,CACE,kBAACX,GAAD;GAAY,MAAMJ;GAAwB,cAAYU;GAAU,SAAQ;GAAY,UAAU,CAACS;GAAa,SAASC;EAAa,CAAA,GAClI,kBAAChB,GAAD;GAAY,MAAMH;GAAyB,cAAYU;GAAM,SAAQ;GAAY,UAAU,CAACG;GAAS,SAASQ;EAAS,CAAA,CACpH;;CAGT,IAAMC,IAAQ,MAAM,KAAK,EAAE,QAAQC,EAAU,IAAI,GAAG,MAAMC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAMC,MAAM,KAAKA,MAAMF,KAAa,KAAK,IAAIE,IAAIC,CAAI,KAAK,CAAC;CACpI,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYlB;EAAO,WAAWP,EAAG,2BAA2Ba,CAAS;EAApF,UAAA;GACE,kBAACX,GAAD;IAAY,MAAMJ;IAAwB,cAAYU;IAAU,UAAUiB,KAAQ;IAAG,eAAeC,IAAeD,IAAO,CAAC;GAAI,CAAA;GAC9HJ,EAAM,KAAK,GAAG,MACb,kBAAC,QAAD;IAAc,WAAU;IAAxB,UAAA,CACGE,IAAI,KAAKC,KAAKH,EAAME,IAAI,MAAMC,KAAK,KAAK,kBAAC,QAAD;KAAM,WAAU;KAAoC,UAAA;IAAO,CAAA,GACpG,kBAAC,UAAD;KACE,MAAK;KACL,gBAAcA,MAAMC,IAAO,SAAS,KAAA;KACpC,cAAYnB,EAAE,mBAAmB,eAAe,EAAE,MAAM,OAAOkB,CAAC,EAAE,CAAC;KACnE,eAAeE,IAAeF,CAAC;KAC/B,WAAWxB,EACT,sJACAwB,MAAMC,IAAO,sBAAsB,iDACrC;KAEC,UAAAD;IACK,CAAA,CACJ;GAdK,GAAAA,CAcL,CACP;GACD,kBAACtB,GAAD;IAAY,MAAMH;IAAyB,cAAYU;IAAM,UAAUgB,KAAQH;IAAW,eAAeI,IAAeD,IAAO,CAAC;GAAI,CAAA;EACjI;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
@@ -3,10 +3,10 @@ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { n as t, r as n } from "./portal-context-BBbzDKmY.js";
4
4
  import { i as r } from "./context-BELWW79w.js";
5
5
  import { t as i } from "./icon-D7ja-_Yk.js";
6
- import { t as a } from "./icon-button-CPYR21Sz.js";
6
+ import { t as a } from "./icon-button-CrdF_eMG.js";
7
7
  import { n as o } from "./select-x4XVsdCI.js";
8
8
  import { n as s, r as c, t as l } from "./hidden-description-B2zSmLcn.js";
9
- import { n as u } from "./command-list-0RR4DpUe.js";
9
+ import { n as u } from "./command-list-C2Y7V_lt.js";
10
10
  import { forwardRef as d, useSyncExternalStore as f } from "react";
11
11
  import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
12
12
  import { ArrowDown01Icon as g, Cancel01Icon as _ } from "@hugeicons/core-free-icons";
@@ -21,15 +21,15 @@ var b = { width: {
21
21
  if (typeof window > "u" || !window.matchMedia) return () => {};
22
22
  let t = window.matchMedia(S);
23
23
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
24
- }, w = () => typeof window < "u" && !!window.matchMedia?.(S).matches;
25
- function T({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", align: d = "start", children: p }) {
26
- let g = r(), x = n(), S = f(C, w, () => !1), T = c ? { onOpenChange: (e) => c(e) } : {}, E = s === void 0 ? {} : { open: s };
27
- return S ? /* @__PURE__ */ h(y.Root, {
24
+ }, w = () => typeof window < "u" && !!window.matchMedia?.(S).matches, T = /* @__PURE__ */ d(function({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", align: d = "start", children: p }, g) {
25
+ let x = r(), S = n(), T = f(C, w, () => !1), E = c ? { onOpenChange: (e) => c(e) } : {}, D = s === void 0 ? {} : { open: s };
26
+ return T ? /* @__PURE__ */ h(y.Root, {
27
+ ...D,
28
28
  ...E,
29
- ...T,
30
29
  children: [/* @__PURE__ */ m(y.Trigger, { render: i }), /* @__PURE__ */ h(y.Portal, {
31
- container: x,
30
+ container: S,
32
31
  children: [/* @__PURE__ */ m(y.Backdrop, { className: "fixed inset-0 z-50 bg-overlay opacity-50 backdrop-motion" }), /* @__PURE__ */ h(y.Popup, {
32
+ ref: g,
33
33
  "data-side": "bottom",
34
34
  className: "fixed inset-8 z-50 flex flex-col overflow-hidden rounded-sheet bg-raised text-fg shadow-dialog outline-none sheet-motion",
35
35
  children: [/* @__PURE__ */ h("div", {
@@ -39,7 +39,7 @@ function T({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", al
39
39
  children: o
40
40
  }), /* @__PURE__ */ m(y.Close, { render: /* @__PURE__ */ m(a, {
41
41
  icon: _,
42
- "aria-label": g("pickerPopover.close", "Close"),
42
+ "aria-label": x("pickerPopover.close", "Close"),
43
43
  tooltip: !1
44
44
  }) })]
45
45
  }), /* @__PURE__ */ m(u.Provider, {
@@ -49,11 +49,11 @@ function T({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", al
49
49
  })]
50
50
  })]
51
51
  }) : /* @__PURE__ */ h(v.Root, {
52
+ ...D,
52
53
  ...E,
53
- ...T,
54
54
  modal: !1,
55
55
  children: [/* @__PURE__ */ m(v.Trigger, { render: i }), /* @__PURE__ */ m(v.Portal, {
56
- container: x,
56
+ container: S,
57
57
  children: /* @__PURE__ */ m(v.Positioner, {
58
58
  positionMethod: "fixed",
59
59
  collisionBoundary: t(),
@@ -63,6 +63,7 @@ function T({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", al
63
63
  collisionPadding: 8,
64
64
  className: "z-50 outline-none",
65
65
  children: /* @__PURE__ */ m(v.Popup, {
66
+ ref: g,
66
67
  "aria-label": o,
67
68
  className: e("flex max-w-full-bleed-4 flex-col overflow-hidden rounded-popover bg-raised text-fg shadow-raised outline-none popup-motion", b.width[l].classes),
68
69
  children: /* @__PURE__ */ m(u.Provider, {
@@ -73,7 +74,7 @@ function T({ trigger: i, title: o, open: s, onOpenChange: c, width: l = "md", al
73
74
  })
74
75
  })]
75
76
  });
76
- }
77
+ });
77
78
  process.env.NODE_ENV !== "production" && (T.displayName = "PickerPopover");
78
79
  var E = /* @__PURE__ */ d(function({ appearance: t = "default", size: n = "md", fullWidth: r, invalid: a, placeholder: u, children: d, className: f, type: _ = "button", "aria-label": v, "aria-describedby": y, ...b }, x) {
79
80
  let S = d == null || d === !1, C = s(S ? u : d), w = c(C ? v : void 0), T = l(w.id, y);
@@ -102,4 +103,4 @@ process.env.NODE_ENV !== "production" && (E.displayName = "PickerTrigger");
102
103
  //#endregion
103
104
  export { E as i, b as n, T as r, x as t };
104
105
 
105
- //# sourceMappingURL=picker-popover-DShea4b8.js.map
106
+ //# sourceMappingURL=picker-popover-BxyU1U9F.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picker-popover-DShea4b8.js","names":["BaseDialog","__icon_Cancel01Icon","BasePopover","_Fragment","__icon_ArrowDown01Icon","cn","pageBoundary","usePortalContainer","useUiText","Icon","IconButton","KAESO_SELECT_VARIANTS","showsText","useHiddenDescription","joinIds","CommandListHeightContext","Fragment$1","KAESO_PICKER_POPOVER_VARIANTS","KAESO_PICKER_POPOVER_DEFAULT_VARIANTS","NARROW","subscribeNarrow","q","onChange","isNarrow","PickerPopover","t","container","narrow","useSyncExternalStore","change","onOpenChange","o","state","open","Dialog","trigger","title","Cancel01Icon","Popover","width","PickerTrigger","ariaLabel","describedBy","props","empty","children","shows","placeholder","purpose","descriptions","invalid","size","appearance","fullWidth","className","ArrowDown01Icon"],"sources":["../../src/components/command-list/picker-popover.tsx"],"sourcesContent":["import { forwardRef, useSyncExternalStore, type ButtonHTMLAttributes, type ReactElement, type ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowDown01Icon as __icon_ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { KAESO_SELECT_VARIANTS } from \"../select/select.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { joinIds, showsText, useHiddenDescription } from \"../../utils/hidden-description.js\";\nimport { CommandListHeightContext } from \"./command-list.js\";\n\nexport const KAESO_PICKER_POPOVER_VARIANTS = {\n width: {\n sm: { classes: \"w-320\" },\n md: { classes: \"w-400\" },\n lg: { classes: \"w-560\" },\n },\n} as const;\nexport const KAESO_PICKER_POPOVER_DEFAULT_VARIANTS = { width: \"md\" } as const;\n\nconst NARROW = \"(max-width: 767px)\";\nconst subscribeNarrow = (onChange: () => void) => {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const q = window.matchMedia(NARROW);\n q.addEventListener(\"change\", onChange);\n return () => q.removeEventListener(\"change\", onChange);\n};\nconst isNarrow = () => typeof window !== \"undefined\" && !!window.matchMedia?.(NARROW).matches;\n\nexport interface PickerPopoverProps {\n trigger: ReactElement;\n title: string;\n open?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n width?: keyof typeof KAESO_PICKER_POPOVER_VARIANTS.width | undefined;\n align?: \"start\" | \"end\" | undefined;\n children: ReactNode;\n}\n\nexport function PickerPopover({ trigger, title, open, onOpenChange, width = \"md\", align = \"start\", children }: PickerPopoverProps) {\n const t = useUiText();\n const container = usePortalContainer();\n const narrow = useSyncExternalStore(subscribeNarrow, isNarrow, () => false);\n const change = onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {};\n const state = open !== undefined ? { open } : {};\n if (narrow)\n return (\n <BaseDialog.Root {...state} {...change}>\n <BaseDialog.Trigger render={trigger} />\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className=\"fixed inset-0 z-50 bg-overlay opacity-50 backdrop-motion\" />\n <BaseDialog.Popup\n data-side=\"bottom\"\n className=\"fixed inset-8 z-50 flex flex-col overflow-hidden rounded-sheet bg-raised text-fg shadow-dialog outline-none sheet-motion\"\n >\n <div className=\"flex h-56 shrink-0 items-center gap-12 pr-8 pl-20 hairline-b\">\n <BaseDialog.Title className=\"min-w-0 flex-1 truncate text-body-lg font-semibold text-fg\">{title}</BaseDialog.Title>\n <BaseDialog.Close render={<IconButton icon={__icon_Cancel01Icon} aria-label={t(\"pickerPopover.close\", \"Close\")} tooltip={false} />} />\n </div>\n <CommandListHeightContext.Provider value=\"fill\">{children}</CommandListHeightContext.Provider>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n return (\n <BasePopover.Root {...state} {...change} modal={false}>\n <BasePopover.Trigger render={trigger} />\n <BasePopover.Portal container={container}>\n <BasePopover.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side=\"bottom\"\n align={align}\n sideOffset={6}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BasePopover.Popup\n aria-label={title}\n className={cn(\n \"flex max-w-full-bleed-4 flex-col overflow-hidden rounded-popover bg-raised text-fg shadow-raised outline-none popup-motion\",\n KAESO_PICKER_POPOVER_VARIANTS.width[width].classes,\n )}\n >\n <CommandListHeightContext.Provider value=\"popover\">{children}</CommandListHeightContext.Provider>\n </BasePopover.Popup>\n </BasePopover.Positioner>\n </BasePopover.Portal>\n </BasePopover.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PickerPopover.displayName = \"PickerPopover\";\n\nexport interface PickerTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n appearance?: keyof typeof KAESO_SELECT_VARIANTS.appearance | undefined;\n size?: keyof typeof KAESO_SELECT_VARIANTS.size | undefined;\n fullWidth?: boolean | undefined;\n invalid?: boolean | undefined;\n placeholder?: ReactNode | undefined;\n children?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const PickerTrigger = /* @__PURE__ */ forwardRef<HTMLButtonElement, PickerTriggerProps>(function PickerTrigger(\n {\n appearance = \"default\",\n size = \"md\",\n fullWidth,\n invalid,\n placeholder,\n children,\n className,\n type = \"button\",\n \"aria-label\": ariaLabel,\n \"aria-describedby\": describedBy,\n ...props\n },\n ref,\n) {\n const empty = children === undefined || children === null || children === false;\n const shows = showsText(empty ? placeholder : children);\n const purpose = useHiddenDescription(shows ? ariaLabel : undefined);\n const descriptions = joinIds(purpose.id, describedBy);\n return (\n <>\n <button\n ref={ref}\n type={type}\n data-picker=\"\"\n {...props}\n {...(!shows && ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(descriptions ? { \"aria-describedby\": descriptions } : {})}\n {...(invalid ? { \"aria-invalid\": true } : {})}\n className={cn(\n \"inline-flex min-w-0 cursor-pointer items-center justify-between rounded-pill font-medium whitespace-nowrap transition-control disabled:cursor-not-allowed\",\n KAESO_SELECT_VARIANTS.size[size].classes,\n KAESO_SELECT_VARIANTS.appearance[appearance].classes,\n invalid && appearance !== \"default\" && \"ring-invalid\",\n fullWidth && \"w-full\",\n className,\n )}\n >\n <span className={cn(\"flex min-w-0 flex-1 items-center truncate text-left\", empty && \"font-regular text-fg-tertiary\")}>\n {empty ? placeholder : children}\n </span>\n <span className=\"flex shrink-0 text-fg-tertiary\">\n <Icon icon={__icon_ArrowDown01Icon} size=\"sm\" />\n </span>\n </button>\n {purpose.node}\n </>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PickerTrigger.displayName = \"PickerTrigger\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"picker-popover-BxyU1U9F.js","names":["BaseDialog","__icon_Cancel01Icon","BasePopover","_Fragment","__icon_ArrowDown01Icon","cn","pageBoundary","usePortalContainer","useUiText","Icon","IconButton","KAESO_SELECT_VARIANTS","showsText","useHiddenDescription","joinIds","CommandListHeightContext","Fragment$1","KAESO_PICKER_POPOVER_VARIANTS","KAESO_PICKER_POPOVER_DEFAULT_VARIANTS","NARROW","subscribeNarrow","q","onChange","isNarrow","PickerPopover","t","container","narrow","useSyncExternalStore","change","onOpenChange","o","state","open","Dialog","trigger","title","Cancel01Icon","Popover","width","PickerTrigger","ariaLabel","describedBy","props","empty","children","shows","placeholder","purpose","descriptions","invalid","size","appearance","fullWidth","className","ArrowDown01Icon"],"sources":["../../src/components/command-list/picker-popover.tsx"],"sourcesContent":["import { forwardRef, useSyncExternalStore, type ButtonHTMLAttributes, type ReactElement, type ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowDown01Icon as __icon_ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { KAESO_SELECT_VARIANTS } from \"../select/select.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { joinIds, showsText, useHiddenDescription } from \"../../utils/hidden-description.js\";\nimport { CommandListHeightContext } from \"./command-list.js\";\n\nexport const KAESO_PICKER_POPOVER_VARIANTS = {\n width: {\n sm: { classes: \"w-320\" },\n md: { classes: \"w-400\" },\n lg: { classes: \"w-560\" },\n },\n} as const;\nexport const KAESO_PICKER_POPOVER_DEFAULT_VARIANTS = { width: \"md\" } as const;\n\nconst NARROW = \"(max-width: 767px)\";\nconst subscribeNarrow = (onChange: () => void) => {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const q = window.matchMedia(NARROW);\n q.addEventListener(\"change\", onChange);\n return () => q.removeEventListener(\"change\", onChange);\n};\nconst isNarrow = () => typeof window !== \"undefined\" && !!window.matchMedia?.(NARROW).matches;\n\nexport interface PickerPopoverProps {\n trigger: ReactElement;\n title: string;\n open?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n width?: keyof typeof KAESO_PICKER_POPOVER_VARIANTS.width | undefined;\n align?: \"start\" | \"end\" | undefined;\n children: ReactNode;\n}\n\nexport const PickerPopover = /* @__PURE__ */ forwardRef<HTMLDivElement, PickerPopoverProps>(function PickerPopover(\n { trigger, title, open, onOpenChange, width = \"md\", align = \"start\", children },\n ref,\n) {\n const t = useUiText();\n const container = usePortalContainer();\n const narrow = useSyncExternalStore(subscribeNarrow, isNarrow, () => false);\n const change = onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {};\n const state = open !== undefined ? { open } : {};\n if (narrow)\n return (\n <BaseDialog.Root {...state} {...change}>\n <BaseDialog.Trigger render={trigger} />\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className=\"fixed inset-0 z-50 bg-overlay opacity-50 backdrop-motion\" />\n <BaseDialog.Popup\n ref={ref}\n data-side=\"bottom\"\n className=\"fixed inset-8 z-50 flex flex-col overflow-hidden rounded-sheet bg-raised text-fg shadow-dialog outline-none sheet-motion\"\n >\n <div className=\"flex h-56 shrink-0 items-center gap-12 pr-8 pl-20 hairline-b\">\n <BaseDialog.Title className=\"min-w-0 flex-1 truncate text-body-lg font-semibold text-fg\">{title}</BaseDialog.Title>\n <BaseDialog.Close render={<IconButton icon={__icon_Cancel01Icon} aria-label={t(\"pickerPopover.close\", \"Close\")} tooltip={false} />} />\n </div>\n <CommandListHeightContext.Provider value=\"fill\">{children}</CommandListHeightContext.Provider>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n return (\n <BasePopover.Root {...state} {...change} modal={false}>\n <BasePopover.Trigger render={trigger} />\n <BasePopover.Portal container={container}>\n <BasePopover.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side=\"bottom\"\n align={align}\n sideOffset={6}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BasePopover.Popup\n ref={ref}\n aria-label={title}\n className={cn(\n \"flex max-w-full-bleed-4 flex-col overflow-hidden rounded-popover bg-raised text-fg shadow-raised outline-none popup-motion\",\n KAESO_PICKER_POPOVER_VARIANTS.width[width].classes,\n )}\n >\n <CommandListHeightContext.Provider value=\"popover\">{children}</CommandListHeightContext.Provider>\n </BasePopover.Popup>\n </BasePopover.Positioner>\n </BasePopover.Portal>\n </BasePopover.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PickerPopover.displayName = \"PickerPopover\";\n\nexport interface PickerTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n appearance?: keyof typeof KAESO_SELECT_VARIANTS.appearance | undefined;\n size?: keyof typeof KAESO_SELECT_VARIANTS.size | undefined;\n fullWidth?: boolean | undefined;\n invalid?: boolean | undefined;\n placeholder?: ReactNode | undefined;\n children?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const PickerTrigger = /* @__PURE__ */ forwardRef<HTMLButtonElement, PickerTriggerProps>(function PickerTrigger(\n {\n appearance = \"default\",\n size = \"md\",\n fullWidth,\n invalid,\n placeholder,\n children,\n className,\n type = \"button\",\n \"aria-label\": ariaLabel,\n \"aria-describedby\": describedBy,\n ...props\n },\n ref,\n) {\n const empty = children === undefined || children === null || children === false;\n const shows = showsText(empty ? placeholder : children);\n const purpose = useHiddenDescription(shows ? ariaLabel : undefined);\n const descriptions = joinIds(purpose.id, describedBy);\n return (\n <>\n <button\n ref={ref}\n type={type}\n data-picker=\"\"\n {...props}\n {...(!shows && ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(descriptions ? { \"aria-describedby\": descriptions } : {})}\n {...(invalid ? { \"aria-invalid\": true } : {})}\n className={cn(\n \"inline-flex min-w-0 cursor-pointer items-center justify-between rounded-pill font-medium whitespace-nowrap transition-control disabled:cursor-not-allowed\",\n KAESO_SELECT_VARIANTS.size[size].classes,\n KAESO_SELECT_VARIANTS.appearance[appearance].classes,\n invalid && appearance !== \"default\" && \"ring-invalid\",\n fullWidth && \"w-full\",\n className,\n )}\n >\n <span className={cn(\"flex min-w-0 flex-1 items-center truncate text-left\", empty && \"font-regular text-fg-tertiary\")}>\n {empty ? placeholder : children}\n </span>\n <span className=\"flex shrink-0 text-fg-tertiary\">\n <Icon icon={__icon_ArrowDown01Icon} size=\"sm\" />\n </span>\n </button>\n {purpose.node}\n </>\n );\n});\nif (process.env.NODE_ENV !== \"production\") PickerTrigger.displayName = \"PickerTrigger\";\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { n as t, r as n } from "./portal-context-BBbzDKmY.js";
4
- import { n as r } from "./inset-BnBj8NJV.js";
4
+ import { n as r } from "./inset-BUzyXLK4.js";
5
5
  import { n as i, r as a, t as o } from "./popover-root-D3q89WNF.js";
6
6
  import { forwardRef as s } from "react";
7
7
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -47,4 +47,4 @@ process.env.NODE_ENV !== "production" && (h.displayName = "Popover");
47
47
  //#endregion
48
48
  export { h as i, d as n, p as r, f as t };
49
49
 
50
- //# sourceMappingURL=popover-CFMwaeIP.js.map
50
+ //# sourceMappingURL=popover-DNN4S47w.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover-CFMwaeIP.js","names":["BasePopover","Popover","cn","pageBoundary","usePortalContainer","InsetContent","PopoverRoot","PopoverTrigger","PopoverClose","KAESO_POPOVER_VARIANTS","KAESO_POPOVER_DEFAULT_VARIANTS","POPOVER_POPUP","Content","ariaLabel","Popover","padding","className","title","Popover$1"],"sources":["../../src/components/popover/popover.tsx"],"sourcesContent":["import { InsetContent } from \"../../utils/inset.js\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\nimport { cn } from \"../../utils/cn.js\";\nimport { PopoverClose, PopoverRoot, PopoverTrigger } from \"./popover-root.js\";\n\nexport type { PopoverProps } from \"./popover-root.js\";\n\nexport const KAESO_POPOVER_VARIANTS = {\n padding: {\n form: { classes: \"p-12\" },\n list: { classes: \"p-6\" },\n none: { classes: \"p-0\" },\n },\n} as const;\nexport const KAESO_POPOVER_DEFAULT_VARIANTS = { padding: \"form\" } as const;\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\nexport const POPOVER_POPUP =\n \"z-50 rounded-popover bg-raised text-body text-fg shadow-raised outline-none popup-motion max-h-(--available-height) overflow-auto scrollbar-quiet\";\n\nexport interface PopoverContentProps {\n children: ReactNode;\n side?: Side | undefined;\n align?: Align | undefined;\n sideOffset?: number | undefined;\n padding?: keyof typeof KAESO_POPOVER_VARIANTS.padding | undefined;\n title?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nconst Content = /* @__PURE__ */ forwardRef<HTMLDivElement, PopoverContentProps>(function PopoverContent(\n { children, side = \"bottom\", align = \"start\", sideOffset = 6, padding = \"form\", title, className, \"aria-label\": ariaLabel },\n ref,\n) {\n return (\n <BasePopover.Portal container={usePortalContainer()}>\n <BasePopover.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side={side}\n align={align}\n sideOffset={sideOffset}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BasePopover.Popup\n ref={ref}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n className={cn(POPOVER_POPUP, KAESO_POPOVER_VARIANTS.padding[padding].classes, className)}\n >\n {title && <BasePopover.Title className=\"mb-8 text-body font-semibold text-fg\">{title}</BasePopover.Title>}\n <InsetContent inset={false}>{children}</InsetContent>\n </BasePopover.Popup>\n </BasePopover.Positioner>\n </BasePopover.Portal>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Content.displayName = \"Popover.Content\";\n\nexport const Popover = /* @__PURE__ */ Object.assign(PopoverRoot, { Trigger: PopoverTrigger, Content, Close: PopoverClose });\nif (process.env.NODE_ENV !== \"production\") Popover.displayName = \"Popover\";\n"],"mappings":";;;;;;;;;AASA,IAAaS,IAAyB,EACpC,SAAS;CACP,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,EAAE,SAAS,MAAM;CACvB,MAAM,EAAE,SAAS,MAAM;AACzB,EACF,GACaC,IAAiC,EAAE,SAAS,OAAO,GAKnDC,IACX,qJAaIC,IAA0B,kBAAgD,SAC9E,EAAE,aAAU,UAAO,UAAU,WAAQ,SAAS,gBAAa,GAAG,aAAU,QAAQ,UAAO,cAAW,cAAcC,KAChH,GACA;CACA,OACE,kBAACb,EAAY,QAAb;EAAoB,WAAWI,EAAmB;EAChD,UAAA,kBAACJ,EAAY,YAAb;GACE,gBAAe;GACf,mBAAmBG,EAAa;GAC1B;GACC;GACK;GACZ,kBAAkB;GAClB,WAAU;GAEV,UAAA,kBAACH,EAAY,OAAb;IACO;IACL,GAAKa,IAAY,EAAE,cAAcA,EAAU,IAAI,CAAC;IAChD,WAAWX,EAAGS,GAAeF,EAAuB,QAAQM,EAAQ,CAAC,SAASC,CAAS;IAHzF,UAAA,CAKGC,KAAS,kBAACjB,EAAY,OAAb;KAAmB,WAAU;KAAwC,UAAAiB;IAAyB,CAAA,GACxG,kBAACZ,GAAD;KAAc,OAAO;KAAQ;IAAuB,CAAA,CACnC;;EACG,CAAA;CACN,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAEjE,IAAaJ,IAA0B,uBAAO,OAAOK,GAAa;CAAE,SAASC;CAAgB;CAAS,OAAOC;AAAa,CAAC;AAC3H,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc"}
1
+ {"version":3,"file":"popover-DNN4S47w.js","names":["BasePopover","Popover","cn","pageBoundary","usePortalContainer","InsetContent","PopoverRoot","PopoverTrigger","PopoverClose","KAESO_POPOVER_VARIANTS","KAESO_POPOVER_DEFAULT_VARIANTS","POPOVER_POPUP","Content","ariaLabel","Popover","padding","className","title","Popover$1"],"sources":["../../src/components/popover/popover.tsx"],"sourcesContent":["import { InsetContent } from \"../../utils/inset.js\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { Popover as BasePopover } from \"@base-ui/react/popover\";\nimport { cn } from \"../../utils/cn.js\";\nimport { PopoverClose, PopoverRoot, PopoverTrigger } from \"./popover-root.js\";\n\nexport type { PopoverProps } from \"./popover-root.js\";\n\nexport const KAESO_POPOVER_VARIANTS = {\n padding: {\n form: { classes: \"p-12\" },\n list: { classes: \"p-6\" },\n none: { classes: \"p-0\" },\n },\n} as const;\nexport const KAESO_POPOVER_DEFAULT_VARIANTS = { padding: \"form\" } as const;\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\nexport const POPOVER_POPUP =\n \"z-50 rounded-popover bg-raised text-body text-fg shadow-raised outline-none popup-motion max-h-(--available-height) overflow-auto scrollbar-quiet\";\n\nexport interface PopoverContentProps {\n children: ReactNode;\n side?: Side | undefined;\n align?: Align | undefined;\n sideOffset?: number | undefined;\n padding?: keyof typeof KAESO_POPOVER_VARIANTS.padding | undefined;\n title?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nconst Content = /* @__PURE__ */ forwardRef<HTMLDivElement, PopoverContentProps>(function PopoverContent(\n { children, side = \"bottom\", align = \"start\", sideOffset = 6, padding = \"form\", title, className, \"aria-label\": ariaLabel },\n ref,\n) {\n return (\n <BasePopover.Portal container={usePortalContainer()}>\n <BasePopover.Positioner\n positionMethod=\"fixed\"\n collisionBoundary={pageBoundary()}\n side={side}\n align={align}\n sideOffset={sideOffset}\n collisionPadding={8}\n className=\"z-50 outline-none\"\n >\n <BasePopover.Popup\n ref={ref}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n className={cn(POPOVER_POPUP, KAESO_POPOVER_VARIANTS.padding[padding].classes, className)}\n >\n {title && <BasePopover.Title className=\"mb-8 text-body font-semibold text-fg\">{title}</BasePopover.Title>}\n <InsetContent inset={false}>{children}</InsetContent>\n </BasePopover.Popup>\n </BasePopover.Positioner>\n </BasePopover.Portal>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Content.displayName = \"Popover.Content\";\n\nexport const Popover = /* @__PURE__ */ Object.assign(PopoverRoot, { Trigger: PopoverTrigger, Content, Close: PopoverClose });\nif (process.env.NODE_ENV !== \"production\") Popover.displayName = \"Popover\";\n"],"mappings":";;;;;;;;;AASA,IAAaS,IAAyB,EACpC,SAAS;CACP,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,EAAE,SAAS,MAAM;CACvB,MAAM,EAAE,SAAS,MAAM;AACzB,EACF,GACaC,IAAiC,EAAE,SAAS,OAAO,GAKnDC,IACX,qJAaIC,IAA0B,kBAAgD,SAC9E,EAAE,aAAU,UAAO,UAAU,WAAQ,SAAS,gBAAa,GAAG,aAAU,QAAQ,UAAO,cAAW,cAAcC,KAChH,GACA;CACA,OACE,kBAACb,EAAY,QAAb;EAAoB,WAAWI,EAAmB;EAChD,UAAA,kBAACJ,EAAY,YAAb;GACE,gBAAe;GACf,mBAAmBG,EAAa;GAC1B;GACC;GACK;GACZ,kBAAkB;GAClB,WAAU;GAEV,UAAA,kBAACH,EAAY,OAAb;IACO;IACL,GAAKa,IAAY,EAAE,cAAcA,EAAU,IAAI,CAAC;IAChD,WAAWX,EAAGS,GAAeF,EAAuB,QAAQM,EAAQ,CAAC,SAASC,CAAS;IAHzF,UAAA,CAKGC,KAAS,kBAACjB,EAAY,OAAb;KAAmB,WAAU;KAAwC,UAAAiB;IAAyB,CAAA,GACxG,kBAACZ,GAAD;KAAc,OAAO;KAAQ;IAAuB,CAAA,CACnC;;EACG,CAAA;CACN,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAEjE,IAAaJ,IAA0B,uBAAO,OAAOK,GAAa;CAAE,SAASC;CAAgB;CAAS,OAAOC;AAAa,CAAC;AAC3H,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"portal-context-BBbzDKmY.js","names":["PortalCtx","PortalContainer","el","useState","node","attach","useCallback","host","children","className","usePortalContainer","use","pageBoundary"],"sources":["../../src/utils/portal-context.tsx"],"sourcesContent":["import { createContext, use, useCallback, useState, type ReactNode } from \"react\";\n\nconst PortalCtx = /* @__PURE__ */ createContext<HTMLElement | null>(null);\n\nexport function PortalContainer({ children, className }: { children: ReactNode; className?: string }) {\n const [el] = useState<HTMLDivElement | null>(() => {\n if (typeof document === \"undefined\") return null;\n const node = document.createElement(\"div\");\n node.setAttribute(\"data-portal-container\", \"\");\n return node;\n });\n const attach = useCallback(\n (host: HTMLDivElement | null) => {\n if (host && el && el.parentNode !== host) host.appendChild(el);\n },\n [el],\n );\n return (\n <PortalCtx.Provider value={el}>\n {children}\n <div ref={attach} className={className ?? \"absolute top-0 left-0 size-0\"} data-portal-host=\"\" />\n </PortalCtx.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PortalContainer.displayName = \"PortalContainer\";\n\nexport function usePortalContainer(): HTMLElement | undefined {\n return use(PortalCtx) ?? undefined;\n}\n\nexport function pageBoundary(): Element | \"clipping-ancestors\" {\n return typeof document === \"undefined\" ? \"clipping-ancestors\" : document.documentElement;\n}\n"],"mappings":";;;;AAEA,IAAMA,IAA4B,kBAAkC,IAAI;AAExE,SAAgBC,EAAgB,EAAE,aAAU,gBAA0D;CACpG,IAAM,CAACC,KAAMC,QAAsC;EACjD,IAAI,OAAO,WAAa,KAAa,OAAO;EAC5C,IAAMC,IAAO,SAAS,cAAc,KAAK;EAEzC,OADAA,EAAK,aAAa,yBAAyB,EAAE,GACtCA;CACT,CAAC,GACKC,IAASC,GACZ,MAAgC;EAC/B,AAAIC,KAAQL,KAAMA,EAAG,eAAeK,KAAMA,EAAK,YAAYL,CAAE;CAC/D,GACA,CAACA,CAAE,CACL;CACA,OACE,kBAACF,EAAU,UAAX;EAAoB,OAAOE;EAA3B,UAAA,CACGM,GACD,kBAAC,OAAD;GAAK,KAAKH;GAAQ,WAAWI,KAAa;GAAgC,oBAAiB;EAAI,CAAA,CAC7E;;AAExB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc;AAEzE,SAAgBC,IAA8C;CAC5D,OAAOC,EAAIX,CAAS,KAAK,KAAA;AAC3B;AAEA,SAAgBY,IAA+C;CAC7D,OAAO,OAAO,WAAa,MAAc,uBAAuB,SAAS;AAC3E"}
1
+ {"version":3,"file":"portal-context-BBbzDKmY.js","names":["PortalCtx","PortalContainer","el","useState","node","attach","useCallback","host","children","className","usePortalContainer","use","pageBoundary"],"sources":["../../src/utils/portal-context.tsx"],"sourcesContent":["import { createContext, use, useCallback, useState, type ReactNode } from \"react\";\n\nconst PortalCtx = /* @__PURE__ */ createContext<HTMLElement | null>(null);\n\nexport function PortalContainer({ children, className }: { children: ReactNode; className?: string | undefined }) {\n const [el] = useState<HTMLDivElement | null>(() => {\n if (typeof document === \"undefined\") return null;\n const node = document.createElement(\"div\");\n node.setAttribute(\"data-portal-container\", \"\");\n return node;\n });\n const attach = useCallback(\n (host: HTMLDivElement | null) => {\n if (host && el && el.parentNode !== host) host.appendChild(el);\n },\n [el],\n );\n return (\n <PortalCtx.Provider value={el}>\n {children}\n <div ref={attach} className={className ?? \"absolute top-0 left-0 size-0\"} data-portal-host=\"\" />\n </PortalCtx.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PortalContainer.displayName = \"PortalContainer\";\n\nexport function usePortalContainer(): HTMLElement | undefined {\n return use(PortalCtx) ?? undefined;\n}\n\nexport function pageBoundary(): Element | \"clipping-ancestors\" {\n return typeof document === \"undefined\" ? \"clipping-ancestors\" : document.documentElement;\n}\n"],"mappings":";;;;AAEA,IAAMA,IAA4B,kBAAkC,IAAI;AAExE,SAAgBC,EAAgB,EAAE,aAAU,gBAAsE;CAChH,IAAM,CAACC,KAAMC,QAAsC;EACjD,IAAI,OAAO,WAAa,KAAa,OAAO;EAC5C,IAAMC,IAAO,SAAS,cAAc,KAAK;EAEzC,OADAA,EAAK,aAAa,yBAAyB,EAAE,GACtCA;CACT,CAAC,GACKC,IAASC,GACZ,MAAgC;EAC/B,AAAIC,KAAQL,KAAMA,EAAG,eAAeK,KAAMA,EAAK,YAAYL,CAAE;CAC/D,GACA,CAACA,CAAE,CACL;CACA,OACE,kBAACF,EAAU,UAAX;EAAoB,OAAOE;EAA3B,UAAA,CACGM,GACD,kBAAC,OAAD;GAAK,KAAKH;GAAQ,WAAWI,KAAa;GAAgC,oBAAiB;EAAI,CAAA,CAC7E;;AAExB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc;AAEzE,SAAgBC,IAA8C;CAC5D,OAAOC,EAAIX,CAAS,KAAK,KAAA;AAC3B;AAEA,SAAgBY,IAA+C;CAC7D,OAAO,OAAO,WAAa,MAAc,uBAAuB,SAAS;AAC3E"}
@@ -96,15 +96,15 @@ process.env.NODE_ENV !== "production" && (h.displayName = "Radio");
96
96
  var g = /* @__PURE__ */ Object.assign(h, {
97
97
  Group: p,
98
98
  Circle: m
99
- }), _ = p;
100
- function v(e) {
99
+ }), _ = p, v = /* @__PURE__ */ r(function(e, t) {
101
100
  return /* @__PURE__ */ o(p, {
101
+ ref: t,
102
102
  variant: "cards",
103
103
  ...e
104
104
  });
105
- }
105
+ });
106
106
  process.env.NODE_ENV !== "production" && (v.displayName = "RadioCards");
107
107
  //#endregion
108
108
  export { m as a, v as i, u as n, _ as o, g as r, d as t };
109
109
 
110
- //# sourceMappingURL=radio-Yl0nO-Sj.js.map
110
+ //# sourceMappingURL=radio-CDDFpdtL.js.map