@logicplanes/kaeso-ui 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/ai/component-guides.md +51 -1
  2. package/ai/component-registry.json +104 -8
  3. package/ai/component-registry.md +30 -4
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +1 -1
  6. package/dist/blocks/delete-resource.js +1 -1
  7. package/dist/blocks/pages.js +5 -5
  8. package/dist/blocks/resource-list.js +4 -4
  9. package/dist/chunks/{app-frame-DZPEf2NQ.js → app-frame-C8csevkL.js} +7 -7
  10. package/dist/chunks/{app-frame-DZPEf2NQ.js.map → app-frame-C8csevkL.js.map} +1 -1
  11. package/dist/chunks/{avatar-HnvBUoe5.js → avatar-CWbdwbJv.js} +2 -2
  12. package/dist/chunks/{avatar-HnvBUoe5.js.map → avatar-CWbdwbJv.js.map} +1 -1
  13. package/dist/chunks/{badge-CM8ahjDR.js → badge-C2KtxCLB.js} +2 -2
  14. package/dist/chunks/{badge-CM8ahjDR.js.map → badge-C2KtxCLB.js.map} +1 -1
  15. package/dist/chunks/{banner-CvYgPwCc.js → banner-Cb8OWnqJ.js} +4 -4
  16. package/dist/chunks/{banner-CvYgPwCc.js.map → banner-Cb8OWnqJ.js.map} +1 -1
  17. package/dist/chunks/{button-9q66Ta23.js → button-Dzu7_csE.js} +7 -7
  18. package/dist/chunks/{button-9q66Ta23.js.map → button-Dzu7_csE.js.map} +1 -1
  19. package/dist/chunks/{calendar-CeNcqLFd.js → calendar--YemJsv4.js} +2 -2
  20. package/dist/chunks/{calendar-CeNcqLFd.js.map → calendar--YemJsv4.js.map} +1 -1
  21. package/dist/chunks/{checkbox-C_DrNA2N.js → checkbox-CDfC6E-M.js} +2 -2
  22. package/dist/chunks/{checkbox-C_DrNA2N.js.map → checkbox-CDfC6E-M.js.map} +1 -1
  23. package/dist/chunks/{cn-Isw2DnQX.js → cn-Dj6sRgkF.js} +8 -1
  24. package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
  25. package/dist/chunks/{code-block-mEH6Sy3h.js → code-block-U5fCqwgC.js} +75 -54
  26. package/dist/chunks/code-block-U5fCqwgC.js.map +1 -0
  27. package/dist/chunks/{code-Bp2p9AuD.js → code-tqj0uhBL.js} +2 -2
  28. package/dist/chunks/{code-Bp2p9AuD.js.map → code-tqj0uhBL.js.map} +1 -1
  29. package/dist/chunks/{collapsible-CtQNJn9b.js → collapsible-CKrCX_T9.js} +3 -3
  30. package/dist/chunks/{collapsible-CtQNJn9b.js.map → collapsible-CKrCX_T9.js.map} +1 -1
  31. package/dist/chunks/{combobox-D8ZOm8uT.js → combobox-BARyrpXH.js} +6 -6
  32. package/dist/chunks/{combobox-D8ZOm8uT.js.map → combobox-BARyrpXH.js.map} +1 -1
  33. package/dist/chunks/{command-list-CzMbdtJs.js → command-list-0RR4DpUe.js} +54 -54
  34. package/dist/chunks/command-list-0RR4DpUe.js.map +1 -0
  35. package/dist/chunks/{copy-button-Cdea0wKl.js → copy-button-7-irieJw.js} +5 -5
  36. package/dist/chunks/{copy-button-Cdea0wKl.js.map → copy-button-7-irieJw.js.map} +1 -1
  37. package/dist/chunks/{core-FtMDNELx.js → core-Bl9NrBLS.js} +4 -4
  38. package/dist/chunks/{core-FtMDNELx.js.map → core-Bl9NrBLS.js.map} +1 -1
  39. package/dist/chunks/{date-popup-NytWvSNh.js → date-popup-RQkqhko4.js} +4 -4
  40. package/dist/chunks/{date-popup-NytWvSNh.js.map → date-popup-RQkqhko4.js.map} +1 -1
  41. package/dist/chunks/{dialog-BZCVFmGF.js → dialog-DQ9vZ7vr.js} +5 -5
  42. package/dist/chunks/{dialog-BZCVFmGF.js.map → dialog-DQ9vZ7vr.js.map} +1 -1
  43. package/dist/chunks/{empty-By1qTJr6.js → empty-DvhyMXQq.js} +2 -2
  44. package/dist/chunks/{empty-By1qTJr6.js.map → empty-DvhyMXQq.js.map} +1 -1
  45. package/dist/chunks/{field-DfITT6Jm.js → field-TviMvYa2.js} +2 -2
  46. package/dist/chunks/{field-DfITT6Jm.js.map → field-TviMvYa2.js.map} +1 -1
  47. package/dist/chunks/{icon-D5uD_mnL.js → icon-D7ja-_Yk.js} +2 -2
  48. package/dist/chunks/{icon-D5uD_mnL.js.map → icon-D7ja-_Yk.js.map} +1 -1
  49. package/dist/chunks/{icon-button-C7Du4pvb.js → icon-button-CPYR21Sz.js} +3 -3
  50. package/dist/chunks/{icon-button-C7Du4pvb.js.map → icon-button-CPYR21Sz.js.map} +1 -1
  51. package/dist/chunks/{identity-BcVQd-7H.js → identity-DPuTkMsa.js} +6 -6
  52. package/dist/chunks/{identity-BcVQd-7H.js.map → identity-DPuTkMsa.js.map} +1 -1
  53. package/dist/chunks/{input-B6Docqrk.js → input-TyLIaQ5k.js} +5 -5
  54. package/dist/chunks/{input-B6Docqrk.js.map → input-TyLIaQ5k.js.map} +1 -1
  55. package/dist/chunks/{input-group-Dgdb0JpZ.js → input-group-CUSNsQjQ.js} +4 -4
  56. package/dist/chunks/{input-group-Dgdb0JpZ.js.map → input-group-CUSNsQjQ.js.map} +1 -1
  57. package/dist/chunks/{iso-field-SOZ7Z-yE.js → iso-field-CWbxlll-.js} +2 -2
  58. package/dist/chunks/{iso-field-SOZ7Z-yE.js.map → iso-field-CWbxlll-.js.map} +1 -1
  59. package/dist/chunks/{json-view-DCTMY_j4.js → json-view-Dqd2TDkc.js} +3 -3
  60. package/dist/chunks/{json-view-DCTMY_j4.js.map → json-view-Dqd2TDkc.js.map} +1 -1
  61. package/dist/chunks/{kbd-9A9rX60U.js → kbd-BF1vKXJf.js} +2 -2
  62. package/dist/chunks/{kbd-9A9rX60U.js.map → kbd-BF1vKXJf.js.map} +1 -1
  63. package/dist/chunks/{link-CtII7u3h.js → link-B2I55xg9.js} +3 -3
  64. package/dist/chunks/{link-CtII7u3h.js.map → link-B2I55xg9.js.map} +1 -1
  65. package/dist/chunks/{list-CMXBTVkI.js → list-CkOozrVY.js} +8 -8
  66. package/dist/chunks/{list-CMXBTVkI.js.map → list-CkOozrVY.js.map} +1 -1
  67. package/dist/chunks/{loader-DqOUwS1j.js → loader-DCfPndXa.js} +2 -2
  68. package/dist/chunks/{loader-DqOUwS1j.js.map → loader-DCfPndXa.js.map} +1 -1
  69. package/dist/chunks/{markdown-CwVQ0niB.js → markdown-BEgwZFlu.js} +9 -9
  70. package/dist/chunks/{markdown-CwVQ0niB.js.map → markdown-BEgwZFlu.js.map} +1 -1
  71. package/dist/chunks/{menu-Cjg4RggA.js → menu-fl_QQb38.js} +4 -4
  72. package/dist/chunks/{menu-Cjg4RggA.js.map → menu-fl_QQb38.js.map} +1 -1
  73. package/dist/chunks/{meter-VrC2J2GF.js → meter-Bj4N3Xuh.js} +2 -2
  74. package/dist/chunks/{meter-VrC2J2GF.js.map → meter-Bj4N3Xuh.js.map} +1 -1
  75. package/dist/chunks/{nav-sheet-Y2Ite-iF.js → nav-sheet-B2rNb8GB.js} +2 -2
  76. package/dist/chunks/{nav-sheet-Y2Ite-iF.js.map → nav-sheet-B2rNb8GB.js.map} +1 -1
  77. package/dist/chunks/{nav-wordmark-CjWM3NYa.js → nav-wordmark-_pjheAsZ.js} +2 -2
  78. package/dist/chunks/{nav-wordmark-CjWM3NYa.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
  79. package/dist/chunks/{page-header-CZCQVHYE.js → page-header-DjUMDG69.js} +4 -4
  80. package/dist/chunks/{page-header-CZCQVHYE.js.map → page-header-DjUMDG69.js.map} +1 -1
  81. package/dist/chunks/{pagination-BStrMDqM.js → pagination-BaY8jdli.js} +4 -4
  82. package/dist/chunks/{pagination-BStrMDqM.js.map → pagination-BaY8jdli.js.map} +1 -1
  83. package/dist/chunks/{picker-popover-BerQAEBT.js → picker-popover-DShea4b8.js} +6 -6
  84. package/dist/chunks/{picker-popover-BerQAEBT.js.map → picker-popover-DShea4b8.js.map} +1 -1
  85. package/dist/chunks/{popover-CgLt_4yG.js → popover-CFMwaeIP.js} +2 -2
  86. package/dist/chunks/{popover-CgLt_4yG.js.map → popover-CFMwaeIP.js.map} +1 -1
  87. package/dist/chunks/{radio-07Muf4cX.js → radio-Yl0nO-Sj.js} +2 -2
  88. package/dist/chunks/{radio-07Muf4cX.js.map → radio-Yl0nO-Sj.js.map} +1 -1
  89. package/dist/chunks/{range-popup-BCov1iPe.js → range-popup-CkhsK3wI.js} +6 -6
  90. package/dist/chunks/{range-popup-BCov1iPe.js.map → range-popup-CkhsK3wI.js.map} +1 -1
  91. package/dist/chunks/{release-art-69WpgVik.js → release-art-ZwfFQImt.js} +2 -2
  92. package/dist/chunks/{release-art-69WpgVik.js.map → release-art-ZwfFQImt.js.map} +1 -1
  93. package/dist/chunks/{rights-UVngOX_4.js → rights-BlQx9C_j.js} +9 -9
  94. package/dist/chunks/{rights-UVngOX_4.js.map → rights-BlQx9C_j.js.map} +1 -1
  95. package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
  96. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
  97. package/dist/chunks/{section-Bvg0EUnr.js → section-Ce1efbsP.js} +3 -3
  98. package/dist/chunks/{section-Bvg0EUnr.js.map → section-Ce1efbsP.js.map} +1 -1
  99. package/dist/chunks/{segmented-DRLDN8EW.js → segmented-C97zvDR1.js} +4 -4
  100. package/dist/chunks/{segmented-DRLDN8EW.js.map → segmented-C97zvDR1.js.map} +1 -1
  101. package/dist/chunks/{select-eFTHLeYG.js → select-x4XVsdCI.js} +4 -4
  102. package/dist/chunks/{select-eFTHLeYG.js.map → select-x4XVsdCI.js.map} +1 -1
  103. package/dist/chunks/{separator-D86IW7Ge.js → separator-D7TzNHmX.js} +2 -2
  104. package/dist/chunks/{separator-D86IW7Ge.js.map → separator-D7TzNHmX.js.map} +1 -1
  105. package/dist/chunks/{sidebar-DifJ5KgE.js → sidebar-DtFlejU7.js} +7 -7
  106. package/dist/chunks/{sidebar-DifJ5KgE.js.map → sidebar-DtFlejU7.js.map} +1 -1
  107. package/dist/chunks/{sidebar-menu-XKOiwrQp.js → sidebar-menu-CxQbGwyj.js} +2 -2
  108. package/dist/chunks/{sidebar-menu-XKOiwrQp.js.map → sidebar-menu-CxQbGwyj.js.map} +1 -1
  109. package/dist/chunks/{skeleton-Cu74kGJA.js → skeleton-Dcz57Zyp.js} +2 -2
  110. package/dist/chunks/{skeleton-Cu74kGJA.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
  111. package/dist/chunks/{slider-Dh0qq1wa.js → slider-Ci83PGtj.js} +2 -2
  112. package/dist/chunks/{slider-Dh0qq1wa.js.map → slider-Ci83PGtj.js.map} +1 -1
  113. package/dist/chunks/{status-dot-u4Izk-uC.js → status-dot-QJTF0Yv4.js} +3 -3
  114. package/dist/chunks/{status-dot-u4Izk-uC.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
  115. package/dist/chunks/{swap-text-CC77iKJF.js → swap-text-Dr0Irxz6.js} +2 -2
  116. package/dist/chunks/{swap-text-CC77iKJF.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
  117. package/dist/chunks/{switch-CbU9m9gi.js → switch-b-VkStWj.js} +3 -3
  118. package/dist/chunks/{switch-CbU9m9gi.js.map → switch-b-VkStWj.js.map} +1 -1
  119. package/dist/chunks/table-BeOSKl_3.js +84 -0
  120. package/dist/chunks/table-BeOSKl_3.js.map +1 -0
  121. package/dist/chunks/{tag-CqSk8F7M.js → tag-DNdX1XRR.js} +4 -4
  122. package/dist/chunks/{tag-CqSk8F7M.js.map → tag-DNdX1XRR.js.map} +1 -1
  123. package/dist/chunks/{text-hFc6TDp9.js → text-DCGGNqTM.js} +3 -3
  124. package/dist/chunks/{text-hFc6TDp9.js.map → text-DCGGNqTM.js.map} +1 -1
  125. package/dist/chunks/{textarea-17Ftvph_.js → textarea-CT2S2JVM.js} +5 -5
  126. package/dist/chunks/{textarea-17Ftvph_.js.map → textarea-CT2S2JVM.js.map} +1 -1
  127. package/dist/chunks/{timeseries-CbnSFD5q.js → timeseries-B-8OfeZm.js} +3 -3
  128. package/dist/chunks/{timeseries-CbnSFD5q.js.map → timeseries-B-8OfeZm.js.map} +1 -1
  129. package/dist/chunks/{toolbar-B_960Ttx.js → toolbar-DL6zVrzU.js} +2 -2
  130. package/dist/chunks/{toolbar-B_960Ttx.js.map → toolbar-DL6zVrzU.js.map} +1 -1
  131. package/dist/chunks/{tooltip-CRApbLF6.js → tooltip-BMQ9BtPp.js} +4 -4
  132. package/dist/chunks/{tooltip-CRApbLF6.js.map → tooltip-BMQ9BtPp.js.map} +1 -1
  133. package/dist/chunks/{tooltip-root-Dssjjp-E.js → tooltip-root-BeAMXzxU.js} +4 -4
  134. package/dist/chunks/{tooltip-root-Dssjjp-E.js.map → tooltip-root-BeAMXzxU.js.map} +1 -1
  135. package/dist/components/app-frame.js +2 -2
  136. package/dist/components/avatar.js +1 -1
  137. package/dist/components/badge.js +1 -1
  138. package/dist/components/banner.js +1 -1
  139. package/dist/components/button-group.js +4 -4
  140. package/dist/components/button.js +1 -1
  141. package/dist/components/calendar.js +1 -1
  142. package/dist/components/charts/bar.js +2 -2
  143. package/dist/components/charts/donut.js +2 -2
  144. package/dist/components/charts/gauge.js +2 -2
  145. package/dist/components/charts/heatmap.js +1 -1
  146. package/dist/components/charts/sankey.js +2 -2
  147. package/dist/components/charts/sparkline.js +1 -1
  148. package/dist/components/charts/timeseries.js +1 -1
  149. package/dist/components/charts.js +2 -2
  150. package/dist/components/checkbox.js +1 -1
  151. package/dist/components/code-block.js +2 -2
  152. package/dist/components/code.js +1 -1
  153. package/dist/components/collapsible.js +1 -1
  154. package/dist/components/combobox.js +1 -1
  155. package/dist/components/command-list.js +2 -2
  156. package/dist/components/command-palette.js +32 -31
  157. package/dist/components/command-palette.js.map +1 -1
  158. package/dist/components/copy-button.js +1 -1
  159. package/dist/components/data-table.js +12 -12
  160. package/dist/components/date-picker.js +6 -6
  161. package/dist/components/dialog.js +2 -2
  162. package/dist/components/display-options.js +8 -8
  163. package/dist/components/empty.js +1 -1
  164. package/dist/components/field.js +1 -1
  165. package/dist/components/figure.js +60 -0
  166. package/dist/components/figure.js.map +1 -0
  167. package/dist/components/filter-chip.js +5 -5
  168. package/dist/components/filter-row.js +1 -1
  169. package/dist/components/flow.js +2 -2
  170. package/dist/components/heading.js +1 -1
  171. package/dist/components/icon-button.js +1 -1
  172. package/dist/components/icon.js +1 -1
  173. package/dist/components/input.js +7 -7
  174. package/dist/components/kaeso/conversation.js +8 -8
  175. package/dist/components/kaeso/identity.js +1 -1
  176. package/dist/components/kaeso/moments.js +5 -5
  177. package/dist/components/kaeso/rights.js +1 -1
  178. package/dist/components/kaeso/usage.js +5 -5
  179. package/dist/components/kaeso.js +10 -10
  180. package/dist/components/kbd.js +1 -1
  181. package/dist/components/key-value.js +3 -3
  182. package/dist/components/label.js +1 -1
  183. package/dist/components/layout.js +1 -1
  184. package/dist/components/link.js +1 -1
  185. package/dist/components/list.js +1 -1
  186. package/dist/components/loader.js +2 -2
  187. package/dist/components/logo.js +2 -2
  188. package/dist/components/markdown.js +1 -1
  189. package/dist/components/menu.js +1 -1
  190. package/dist/components/meter.js +1 -1
  191. package/dist/components/page-header.js +1 -1
  192. package/dist/components/pagination.js +1 -1
  193. package/dist/components/playground.js +16 -16
  194. package/dist/components/popover.js +2 -2
  195. package/dist/components/qr-code.js +1 -1
  196. package/dist/components/radio.js +1 -1
  197. package/dist/components/release-art.js +1 -1
  198. package/dist/components/scroll-area.js +1 -41
  199. package/dist/components/section.js +1 -1
  200. package/dist/components/segmented.js +1 -1
  201. package/dist/components/select.js +1 -1
  202. package/dist/components/separator.js +1 -1
  203. package/dist/components/settings.js +2 -2
  204. package/dist/components/sheet.js +2 -2
  205. package/dist/components/sidebar.js +1 -1
  206. package/dist/components/skeleton.js +1 -1
  207. package/dist/components/slider.js +1 -1
  208. package/dist/components/stat.js +3 -3
  209. package/dist/components/status-dot.js +1 -1
  210. package/dist/components/surface.js +1 -1
  211. package/dist/components/swap-text.js +1 -1
  212. package/dist/components/switch.js +1 -1
  213. package/dist/components/table.js +1 -1
  214. package/dist/components/tabs.js +2 -2
  215. package/dist/components/tag.js +1 -1
  216. package/dist/components/text.js +1 -1
  217. package/dist/components/theme-image.js +1 -1
  218. package/dist/components/theme-menu.js +2 -2
  219. package/dist/components/theme-select.js +1 -1
  220. package/dist/components/timeline.js +1 -1
  221. package/dist/components/toast.js +4 -4
  222. package/dist/components/toc.js +37 -22
  223. package/dist/components/toc.js.map +1 -1
  224. package/dist/components/toolbar.js +1 -1
  225. package/dist/components/tooltip.js +1 -1
  226. package/dist/components/visually-hidden.js +1 -1
  227. package/dist/index.js +88 -86
  228. package/dist/styles.css +1 -1
  229. package/dist/types/components/code-block/code-block.d.ts +1 -1
  230. package/dist/types/components/code-block/indent.d.ts +3 -0
  231. package/dist/types/components/command-list/command-list.d.ts +1 -0
  232. package/dist/types/components/command-list/docs.d.ts +1 -0
  233. package/dist/types/components/command-palette/command-palette.d.ts +1 -0
  234. package/dist/types/components/command-palette/docs.d.ts +1 -0
  235. package/dist/types/components/figure/docs.d.ts +12 -0
  236. package/dist/types/components/figure/figure.d.ts +25 -0
  237. package/dist/types/components/figure/index.d.ts +1 -0
  238. package/dist/types/components/table/docs.d.ts +3 -1
  239. package/dist/types/components/table/table.d.ts +18 -1
  240. package/dist/types/index.d.ts +1 -0
  241. package/dist/types/utils/cn.d.ts +4 -0
  242. package/dist/utils.js +1 -1
  243. package/package.json +3 -3
  244. package/dist/chunks/cn-Isw2DnQX.js.map +0 -1
  245. package/dist/chunks/code-block-mEH6Sy3h.js.map +0 -1
  246. package/dist/chunks/command-list-CzMbdtJs.js.map +0 -1
  247. package/dist/chunks/table-CTxDp7zC.js +0 -67
  248. package/dist/chunks/table-CTxDp7zC.js.map +0 -1
  249. package/dist/components/scroll-area.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"menu-Cjg4RggA.js","names":["BaseMenu","_Fragment","__icon_ArrowUpRight01Icon","__icon_Tick02Icon","__icon_ArrowRight01Icon","Menu","BaseContextMenu","ContextMenu","BaseMenubar","Menubar","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","ContextRoot","ContextMenu","ContextTrigger","ContextContent","ContextMenu$1","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\nfunction Separator() {\n return <div role=\"separator\" aria-orientation=\"horizontal\" className={MENU_SEPARATOR} />;\n}\nif (process.env.NODE_ENV !== \"production\") Separator.displayName = \"Menu.Separator\";\n\nfunction Header({ avatar, name, email }: { avatar?: ReactNode | undefined; name: ReactNode; email?: ReactNode | undefined }) {\n return (\n <div 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\nfunction ContextRoot({ children, onOpenChange }: { children: ReactNode; onOpenChange?: ((o: 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\";\nfunction ContextTrigger({ children, className }: { children: ReactNode; className?: string | undefined }) {\n return <BaseContextMenu.Trigger className={className}>{children}</BaseContextMenu.Trigger>;\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\nfunction MenubarRoot({\n children,\n className,\n \"aria-label\": ariaLabel,\n}: {\n children: ReactNode;\n className?: string | undefined;\n \"aria-label\"?: string | undefined;\n}) {\n return (\n <BaseMenubar 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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"}
1
+ {"version":3,"file":"menu-fl_QQb38.js","names":["BaseMenu","_Fragment","__icon_ArrowUpRight01Icon","__icon_Tick02Icon","__icon_ArrowRight01Icon","Menu","BaseContextMenu","ContextMenu","BaseMenubar","Menubar","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","ContextRoot","ContextMenu","ContextTrigger","ContextContent","ContextMenu$1","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\nfunction Separator() {\n return <div role=\"separator\" aria-orientation=\"horizontal\" className={MENU_SEPARATOR} />;\n}\nif (process.env.NODE_ENV !== \"production\") Separator.displayName = \"Menu.Separator\";\n\nfunction Header({ avatar, name, email }: { avatar?: ReactNode | undefined; name: ReactNode; email?: ReactNode | undefined }) {\n return (\n <div 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\nfunction ContextRoot({ children, onOpenChange }: { children: ReactNode; onOpenChange?: ((o: 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\";\nfunction ContextTrigger({ children, className }: { children: ReactNode; className?: string | undefined }) {\n return <BaseContextMenu.Trigger className={className}>{children}</BaseContextMenu.Trigger>;\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\nfunction MenubarRoot({\n children,\n className,\n \"aria-label\": ariaLabel,\n}: {\n children: ReactNode;\n className?: string | undefined;\n \"aria-label\"?: string | undefined;\n}) {\n return (\n <BaseMenubar 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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"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
5
  //#region src/components/meter/meter.tsx
@@ -81,4 +81,4 @@ process.env.NODE_ENV !== "production" && (u.displayName = "Progress");
81
81
  //#endregion
82
82
  export { s as a, c as i, i as n, u as o, l as r, o as s, a as t };
83
83
 
84
- //# sourceMappingURL=meter-VrC2J2GF.js.map
84
+ //# sourceMappingURL=meter-Bj4N3Xuh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meter-VrC2J2GF.js","names":["cn","KAESO_METER_VARIANTS","KAESO_METER_DEFAULT_VARIANTS","meterColor","value","thresholds","Meter","ariaLabel","pct","now","className","label","valueLabel","leading","trailing","tone","t","caption","KAESO_PROGRESS_VARIANTS","KAESO_PROGRESS_DEFAULT_VARIANTS","Progress","indeterminate"],"sources":["../../src/components/meter/meter.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_METER_VARIANTS = {\n tone: {\n auto: { classes: \"\" },\n neutral: { classes: \"bg-fg-secondary\" },\n },\n} as const;\nexport const KAESO_METER_DEFAULT_VARIANTS = { tone: \"auto\" } as const;\n\nexport interface MeterProps {\n value: number;\n label?: ReactNode | undefined;\n valueLabel?: ReactNode | undefined;\n caption?: ReactNode | undefined;\n thresholds?: number[] | undefined;\n tone?: keyof typeof KAESO_METER_VARIANTS.tone | undefined;\n leading?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport function meterColor(value: number, thresholds: number[] = []) {\n if (value >= 1) return \"bg-danger\";\n const first = thresholds.length ? Math.min(...thresholds) : 0.8;\n return value >= first ? \"bg-warning\" : \"bg-viz-1\";\n}\n\nexport const Meter = /* @__PURE__ */ forwardRef<HTMLDivElement, MeterProps>(function Meter(\n { value, label, valueLabel, caption, thresholds = [], tone = \"auto\", leading, trailing, className, \"aria-label\": ariaLabel },\n ref,\n) {\n const pct = Math.max(0, Math.min(1, value));\n const now = Math.round(value * 100);\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-8\", className)}>\n {(label || valueLabel) && (\n <div className=\"flex items-baseline justify-between gap-12\">\n <span className=\"flex min-w-0 items-center gap-8 text-body font-medium text-fg\">\n {leading}\n <span className=\"truncate\">{label}</span>\n {trailing}\n </span>\n {valueLabel && <span className=\"shrink-0 text-body text-fg-secondary tabular\">{valueLabel}</span>}\n </div>\n )}\n <div\n role=\"meter\"\n aria-valuemin={0}\n aria-valuemax={Math.max(100, now)}\n aria-valuenow={now}\n aria-label={ariaLabel ?? (typeof label === \"string\" ? label : undefined)}\n {...(typeof valueLabel === \"string\" ? { \"aria-valuetext\": valueLabel } : {})}\n className=\"relative h-6 overflow-hidden rounded-pill bg-fill-3\"\n >\n <div\n className={cn(\"h-full rounded-pill width-motion\", tone === \"auto\" ? meterColor(value, thresholds) : KAESO_METER_VARIANTS.tone.neutral.classes)}\n style={{ width: `${pct * 100}%` }}\n />\n {thresholds.map((t) => (\n <span key={t} aria-hidden className=\"absolute top-0 h-full w-2 bg-panel\" style={{ left: `${t * 100}%` }} />\n ))}\n </div>\n {caption && <span className=\"text-caption font-medium text-fg-tertiary\">{caption}</span>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Meter.displayName = \"Meter\";\n\nexport const KAESO_PROGRESS_VARIANTS = {\n kind: {\n determinate: { classes: \"h-6 rounded-pill bg-fill-3\" },\n indeterminate: { classes: \"h-2 bg-transparent\" },\n },\n} as const;\nexport const KAESO_PROGRESS_DEFAULT_VARIANTS = { kind: \"determinate\" } as const;\n\nexport interface ProgressProps {\n value?: number | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nexport const Progress = /* @__PURE__ */ forwardRef<HTMLDivElement, ProgressProps>(function Progress({ value, className, \"aria-label\": ariaLabel }, ref) {\n const indeterminate = value === undefined;\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={100}\n {...(!indeterminate ? { \"aria-valuenow\": Math.round(value * 100) } : {})}\n className={cn(\"relative w-full overflow-hidden\", KAESO_PROGRESS_VARIANTS.kind[indeterminate ? \"indeterminate\" : \"determinate\"].classes, className)}\n >\n {indeterminate ? (\n <span className=\"absolute inset-y-0 left-0 w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary\" />\n ) : (\n <span className=\"block h-full rounded-pill bg-ink width-motion\" style={{ width: `${Math.max(0, Math.min(1, value)) * 100}%` }} />\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Progress.displayName = \"Progress\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAuB,EAClC,MAAM;CACJ,MAAM,EAAE,SAAS,GAAG;CACpB,SAAS,EAAE,SAAS,kBAAkB;AACxC,EACF,GACaC,IAA+B,EAAE,MAAM,OAAO;AAe3D,SAAgBC,EAAW,GAAe,IAAuB,CAAC,GAAG;CAGnE,OAFIC,KAAS,IAAU,cAEhBA,MADOC,EAAW,SAAS,KAAK,IAAI,GAAGA,CAAU,IAAI,MACpC,eAAe;AACzC;AAEA,IAAaC,IAAwB,kBAAuC,SAC1E,EAAE,UAAO,UAAO,eAAY,YAAS,gBAAa,CAAC,GAAG,UAAO,QAAQ,YAAS,aAAU,cAAW,cAAcC,KACjH,GACA;CACA,IAAMC,IAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGJ,CAAK,CAAC,GACpCK,IAAM,KAAK,MAAML,IAAQ,GAAG;CAClC,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWJ,EAAG,uBAAuBU,CAAS;EAA7D,UAAA;IACIC,KAASC,MACT,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACGC;MACD,kBAAC,QAAD;OAAM,WAAU;OAAY,UAAAF;MAAY,CAAA;MACvCG;KACG;IACL,CAAA,GAAAF,KAAc,kBAAC,QAAD;KAAM,WAAU;KAAgD,UAAAA;IAAiB,CAAA,CAC7F;;GAEP,kBAAC,OAAD;IACE,MAAK;IACL,iBAAe;IACf,iBAAe,KAAK,IAAI,KAAKH,CAAG;IAChC,iBAAeA;IACf,cAAYF,MAAc,OAAOI,KAAU,WAAWA,IAAQ,KAAA;IAC9D,GAAK,OAAOC,KAAe,WAAW,EAAE,kBAAkBA,EAAW,IAAI,CAAC;IAC1E,WAAU;IAPZ,UAAA,CASE,kBAAC,OAAD;KACE,WAAWZ,EAAG,oCAAoCe,MAAS,SAASZ,EAAWC,GAAOC,CAAU,IAAIJ,EAAqB,KAAK,QAAQ,OAAO;KAC7I,OAAO,EAAE,OAAO,GAAGO,IAAM,IAAI,GAAG;IACjC,CAAA,GACAH,EAAW,KAAK,MACf,kBAAC,QAAD;KAAc,eAAA;KAAY,WAAU;KAAqC,OAAO,EAAE,MAAM,GAAGW,IAAI,IAAI,GAAG;IAAI,GAA/FA,CAA+F,CAC3G,CACE;;GACJC,KAAW,kBAAC,QAAD;IAAM,WAAU;IAA6C,UAAAA;GAAc,CAAA;EACpF;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAaC,IAA0B,EACrC,MAAM;CACJ,aAAa,EAAE,SAAS,6BAA6B;CACrD,eAAe,EAAE,SAAS,qBAAqB;AACjD,EACF,GACaC,IAAkC,EAAE,MAAM,cAAc,GAQxDC,IAA2B,kBAA0C,SAAkB,EAAE,UAAO,cAAW,cAAcb,KAAa,GAAK;CACtJ,IAAMc,IAAgBjB,MAAU,KAAA;CAChC,OACE,kBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAYG;EACZ,iBAAe;EACf,iBAAe;EACf,GAAMc,IAA+D,CAAC,IAAhD,EAAE,iBAAiB,KAAK,MAAMjB,IAAQ,GAAG,EAAE;EACjE,WAAWJ,EAAG,mCAAmCkB,EAAwB,KAAKG,IAAgB,kBAAkB,cAAc,CAAC,SAASX,CAAS;EAEhJ,UAAAW,IACC,kBAAC,QAAD,EAAM,WAAU,oFAAqF,CAAA,IAErG,kBAAC,QAAD;GAAM,WAAU;GAAgD,OAAO,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGjB,CAAK,CAAC,IAAI,IAAI,GAAG;EAAI,CAAA;CAE/H,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
1
+ {"version":3,"file":"meter-Bj4N3Xuh.js","names":["cn","KAESO_METER_VARIANTS","KAESO_METER_DEFAULT_VARIANTS","meterColor","value","thresholds","Meter","ariaLabel","pct","now","className","label","valueLabel","leading","trailing","tone","t","caption","KAESO_PROGRESS_VARIANTS","KAESO_PROGRESS_DEFAULT_VARIANTS","Progress","indeterminate"],"sources":["../../src/components/meter/meter.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_METER_VARIANTS = {\n tone: {\n auto: { classes: \"\" },\n neutral: { classes: \"bg-fg-secondary\" },\n },\n} as const;\nexport const KAESO_METER_DEFAULT_VARIANTS = { tone: \"auto\" } as const;\n\nexport interface MeterProps {\n value: number;\n label?: ReactNode | undefined;\n valueLabel?: ReactNode | undefined;\n caption?: ReactNode | undefined;\n thresholds?: number[] | undefined;\n tone?: keyof typeof KAESO_METER_VARIANTS.tone | undefined;\n leading?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport function meterColor(value: number, thresholds: number[] = []) {\n if (value >= 1) return \"bg-danger\";\n const first = thresholds.length ? Math.min(...thresholds) : 0.8;\n return value >= first ? \"bg-warning\" : \"bg-viz-1\";\n}\n\nexport const Meter = /* @__PURE__ */ forwardRef<HTMLDivElement, MeterProps>(function Meter(\n { value, label, valueLabel, caption, thresholds = [], tone = \"auto\", leading, trailing, className, \"aria-label\": ariaLabel },\n ref,\n) {\n const pct = Math.max(0, Math.min(1, value));\n const now = Math.round(value * 100);\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-8\", className)}>\n {(label || valueLabel) && (\n <div className=\"flex items-baseline justify-between gap-12\">\n <span className=\"flex min-w-0 items-center gap-8 text-body font-medium text-fg\">\n {leading}\n <span className=\"truncate\">{label}</span>\n {trailing}\n </span>\n {valueLabel && <span className=\"shrink-0 text-body text-fg-secondary tabular\">{valueLabel}</span>}\n </div>\n )}\n <div\n role=\"meter\"\n aria-valuemin={0}\n aria-valuemax={Math.max(100, now)}\n aria-valuenow={now}\n aria-label={ariaLabel ?? (typeof label === \"string\" ? label : undefined)}\n {...(typeof valueLabel === \"string\" ? { \"aria-valuetext\": valueLabel } : {})}\n className=\"relative h-6 overflow-hidden rounded-pill bg-fill-3\"\n >\n <div\n className={cn(\"h-full rounded-pill width-motion\", tone === \"auto\" ? meterColor(value, thresholds) : KAESO_METER_VARIANTS.tone.neutral.classes)}\n style={{ width: `${pct * 100}%` }}\n />\n {thresholds.map((t) => (\n <span key={t} aria-hidden className=\"absolute top-0 h-full w-2 bg-panel\" style={{ left: `${t * 100}%` }} />\n ))}\n </div>\n {caption && <span className=\"text-caption font-medium text-fg-tertiary\">{caption}</span>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Meter.displayName = \"Meter\";\n\nexport const KAESO_PROGRESS_VARIANTS = {\n kind: {\n determinate: { classes: \"h-6 rounded-pill bg-fill-3\" },\n indeterminate: { classes: \"h-2 bg-transparent\" },\n },\n} as const;\nexport const KAESO_PROGRESS_DEFAULT_VARIANTS = { kind: \"determinate\" } as const;\n\nexport interface ProgressProps {\n value?: number | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nexport const Progress = /* @__PURE__ */ forwardRef<HTMLDivElement, ProgressProps>(function Progress({ value, className, \"aria-label\": ariaLabel }, ref) {\n const indeterminate = value === undefined;\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={100}\n {...(!indeterminate ? { \"aria-valuenow\": Math.round(value * 100) } : {})}\n className={cn(\"relative w-full overflow-hidden\", KAESO_PROGRESS_VARIANTS.kind[indeterminate ? \"indeterminate\" : \"determinate\"].classes, className)}\n >\n {indeterminate ? (\n <span className=\"absolute inset-y-0 left-0 w-1/3 animate-indeterminate rounded-pill bg-fg-tertiary\" />\n ) : (\n <span className=\"block h-full rounded-pill bg-ink width-motion\" style={{ width: `${Math.max(0, Math.min(1, value)) * 100}%` }} />\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Progress.displayName = \"Progress\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAuB,EAClC,MAAM;CACJ,MAAM,EAAE,SAAS,GAAG;CACpB,SAAS,EAAE,SAAS,kBAAkB;AACxC,EACF,GACaC,IAA+B,EAAE,MAAM,OAAO;AAe3D,SAAgBC,EAAW,GAAe,IAAuB,CAAC,GAAG;CAGnE,OAFIC,KAAS,IAAU,cAEhBA,MADOC,EAAW,SAAS,KAAK,IAAI,GAAGA,CAAU,IAAI,MACpC,eAAe;AACzC;AAEA,IAAaC,IAAwB,kBAAuC,SAC1E,EAAE,UAAO,UAAO,eAAY,YAAS,gBAAa,CAAC,GAAG,UAAO,QAAQ,YAAS,aAAU,cAAW,cAAcC,KACjH,GACA;CACA,IAAMC,IAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGJ,CAAK,CAAC,GACpCK,IAAM,KAAK,MAAML,IAAQ,GAAG;CAClC,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWJ,EAAG,uBAAuBU,CAAS;EAA7D,UAAA;IACIC,KAASC,MACT,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA;MACGC;MACD,kBAAC,QAAD;OAAM,WAAU;OAAY,UAAAF;MAAY,CAAA;MACvCG;KACG;IACL,CAAA,GAAAF,KAAc,kBAAC,QAAD;KAAM,WAAU;KAAgD,UAAAA;IAAiB,CAAA,CAC7F;;GAEP,kBAAC,OAAD;IACE,MAAK;IACL,iBAAe;IACf,iBAAe,KAAK,IAAI,KAAKH,CAAG;IAChC,iBAAeA;IACf,cAAYF,MAAc,OAAOI,KAAU,WAAWA,IAAQ,KAAA;IAC9D,GAAK,OAAOC,KAAe,WAAW,EAAE,kBAAkBA,EAAW,IAAI,CAAC;IAC1E,WAAU;IAPZ,UAAA,CASE,kBAAC,OAAD;KACE,WAAWZ,EAAG,oCAAoCe,MAAS,SAASZ,EAAWC,GAAOC,CAAU,IAAIJ,EAAqB,KAAK,QAAQ,OAAO;KAC7I,OAAO,EAAE,OAAO,GAAGO,IAAM,IAAI,GAAG;IACjC,CAAA,GACAH,EAAW,KAAK,MACf,kBAAC,QAAD;KAAc,eAAA;KAAY,WAAU;KAAqC,OAAO,EAAE,MAAM,GAAGW,IAAI,IAAI,GAAG;IAAI,GAA/FA,CAA+F,CAC3G,CACE;;GACJC,KAAW,kBAAC,QAAD;IAAM,WAAU;IAA6C,UAAAA;GAAc,CAAA;EACpF;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAaC,IAA0B,EACrC,MAAM;CACJ,aAAa,EAAE,SAAS,6BAA6B;CACrD,eAAe,EAAE,SAAS,qBAAqB;AACjD,EACF,GACaC,IAAkC,EAAE,MAAM,cAAc,GAQxDC,IAA2B,kBAA0C,SAAkB,EAAE,UAAO,cAAW,cAAcb,KAAa,GAAK;CACtJ,IAAMc,IAAgBjB,MAAU,KAAA;CAChC,OACE,kBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAYG;EACZ,iBAAe;EACf,iBAAe;EACf,GAAMc,IAA+D,CAAC,IAAhD,EAAE,iBAAiB,KAAK,MAAMjB,IAAQ,GAAG,EAAE;EACjE,WAAWJ,EAAG,mCAAmCkB,EAAwB,KAAKG,IAAgB,kBAAkB,cAAc,CAAC,SAASX,CAAS;EAEhJ,UAAAW,IACC,kBAAC,QAAD,EAAM,WAAU,oFAAqF,CAAA,IAErG,kBAAC,QAAD;GAAM,WAAU;GAAgD,OAAO,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGjB,CAAK,CAAC,IAAI,IAAI,GAAG;EAAI,CAAA;CAE/H,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -2,7 +2,7 @@
2
2
  import { l as e } from "./styles-CVJU9t9v.js";
3
3
  import { r as t } from "./portal-context-BBbzDKmY.js";
4
4
  import { i as n } from "./context-BELWW79w.js";
5
- import { c as r, s as i } from "./sidebar-DifJ5KgE.js";
5
+ import { c as r, s as i } from "./sidebar-DtFlejU7.js";
6
6
  import { useEffect as a, useMemo as o, useRef as s } from "react";
7
7
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
8
8
  import { Dialog as u } from "@base-ui/react/dialog";
@@ -57,4 +57,4 @@ process.env.NODE_ENV !== "production" && (f.displayName = "NavSheet");
57
57
  //#endregion
58
58
  export { d as n, f as t };
59
59
 
60
- //# sourceMappingURL=nav-sheet-Y2Ite-iF.js.map
60
+ //# sourceMappingURL=nav-sheet-B2rNb8GB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-sheet-Y2Ite-iF.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 { 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 function NavSheet({\n open,\n onOpenChange,\n peek = false,\n returnFocus,\n children,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n peek?: boolean | undefined;\n returnFocus?: RefObject<HTMLElement | null> | undefined;\n children: ReactNode;\n}) {\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 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":";;;;;;;;;;AAMA,SAAgBM,EAAS,EACvB,SACA,iBACA,UAAO,IACP,gBACA,eAOC;CACD,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;IACE,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;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
1
+ {"version":3,"file":"nav-sheet-B2rNb8GB.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 { 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 function NavSheet({\n open,\n onOpenChange,\n peek = false,\n returnFocus,\n children,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n peek?: boolean | undefined;\n returnFocus?: RefObject<HTMLElement | null> | undefined;\n children: ReactNode;\n}) {\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 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":";;;;;;;;;;AAMA,SAAgBM,EAAS,EACvB,SACA,iBACA,UAAO,IACP,gBACA,eAOC;CACD,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;IACE,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;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/components/logo/paths.ts
@@ -65,4 +65,4 @@ process.env.NODE_ENV !== "production" && (c.displayName = "Logo.Wordmark");
65
65
  //#endregion
66
66
  export { a, i, o as n, r, c as t };
67
67
 
68
- //# sourceMappingURL=nav-wordmark-CjWM3NYa.js.map
68
+ //# sourceMappingURL=nav-wordmark-_pjheAsZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-wordmark-CjWM3NYa.js","names":["cn","mark","markIcon","wordmark","lockup","WORDMARK_TIGHT","NavWordmark","props","className","style","decorative","title","d"],"sources":["../../src/components/logo/paths.ts","../../src/components/logo/nav-wordmark.tsx"],"sourcesContent":["export const mark = {\n viewBox: \"80.5 79.5 861 643\",\n paths: [\n \"m240 100h162c9 0 13 3 20 9l155 136c27 24 53 38 84 40h253q7 0 7 7v50q0 6-7 6l-403-8c-25-1-44-8-63-25l-212-204c-6-6-4-11 4-11z\",\n \"m107 542c45-33 92-65 138-96 62-41 114-60 184-61h484q8 0 8 7v19q0 7-8 7l-354 1c-44 0-73 7-102 29l-202 161q-6 5-14 5h-134q-6 0-6-6v-58q0-5 6-8z\",\n \"m307 693 225-202c22-19 49-27 78-28l303-5q8 0 8 8v56q0 5-6 5h-182c-31 0-51 8-72 25l-165 140c-7 6-12 10-23 10h-164c-6 0-7-4-2-9z\",\n ],\n} as const;\nexport const markIcon = {\n viewBox: \"107 90 620 620\",\n paths: [\n \"m240 100h162c9 0 13 3 20 9l155 136c27 24 53 38 84 40h253q7 0 7 7v50q0 6-7 6l-403-8c-25-1-44-8-63-25l-212-204c-6-6-4-11 4-11z\",\n \"m107 542c45-33 92-65 138-96 62-41 114-60 184-61h484q8 0 8 7v19q0 7-8 7l-354 1c-44 0-73 7-102 29l-202 161q-6 5-14 5h-134q-6 0-6-6v-58q0-5 6-8z\",\n \"m307 693 225-202c22-19 49-27 78-28l303-5q8 0 8 8v56q0 5-6 5h-182c-31 0-51 8-72 25l-165 140c-7 6-12 10-23 10h-164c-6 0-7-4-2-9z\",\n ],\n} as const;\nexport const wordmark = {\n viewBox: \"49.952 47.249 925.995 221.798\",\n paths: [\n \"m72 71.5h34.5v76.1l86-76.1h47.1l-89.6 81.9 90.5 91.8h-46.3l-70.8-70.3-16.9 15.7v54.6h-34.5z\",\n \"m330.5 71.5h31.6l80.2 173.7h-38.1l-20.5-43.2h-79.6l-19.5 43.2h-34.5zm14.6 42.6-26.7 59.2h53.6z\",\n \"m457.7 71.5h136.4v30.6h-101.4v37.8h87.4v31h-87.4v43.1h102.3v31.2h-137.3z\",\n \"m748.1 79.3v31.8c-20.5-7.1-41.8-11-65.4-11-21.7 0-34.7 6.2-34.7 19.8 0 11.5 9.8 16.8 26.4 18.9l21.3 1.7c40.7 2.5 63.3 18.2 63.3 52.2 0 36.1-26.1 54.3-74.8 54.3-24 0-46.4-3.6-66.4-11.7v-32.3c21.3 8.5 40.9 12.9 65.4 12.9 25.9 0 39.9-6.7 39.9-20.3 0-13.3-10.4-19.1-30.2-20.6l-21.4-1.4c-40.2-2.6-60.5-19.1-60.5-50.2 0-33.7 26.8-54.1 69.8-54.1 27.1 0 48.4 3 67.3 10z\",\n \"m862.8 69.7c52.3 0 91.1 37.1 91.1 88.8 0 52.4-37.2 88.3-90.9 88.3-53.9 0-92-36.4-92-88 0-51.1 39.4-89.1 91.8-89.1zm0 33.3c-32.7 0-55.3 23.4-55.3 55.8 0 32.5 22.5 55 55.5 55 32.9 0 55-22.8 55-55s-22.7-55.8-55.2-55.8z\",\n ],\n} as const;\nexport const lockup = {\n viewBox: \"42.541 42.142 939.02 234.215\",\n paths: [\n \"m112 64.5h57.5l46.3 42.3c12.3 10.8 23.3 13.3 39.5 13.3h72.9v19.9h-117c-14.8 0-26-1.3-33.6-8.4z\",\n \"m64.9 205.1 47.2-29.3c25.2-15.9 44.7-23.9 73.5-23.9h142.6v12.3h-111.6c-17.2 0-24.8 2.2-35.9 10.6l-66.8 51.5h-49z\",\n \"m132.9 254 64.8-58.5c13.5-12.4 22.4-16.1 44.1-16.1h86.4v21.6h-60.7c-13.4 0-17.9 2.2-26.9 9.7l-48.8 43.3z\",\n \"m383.5 101h22.3v48.6l55.5-48.6h30.1l-57.3 52.2 59.1 58.8h-30.4l-44.8-44-12.2 10.5v33.5h-22.3z\",\n \"m498.7 212 52.5-111h19.5l52.1 111h-24.8l-12.3-28h-51.2l-12.9 28zm44.6-46.9h33.7l-16.6-36.4z\",\n \"m632.8 101h89v20.2h-65.9v23.8h57.2v20.1h-57.2v26.5h66.9v20.4h-90z\",\n \"m823.6 105.5v20.7c-12.9-4.3-24.3-6.6-38.2-6.6-17.3 0-26.8 4.3-26.8 12.5 0 8.7 8 11.1 25.1 11.9 31.6 1.4 46.8 11.3 46.8 33.3 0 24.3-18 35.9-48.5 35.9-17 0-33-2.6-44.5-6.5v-21.2c14.1 5.2 28.6 7.6 43.3 7.6 17.3 0 26.5-4.1 26.5-12.9 0-8.7-6.7-12-25.4-13-31.8-1.5-47.9-10.1-47.9-32.3 0-22.3 17.6-35 47.5-35 15.6 0 30 1.7 42.1 5.6z\",\n \"m898.9 100c35.8 0 60.3 23 60.3 56.7s-24.5 56.6-60.3 56.6c-35.7 0-59.9-22.8-59.9-56.6 0-33.7 24.2-56.7 59.9-56.7zm0 21.1c-21.9 0-36.8 14.2-36.8 35.6s14.9 35.5 36.8 35.5c22 0 36.7-14.1 36.7-35.5s-14.7-35.6-36.7-35.6z\",\n ],\n} as const;\n","import { forwardRef, type SVGAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { wordmark } from \"./paths.js\";\n\nconst WORDMARK_TIGHT = \"72 69.3 881.9 177.7\";\n\nexport interface NavWordmarkProps extends Omit<SVGAttributes<SVGSVGElement>, \"children\"> {\n title?: string | undefined;\n decorative?: boolean | undefined;\n}\n\nexport const NavWordmark = /* @__PURE__ */ forwardRef<SVGSVGElement, NavWordmarkProps>(function NavWordmark({ title = \"Kaeso\", decorative, className, style, ...props }, ref) {\n return (\n <svg\n ref={ref}\n viewBox={WORDMARK_TIGHT}\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\"block shrink-0\", className)}\n style={{ width: 60, height: 12, ...style }}\n {...(decorative ? { \"aria-hidden\": true, focusable: false } : { role: \"img\", \"aria-label\": title })}\n {...props}\n >\n {wordmark.paths.map((d) => (\n <path key={d} d={d} />\n ))}\n </svg>\n );\n});\nif (process.env.NODE_ENV !== \"production\") NavWordmark.displayName = \"Logo.Wordmark\";\n"],"mappings":";;;;;AAAA,IAAaC,IAAO;CAClB,SAAS;CACT,OAAO;EACL;EACA;EACA;CACF;AACF,GACaC,IAAW;CACtB,SAAS;CACT,OAAO;EACL;EACA;EACA;CACF;AACF,GACaC,IAAW;CACtB,SAAS;CACT,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF,GACaC,IAAS;CACpB,SAAS;CACT,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,GClCMC,IAAiB,uBAOVC,IAA8B,kBAA4C,SAAqB,EAAE,WAAQ,SAAS,eAAY,cAAW,UAAO,GAAGC,KAAS,GAAK;CAC5K,OACE,kBAAC,OAAD;EACO;EACL,SAASF;EACT,MAAK;EACL,OAAM;EACN,WAAWL,EAAG,kBAAkBQ,CAAS;EACzC,OAAO;GAAE,OAAO;GAAI,QAAQ;GAAI,GAAGC;EAAM;EACzC,GAAKC,IAAa;GAAE,eAAe;GAAM,WAAW;EAAM,IAAI;GAAE,MAAM;GAAO,cAAcC;EAAM;EACjG,GAAIJ;EAEH,UAAAJ,EAAS,MAAM,KAAK,MACnB,kBAAC,QAAD,EAAiB,KAAI,GAAVS,CAAU,CACtB;CACE,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc"}
1
+ {"version":3,"file":"nav-wordmark-_pjheAsZ.js","names":["cn","mark","markIcon","wordmark","lockup","WORDMARK_TIGHT","NavWordmark","props","className","style","decorative","title","d"],"sources":["../../src/components/logo/paths.ts","../../src/components/logo/nav-wordmark.tsx"],"sourcesContent":["export const mark = {\n viewBox: \"80.5 79.5 861 643\",\n paths: [\n \"m240 100h162c9 0 13 3 20 9l155 136c27 24 53 38 84 40h253q7 0 7 7v50q0 6-7 6l-403-8c-25-1-44-8-63-25l-212-204c-6-6-4-11 4-11z\",\n \"m107 542c45-33 92-65 138-96 62-41 114-60 184-61h484q8 0 8 7v19q0 7-8 7l-354 1c-44 0-73 7-102 29l-202 161q-6 5-14 5h-134q-6 0-6-6v-58q0-5 6-8z\",\n \"m307 693 225-202c22-19 49-27 78-28l303-5q8 0 8 8v56q0 5-6 5h-182c-31 0-51 8-72 25l-165 140c-7 6-12 10-23 10h-164c-6 0-7-4-2-9z\",\n ],\n} as const;\nexport const markIcon = {\n viewBox: \"107 90 620 620\",\n paths: [\n \"m240 100h162c9 0 13 3 20 9l155 136c27 24 53 38 84 40h253q7 0 7 7v50q0 6-7 6l-403-8c-25-1-44-8-63-25l-212-204c-6-6-4-11 4-11z\",\n \"m107 542c45-33 92-65 138-96 62-41 114-60 184-61h484q8 0 8 7v19q0 7-8 7l-354 1c-44 0-73 7-102 29l-202 161q-6 5-14 5h-134q-6 0-6-6v-58q0-5 6-8z\",\n \"m307 693 225-202c22-19 49-27 78-28l303-5q8 0 8 8v56q0 5-6 5h-182c-31 0-51 8-72 25l-165 140c-7 6-12 10-23 10h-164c-6 0-7-4-2-9z\",\n ],\n} as const;\nexport const wordmark = {\n viewBox: \"49.952 47.249 925.995 221.798\",\n paths: [\n \"m72 71.5h34.5v76.1l86-76.1h47.1l-89.6 81.9 90.5 91.8h-46.3l-70.8-70.3-16.9 15.7v54.6h-34.5z\",\n \"m330.5 71.5h31.6l80.2 173.7h-38.1l-20.5-43.2h-79.6l-19.5 43.2h-34.5zm14.6 42.6-26.7 59.2h53.6z\",\n \"m457.7 71.5h136.4v30.6h-101.4v37.8h87.4v31h-87.4v43.1h102.3v31.2h-137.3z\",\n \"m748.1 79.3v31.8c-20.5-7.1-41.8-11-65.4-11-21.7 0-34.7 6.2-34.7 19.8 0 11.5 9.8 16.8 26.4 18.9l21.3 1.7c40.7 2.5 63.3 18.2 63.3 52.2 0 36.1-26.1 54.3-74.8 54.3-24 0-46.4-3.6-66.4-11.7v-32.3c21.3 8.5 40.9 12.9 65.4 12.9 25.9 0 39.9-6.7 39.9-20.3 0-13.3-10.4-19.1-30.2-20.6l-21.4-1.4c-40.2-2.6-60.5-19.1-60.5-50.2 0-33.7 26.8-54.1 69.8-54.1 27.1 0 48.4 3 67.3 10z\",\n \"m862.8 69.7c52.3 0 91.1 37.1 91.1 88.8 0 52.4-37.2 88.3-90.9 88.3-53.9 0-92-36.4-92-88 0-51.1 39.4-89.1 91.8-89.1zm0 33.3c-32.7 0-55.3 23.4-55.3 55.8 0 32.5 22.5 55 55.5 55 32.9 0 55-22.8 55-55s-22.7-55.8-55.2-55.8z\",\n ],\n} as const;\nexport const lockup = {\n viewBox: \"42.541 42.142 939.02 234.215\",\n paths: [\n \"m112 64.5h57.5l46.3 42.3c12.3 10.8 23.3 13.3 39.5 13.3h72.9v19.9h-117c-14.8 0-26-1.3-33.6-8.4z\",\n \"m64.9 205.1 47.2-29.3c25.2-15.9 44.7-23.9 73.5-23.9h142.6v12.3h-111.6c-17.2 0-24.8 2.2-35.9 10.6l-66.8 51.5h-49z\",\n \"m132.9 254 64.8-58.5c13.5-12.4 22.4-16.1 44.1-16.1h86.4v21.6h-60.7c-13.4 0-17.9 2.2-26.9 9.7l-48.8 43.3z\",\n \"m383.5 101h22.3v48.6l55.5-48.6h30.1l-57.3 52.2 59.1 58.8h-30.4l-44.8-44-12.2 10.5v33.5h-22.3z\",\n \"m498.7 212 52.5-111h19.5l52.1 111h-24.8l-12.3-28h-51.2l-12.9 28zm44.6-46.9h33.7l-16.6-36.4z\",\n \"m632.8 101h89v20.2h-65.9v23.8h57.2v20.1h-57.2v26.5h66.9v20.4h-90z\",\n \"m823.6 105.5v20.7c-12.9-4.3-24.3-6.6-38.2-6.6-17.3 0-26.8 4.3-26.8 12.5 0 8.7 8 11.1 25.1 11.9 31.6 1.4 46.8 11.3 46.8 33.3 0 24.3-18 35.9-48.5 35.9-17 0-33-2.6-44.5-6.5v-21.2c14.1 5.2 28.6 7.6 43.3 7.6 17.3 0 26.5-4.1 26.5-12.9 0-8.7-6.7-12-25.4-13-31.8-1.5-47.9-10.1-47.9-32.3 0-22.3 17.6-35 47.5-35 15.6 0 30 1.7 42.1 5.6z\",\n \"m898.9 100c35.8 0 60.3 23 60.3 56.7s-24.5 56.6-60.3 56.6c-35.7 0-59.9-22.8-59.9-56.6 0-33.7 24.2-56.7 59.9-56.7zm0 21.1c-21.9 0-36.8 14.2-36.8 35.6s14.9 35.5 36.8 35.5c22 0 36.7-14.1 36.7-35.5s-14.7-35.6-36.7-35.6z\",\n ],\n} as const;\n","import { forwardRef, type SVGAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { wordmark } from \"./paths.js\";\n\nconst WORDMARK_TIGHT = \"72 69.3 881.9 177.7\";\n\nexport interface NavWordmarkProps extends Omit<SVGAttributes<SVGSVGElement>, \"children\"> {\n title?: string | undefined;\n decorative?: boolean | undefined;\n}\n\nexport const NavWordmark = /* @__PURE__ */ forwardRef<SVGSVGElement, NavWordmarkProps>(function NavWordmark({ title = \"Kaeso\", decorative, className, style, ...props }, ref) {\n return (\n <svg\n ref={ref}\n viewBox={WORDMARK_TIGHT}\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\"block shrink-0\", className)}\n style={{ width: 60, height: 12, ...style }}\n {...(decorative ? { \"aria-hidden\": true, focusable: false } : { role: \"img\", \"aria-label\": title })}\n {...props}\n >\n {wordmark.paths.map((d) => (\n <path key={d} d={d} />\n ))}\n </svg>\n );\n});\nif (process.env.NODE_ENV !== \"production\") NavWordmark.displayName = \"Logo.Wordmark\";\n"],"mappings":";;;;;AAAA,IAAaC,IAAO;CAClB,SAAS;CACT,OAAO;EACL;EACA;EACA;CACF;AACF,GACaC,IAAW;CACtB,SAAS;CACT,OAAO;EACL;EACA;EACA;CACF;AACF,GACaC,IAAW;CACtB,SAAS;CACT,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF,GACaC,IAAS;CACpB,SAAS;CACT,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,GClCMC,IAAiB,uBAOVC,IAA8B,kBAA4C,SAAqB,EAAE,WAAQ,SAAS,eAAY,cAAW,UAAO,GAAGC,KAAS,GAAK;CAC5K,OACE,kBAAC,OAAD;EACO;EACL,SAASF;EACT,MAAK;EACL,OAAM;EACN,WAAWL,EAAG,kBAAkBQ,CAAS;EACzC,OAAO;GAAE,OAAO;GAAI,QAAQ;GAAI,GAAGC;EAAM;EACzC,GAAKC,IAAa;GAAE,eAAe;GAAM,WAAW;EAAM,IAAI;GAAE,MAAM;GAAO,cAAcC;EAAM;EACjG,GAAIJ;EAEH,UAAAJ,EAAS,MAAM,KAAK,MACnB,kBAAC,QAAD,EAAiB,KAAI,GAAVS,CAAU,CACtB;CACE,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
3
- import { t } from "./icon-D5uD_mnL.js";
4
- import { s as n } from "./app-frame-DZPEf2NQ.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
+ import { t } from "./icon-D7ja-_Yk.js";
4
+ import { s as n } from "./app-frame-C8csevkL.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-CZCQVHYE.js.map
41
+ //# sourceMappingURL=page-header-DjUMDG69.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-header-CZCQVHYE.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-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,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t } from "./context-BELWW79w.js";
4
- import { n } from "./button-9q66Ta23.js";
5
- import { t as r } from "./icon-button-C7Du4pvb.js";
4
+ import { n } from "./button-Dzu7_csE.js";
5
+ import { t as r } from "./icon-button-CPYR21Sz.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-BStrMDqM.js.map
86
+ //# sourceMappingURL=pagination-BaY8jdli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-BStrMDqM.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-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,12 +1,12 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { n as t, r as n } from "./portal-context-BBbzDKmY.js";
4
4
  import { i as r } from "./context-BELWW79w.js";
5
- import { t as i } from "./icon-D5uD_mnL.js";
6
- import { t as a } from "./icon-button-C7Du4pvb.js";
7
- import { n as o } from "./select-eFTHLeYG.js";
5
+ import { t as i } from "./icon-D7ja-_Yk.js";
6
+ import { t as a } from "./icon-button-CPYR21Sz.js";
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-CzMbdtJs.js";
9
+ import { n as u } from "./command-list-0RR4DpUe.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";
@@ -102,4 +102,4 @@ process.env.NODE_ENV !== "production" && (E.displayName = "PickerTrigger");
102
102
  //#endregion
103
103
  export { E as i, b as n, T as r, x as t };
104
104
 
105
- //# sourceMappingURL=picker-popover-BerQAEBT.js.map
105
+ //# sourceMappingURL=picker-popover-DShea4b8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picker-popover-BerQAEBT.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-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":";;;;;;;;;;;;;;;AAaA,IAAaiB,IAAgC,EAC3C,OAAO;CACL,IAAI,EAAE,SAAS,QAAQ;CACvB,IAAI,EAAE,SAAS,QAAQ;CACvB,IAAI,EAAE,SAAS,QAAQ;AACzB,EACF,GACaC,IAAwC,EAAE,OAAO,KAAK,GAE7DC,IAAS,sBACTC,KAAmB,MAAyB;CAChD,IAAI,OAAO,SAAW,OAAe,CAAC,OAAO,YAAY,aAAa,CAAC;CACvE,IAAMC,IAAI,OAAO,WAAWF,CAAM;CAElC,OADAE,EAAE,iBAAiB,UAAUC,CAAQ,SACxBD,EAAE,oBAAoB,UAAUC,CAAQ;AACvD,GACMC,UAAiB,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,aAAaJ,CAAM,CAAC,CAAC;AAYtF,SAAgBK,EAAc,EAAE,YAAS,UAAO,SAAM,iBAAc,WAAQ,MAAM,WAAQ,SAAS,eAAgC;CACjI,IAAMC,IAAIjB,EAAU,GACdkB,IAAYnB,EAAmB,GAC/BoB,IAASC,EAAqBR,GAAiBG,SAAgB,EAAK,GACpEM,IAASC,IAAe,EAAE,eAAe,MAAeA,EAAaC,CAAC,EAAE,IAAI,CAAC,GAC7EC,IAAQC,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;CAoB1C,OAnBIN,IAEA,kBAAC3B,EAAW,MAAZ;EAAiB,GAAIgC;EAAO,GAAIH;EAAhC,UAAA,CACE,kBAAC7B,EAAW,SAAZ,EAAoB,QAAQmC,EAAU,CAAA,GACtC,kBAACnC,EAAW,QAAZ;GAA8B;GAA9B,UAAA,CACE,kBAACA,EAAW,UAAZ,EAAqB,WAAU,2DAA4D,CAAA,GAC3F,kBAACA,EAAW,OAAZ;IACE,aAAU;IACV,WAAU;IAFZ,UAAA,CAIE,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAACA,EAAW,OAAZ;MAAkB,WAAU;MAA8D,UAAAoC;KAAwB,CAAA,GAClH,kBAACpC,EAAW,OAAZ,EAAkB,QAAQ,kBAACU,GAAD;MAAY,MAAMT;MAAqB,cAAYwB,EAAE,uBAAuB,OAAO;MAAG,SAAS;KAAQ,CAAA,EAAI,CAAA,CAClI;IACL,CAAA,GAAA,kBAACV,EAAyB,UAA1B;KAAmC,OAAM;KAAQ;IAA4C,CAAA,CAC7E;GACD,CAAA,CAAA;EACJ,CAAA,CAAA;C,KAGnB,kBAACb,EAAY,MAAb;EAAkB,GAAI8B;EAAO,GAAIH;EAAQ,OAAO;EAAhD,UAAA,CACE,kBAAC3B,EAAY,SAAb,EAAqB,QAAQiC,EAAU,CAAA,GACvC,kBAACjC,EAAY,QAAb;GAA+B;GAC7B,UAAA,kBAACA,EAAY,YAAb;IACE,gBAAe;IACf,mBAAmBI,EAAa;IAChC,MAAK;IACE;IACP,YAAY;IACZ,kBAAkB;IAClB,WAAU;IAEV,UAAA,kBAACJ,EAAY,OAAb;KACE,cAAYkC;KACZ,WAAW/B,EACT,8HACAY,EAA8B,MAAMsB,EAAM,CAAC,OAC7C;KAEA,UAAA,kBAACxB,EAAyB,UAA1B;MAAmC,OAAM;MAAW;KAA4C,CAAA;IAC/E,CAAA;GACG,CAAA;EACN,CAAA,CACJ;;AAEtB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc;AAavE,IAAayB,IAAgC,kBAAkD,SAC7F,EACE,gBAAa,WACb,UAAO,MACP,cACA,YACA,gBACA,aACA,cACA,UAAO,UACP,cAAcC,GACd,oBAAoBC,GACpB,GAAGC,KAEL,GACA;CACA,IAAMC,IAAQC,KAAuC,QAAQA,MAAa,IACpEC,IAAQlC,EAAUgC,IAAQG,IAAcF,CAAQ,GAChDG,IAAUnC,EAAqBiC,IAAQL,IAAY,KAAA,CAAS,GAC5DQ,IAAenC,EAAQkC,EAAQ,IAAIN,CAAW;CACpD,OACE,kBAAAvC,GAAA,EAAA,UAAA,CACE,kBAAC,UAAD;EACO;EACC;EACN,eAAY;EACZ,GAAIwC;EACJ,GAAK,CAACG,KAASL,IAAY,EAAE,cAAcA,EAAU,IAAI,CAAC;EAC1D,GAAKQ,IAAe,EAAE,oBAAoBA,EAAa,IAAI,CAAC;EAC5D,GAAKC,IAAU,EAAE,gBAAgB,GAAK,IAAI,CAAC;EAC3C,WAAW7C,EACT,6JACAM,EAAsB,KAAKwC,EAAK,CAAC,SACjCxC,EAAsB,WAAWyC,EAAW,CAAC,SAC7CF,KAAWE,MAAe,aAAa,gBACvCC,KAAa,UACbC,CACF;EAfF,UAAA,CAiBE,kBAAC,QAAD;GAAM,WAAWjD,EAAG,uDAAuDuC,KAAS,+BAA+B;GAChH,UAAAA,IAAQG,IAAcF;EACnB,CAAA,GACN,kBAAC,QAAD;GAAM,WAAU;GACd,UAAA,kBAACpC,GAAD;IAAM,MAAML;IAAwB,MAAK;GAAM,CAAA;EAC3C,CAAA,CACA;CACP,CAAA,GAAA4C,EAAQ,IACT,EAAA,CAAA;AAEN,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { n as t, r as n } from "./portal-context-BBbzDKmY.js";
4
4
  import { n as r } from "./inset-BnBj8NJV.js";
5
5
  import { n as i, r as a, t as o } from "./popover-root-D3q89WNF.js";
@@ -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-CgLt_4yG.js.map
50
+ //# sourceMappingURL=popover-CFMwaeIP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover-CgLt_4yG.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-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,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Isw2DnQX.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { t } from "./labelled-D5udSPUI.js";
4
4
  import { createContext as n, forwardRef as r, useContext as i, useId as a } from "react";
5
5
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
@@ -107,4 +107,4 @@ 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-07Muf4cX.js.map
110
+ //# sourceMappingURL=radio-Yl0nO-Sj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-07Muf4cX.js","names":["RadioGroup","BaseRadioGroup","BaseRadio","Radio","cn","KAESO_RADIO_VARIANTS","KAESO_RADIO_DEFAULT_VARIANTS","Ctx","Group","props","RadioGroup","value","defaultValue","onValueChange","v","disabled","name","variant","orientation","className","RadioCircle","ariaLabel","labelledBy","describedBy","force","Radio","id","Root","useContext","auto","useId","rid","named","labelled","label","description","Radio$1","RadioGroup$1","RadioCards"],"sources":["../../src/components/radio/radio.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type ReactNode } from \"react\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { labelled } from \"./labelled.js\";\n\nexport const KAESO_RADIO_VARIANTS = {\n variant: {\n default: { classes: \"flex flex-col\" },\n cards: {\n classes: \"flex flex-col overflow-hidden rounded-group bg-raised shadow-xs\",\n },\n },\n} as const;\nexport const KAESO_RADIO_DEFAULT_VARIANTS = { variant: \"default\" } as const;\n\nconst Ctx = /* @__PURE__ */ createContext<{ variant: keyof typeof KAESO_RADIO_VARIANTS.variant }>({ variant: \"default\" });\n\nexport interface RadioGroupProps {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n variant?: keyof typeof KAESO_RADIO_VARIANTS.variant | undefined;\n orientation?: \"vertical\" | \"horizontal\" | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}\n\nconst Group = /* @__PURE__ */ forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n { value, defaultValue, onValueChange, disabled, name, variant = \"default\", orientation = \"vertical\", className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ variant }}>\n <BaseRadioGroup\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n className={cn(\n KAESO_RADIO_VARIANTS.variant[variant].classes,\n orientation === \"horizontal\" && variant === \"default\" && \"flex-row flex-wrap gap-x-24\",\n className,\n )}\n {...props}\n >\n {children}\n </BaseRadioGroup>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Group.displayName = \"RadioGroup\";\n\nexport interface RadioProps {\n value: string;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n \"aria-describedby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const RadioCircle = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function RadioCircle(\n { value, disabled, id, className, \"aria-label\": ariaLabel, \"aria-labelledby\": labelledBy, \"aria-describedby\": describedBy, \"data-force\": force },\n ref,\n) {\n return (\n <BaseRadio.Root\n ref={ref}\n value={value}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(id ? { id } : {})}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(labelledBy ? { \"aria-labelledby\": labelledBy } : {})}\n {...(describedBy ? { \"aria-describedby\": describedBy } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative inline-flex size-18 shrink-0 cursor-pointer items-center justify-center rounded-pill bg-raised shadow-selector radio-donut focus-ring tap-target\",\n \"not-checked:hover:shadow-selector-hover disabled:cursor-not-allowed disabled:bg-fill-1 disabled:shadow-none\",\n className,\n )}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") RadioCircle.displayName = \"Radio.Circle\";\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function Radio({ label, description, id, className, ...props }, ref) {\n const { variant } = useContext(Ctx);\n const auto = useId();\n const rid = id ?? `k-radio-${auto}`;\n const named = labelled(rid, label, description, props);\n if (variant === \"cards\") {\n return (\n <label\n htmlFor={rid}\n className={cn(\n \"flex min-h-56 cursor-pointer items-center gap-16 px-20 py-12 transition-control hover:bg-fill-1 not-first:hairline-t has-[:disabled]:cursor-not-allowed\",\n className,\n )}\n >\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span id={named.labelId} className={cn(\"text-body-lg font-medium text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </label>\n );\n }\n if (!label) return <RadioCircle ref={ref} id={rid} className={className} {...props} />;\n return (\n <label\n htmlFor={rid}\n className={cn(\"inline-flex min-h-32 cursor-pointer items-start gap-10 py-6 select-none\", props.disabled && \"cursor-not-allowed\", className)}\n >\n <span className=\"flex h-20 items-center\">\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </span>\n <span className=\"flex flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Radio\";\n\nexport const Radio = /* @__PURE__ */ Object.assign(Root, { Group, Circle: RadioCircle });\nexport const RadioGroup = Group;\nexport function RadioCards(props: Omit<RadioGroupProps, \"variant\">) {\n return <Group variant=\"cards\" {...props} />;\n}\nif (process.env.NODE_ENV !== \"production\") RadioCards.displayName = \"RadioCards\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"radio-Yl0nO-Sj.js","names":["RadioGroup","BaseRadioGroup","BaseRadio","Radio","cn","KAESO_RADIO_VARIANTS","KAESO_RADIO_DEFAULT_VARIANTS","Ctx","Group","props","RadioGroup","value","defaultValue","onValueChange","v","disabled","name","variant","orientation","className","RadioCircle","ariaLabel","labelledBy","describedBy","force","Radio","id","Root","useContext","auto","useId","rid","named","labelled","label","description","Radio$1","RadioGroup$1","RadioCards"],"sources":["../../src/components/radio/radio.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type ReactNode } from \"react\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { labelled } from \"./labelled.js\";\n\nexport const KAESO_RADIO_VARIANTS = {\n variant: {\n default: { classes: \"flex flex-col\" },\n cards: {\n classes: \"flex flex-col overflow-hidden rounded-group bg-raised shadow-xs\",\n },\n },\n} as const;\nexport const KAESO_RADIO_DEFAULT_VARIANTS = { variant: \"default\" } as const;\n\nconst Ctx = /* @__PURE__ */ createContext<{ variant: keyof typeof KAESO_RADIO_VARIANTS.variant }>({ variant: \"default\" });\n\nexport interface RadioGroupProps {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n variant?: keyof typeof KAESO_RADIO_VARIANTS.variant | undefined;\n orientation?: \"vertical\" | \"horizontal\" | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}\n\nconst Group = /* @__PURE__ */ forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n { value, defaultValue, onValueChange, disabled, name, variant = \"default\", orientation = \"vertical\", className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ variant }}>\n <BaseRadioGroup\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n className={cn(\n KAESO_RADIO_VARIANTS.variant[variant].classes,\n orientation === \"horizontal\" && variant === \"default\" && \"flex-row flex-wrap gap-x-24\",\n className,\n )}\n {...props}\n >\n {children}\n </BaseRadioGroup>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Group.displayName = \"RadioGroup\";\n\nexport interface RadioProps {\n value: string;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n \"aria-describedby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const RadioCircle = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function RadioCircle(\n { value, disabled, id, className, \"aria-label\": ariaLabel, \"aria-labelledby\": labelledBy, \"aria-describedby\": describedBy, \"data-force\": force },\n ref,\n) {\n return (\n <BaseRadio.Root\n ref={ref}\n value={value}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(id ? { id } : {})}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(labelledBy ? { \"aria-labelledby\": labelledBy } : {})}\n {...(describedBy ? { \"aria-describedby\": describedBy } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative inline-flex size-18 shrink-0 cursor-pointer items-center justify-center rounded-pill bg-raised shadow-selector radio-donut focus-ring tap-target\",\n \"not-checked:hover:shadow-selector-hover disabled:cursor-not-allowed disabled:bg-fill-1 disabled:shadow-none\",\n className,\n )}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") RadioCircle.displayName = \"Radio.Circle\";\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLButtonElement, RadioProps>(function Radio({ label, description, id, className, ...props }, ref) {\n const { variant } = useContext(Ctx);\n const auto = useId();\n const rid = id ?? `k-radio-${auto}`;\n const named = labelled(rid, label, description, props);\n if (variant === \"cards\") {\n return (\n <label\n htmlFor={rid}\n className={cn(\n \"flex min-h-56 cursor-pointer items-center gap-16 px-20 py-12 transition-control hover:bg-fill-1 not-first:hairline-t has-[:disabled]:cursor-not-allowed\",\n className,\n )}\n >\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span id={named.labelId} className={cn(\"text-body-lg font-medium text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </label>\n );\n }\n if (!label) return <RadioCircle ref={ref} id={rid} className={className} {...props} />;\n return (\n <label\n htmlFor={rid}\n className={cn(\"inline-flex min-h-32 cursor-pointer items-start gap-10 py-6 select-none\", props.disabled && \"cursor-not-allowed\", className)}\n >\n <span className=\"flex h-20 items-center\">\n <RadioCircle ref={ref} id={rid} {...props} {...named.aria} />\n </span>\n <span className=\"flex flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", props.disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {description && (\n <span id={named.descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </span>\n )}\n </span>\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Radio\";\n\nexport const Radio = /* @__PURE__ */ Object.assign(Root, { Group, Circle: RadioCircle });\nexport const RadioGroup = Group;\nexport function RadioCards(props: Omit<RadioGroupProps, \"variant\">) {\n return <Group variant=\"cards\" {...props} />;\n}\nif (process.env.NODE_ENV !== \"production\") RadioCards.displayName = \"RadioCards\";\n"],"mappings":"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"}