@cloudflare/kumo 2.3.1 → 2.4.1

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 (228) hide show
  1. package/CHANGELOG.md +82 -2
  2. package/ai/component-registry.json +166 -123
  3. package/ai/component-registry.md +349 -215
  4. package/ai/schemas.ts +7 -2
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +46 -34
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +12 -4
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js +770 -0
  11. package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js.map +1 -0
  12. package/dist/chunks/{autocomplete-bdjo7k4zep86bwh8.js → autocomplete-d0w42h1frdu03df6.js} +29 -25
  13. package/dist/chunks/{autocomplete-bdjo7k4zep86bwh8.js.map → autocomplete-d0w42h1frdu03df6.js.map} +1 -1
  14. package/dist/chunks/{badge-e9w8qrjmeu9nocf6.js → badge-c1th6h6ahz7eu49q.js} +2 -2
  15. package/dist/chunks/badge-c1th6h6ahz7eu49q.js.map +1 -0
  16. package/dist/chunks/banner-es5iwuk4pf25e29e.js +120 -0
  17. package/dist/chunks/banner-es5iwuk4pf25e29e.js.map +1 -0
  18. package/dist/chunks/{breadcrumbs-g4pyoikibpoxsgw4.js → breadcrumbs-j214mimk5zj4ffp4.js} +8 -6
  19. package/dist/chunks/breadcrumbs-j214mimk5zj4ffp4.js.map +1 -0
  20. package/dist/chunks/{button-fxdpoacmq5rv1adk.js → button-mnrxu6dud2x5js5b.js} +19 -17
  21. package/dist/chunks/{button-fxdpoacmq5rv1adk.js.map → button-mnrxu6dud2x5js5b.js.map} +1 -1
  22. package/dist/chunks/{checkbox-dtoq56ieijj9m6vr.js → checkbox-dqih8tzzt3vhp870.js} +25 -19
  23. package/dist/chunks/checkbox-dqih8tzzt3vhp870.js.map +1 -0
  24. package/dist/chunks/{clipboard-text-nvdsloomefwgcxat.js → clipboard-text-mrut8z3dt1w0efxz.js} +4 -4
  25. package/dist/chunks/{clipboard-text-nvdsloomefwgcxat.js.map → clipboard-text-mrut8z3dt1w0efxz.js.map} +1 -1
  26. package/dist/chunks/{collapsible-cnsxmp7dko87pgx0.js → collapsible-nzqcf9zwnjkxqzr6.js} +21 -17
  27. package/dist/chunks/collapsible-nzqcf9zwnjkxqzr6.js.map +1 -0
  28. package/dist/chunks/{combobox-kjmt3aoy4sia7g0o.js → combobox-msvukodjsqzlvpqc.js} +142 -130
  29. package/dist/chunks/combobox-msvukodjsqzlvpqc.js.map +1 -0
  30. package/dist/chunks/{command-palette-jrq7p16tff6n46nj.js → command-palette-fqhyacp33fhyf696.js} +5 -5
  31. package/dist/chunks/{command-palette-jrq7p16tff6n46nj.js.map → command-palette-fqhyacp33fhyf696.js.map} +1 -1
  32. package/dist/chunks/{dialog-gndju3sqg1lmpb3f.js → dialog-my9fioafdstq50mi.js} +49 -33
  33. package/dist/chunks/{dialog-gndju3sqg1lmpb3f.js.map → dialog-my9fioafdstq50mi.js.map} +1 -1
  34. package/dist/chunks/{dropdown-k6orz4j043xybf54.js → dropdown-g4sb4cw9ffqaw5gx.js} +54 -44
  35. package/dist/chunks/dropdown-g4sb4cw9ffqaw5gx.js.map +1 -0
  36. package/dist/chunks/{empty-ni12ufom1kkakbuc.js → empty-n17inn1z67bpohkw.js} +2 -2
  37. package/dist/chunks/{empty-ni12ufom1kkakbuc.js.map → empty-n17inn1z67bpohkw.js.map} +1 -1
  38. package/dist/chunks/{field-n16udu32tpyq5udz.js → field-c8o7h3rlam4c9pcx.js} +3 -3
  39. package/dist/chunks/{field-n16udu32tpyq5udz.js.map → field-c8o7h3rlam4c9pcx.js.map} +1 -1
  40. package/dist/chunks/{input-area-hhhpgg0ev8bowtrk.js → input-area-eurk3seud30ricwn.js} +4 -4
  41. package/dist/chunks/{input-area-hhhpgg0ev8bowtrk.js.map → input-area-eurk3seud30ricwn.js.map} +1 -1
  42. package/dist/chunks/{input-mv7giprcc6hfkpq3.js → input-en8hhb14mmt3tfwn.js} +3 -3
  43. package/dist/chunks/{input-mv7giprcc6hfkpq3.js.map → input-en8hhb14mmt3tfwn.js.map} +1 -1
  44. package/dist/chunks/{input-group-kkw5j7rwzhj66h10.js → input-group-d09ocmjcbdai0gze.js} +5 -5
  45. package/dist/chunks/{input-group-kkw5j7rwzhj66h10.js.map → input-group-d09ocmjcbdai0gze.js.map} +1 -1
  46. package/dist/chunks/{label-f6yvqca8qhbpvkq8.js → label-c8rz453pti66slki.js} +3 -3
  47. package/dist/chunks/{label-f6yvqca8qhbpvkq8.js.map → label-c8rz453pti66slki.js.map} +1 -1
  48. package/dist/chunks/{layer-card-gegkqhkjy65l1ueo.js → layer-card-er4flkcxmzfug8jw.js} +2 -2
  49. package/dist/chunks/{layer-card-gegkqhkjy65l1ueo.js.map → layer-card-er4flkcxmzfug8jw.js.map} +1 -1
  50. package/dist/chunks/{link-jjk7qolyol7s1jkk.js → link-i6vnwyjcwvjz5btm.js} +20 -19
  51. package/dist/chunks/{link-jjk7qolyol7s1jkk.js.map → link-i6vnwyjcwvjz5btm.js.map} +1 -1
  52. package/dist/chunks/menubar-ng5if56amh1tto4j.js +98 -0
  53. package/dist/chunks/menubar-ng5if56amh1tto4j.js.map +1 -0
  54. package/dist/chunks/{meter-kxn34sy6l2mz5dwq.js → meter-d5igshkjqttl1fdj.js} +2 -2
  55. package/dist/chunks/{meter-kxn34sy6l2mz5dwq.js.map → meter-d5igshkjqttl1fdj.js.map} +1 -1
  56. package/dist/chunks/{pagination-ixbq8ssuuo0jxaa4.js → pagination-bw7vwca4wrfjm8vb.js} +3 -3
  57. package/dist/chunks/{pagination-ixbq8ssuuo0jxaa4.js.map → pagination-bw7vwca4wrfjm8vb.js.map} +1 -1
  58. package/dist/chunks/{popover-js5ds3szd43kspja.js → popover-ozf1j7oi7pxiudyz.js} +4 -2
  59. package/dist/chunks/popover-ozf1j7oi7pxiudyz.js.map +1 -0
  60. package/dist/chunks/{radio-nyw89v4eafptepmz.js → radio-gpg6kmzonr2cayq1.js} +54 -46
  61. package/dist/chunks/radio-gpg6kmzonr2cayq1.js.map +1 -0
  62. package/dist/chunks/{select-o2i7aovnu8v1zv8t.js → select-dw9iw35ug7yer3o3.js} +101 -91
  63. package/dist/chunks/select-dw9iw35ug7yer3o3.js.map +1 -0
  64. package/dist/chunks/{sensitive-input-bjg6m791yz7g6bn3.js → sensitive-input-dgoxjtoxl4zqa51v.js} +50 -44
  65. package/dist/chunks/{sensitive-input-bjg6m791yz7g6bn3.js.map → sensitive-input-dgoxjtoxl4zqa51v.js.map} +1 -1
  66. package/dist/chunks/sidebar-hzio700cg85f7f31.js +1014 -0
  67. package/dist/chunks/sidebar-hzio700cg85f7f31.js.map +1 -0
  68. package/dist/chunks/{surface-lzwbh3f5t0gxc83t.js → surface-iyejjbqogjbo7ise.js} +2 -2
  69. package/dist/chunks/{surface-lzwbh3f5t0gxc83t.js.map → surface-iyejjbqogjbo7ise.js.map} +1 -1
  70. package/dist/chunks/{switch-d9cs31oj4rjtg717.js → switch-g8f77h69h34xld06.js} +50 -45
  71. package/dist/chunks/switch-g8f77h69h34xld06.js.map +1 -0
  72. package/dist/chunks/{table-c6qemc2jmv22cv3p.js → table-e1te1im2tt2ez05y.js} +2 -2
  73. package/dist/chunks/{table-c6qemc2jmv22cv3p.js.map → table-e1te1im2tt2ez05y.js.map} +1 -1
  74. package/dist/chunks/{table-of-contents-fzyv7uhnnyr13dqu.js → table-of-contents-jco9kvt48d34dwsw.js} +34 -30
  75. package/dist/chunks/table-of-contents-jco9kvt48d34dwsw.js.map +1 -0
  76. package/dist/chunks/{tabs-f0ztlooi91ko9g04.js → tabs-hice1yy5q2t889z8.js} +6 -4
  77. package/dist/chunks/tabs-hice1yy5q2t889z8.js.map +1 -0
  78. package/dist/chunks/{toast-ejfm5cbt9yulqhol.js → toast-kvbgct0jvfmn4mas.js} +29 -27
  79. package/dist/chunks/{toast-ejfm5cbt9yulqhol.js.map → toast-kvbgct0jvfmn4mas.js.map} +1 -1
  80. package/dist/chunks/{tooltip-o6xfw9jjclv9pxaj.js → tooltip-ken77ixya0qpidie.js} +6 -6
  81. package/dist/chunks/{tooltip-o6xfw9jjclv9pxaj.js.map → tooltip-ken77ixya0qpidie.js.map} +1 -1
  82. package/dist/chunks/{vendor-base-ui-mzjqwv5teijixz8h.js → vendor-base-ui-knphx7dts1vm1x37.js} +1726 -1719
  83. package/dist/chunks/{vendor-base-ui-mzjqwv5teijixz8h.js.map → vendor-base-ui-knphx7dts1vm1x37.js.map} +1 -1
  84. package/dist/code.js +1 -1
  85. package/dist/components/autocomplete.js +1 -1
  86. package/dist/components/badge.js +1 -1
  87. package/dist/components/banner.js +1 -1
  88. package/dist/components/breadcrumbs.js +1 -1
  89. package/dist/components/button.js +1 -1
  90. package/dist/components/chart.js +1 -1
  91. package/dist/components/checkbox.js +1 -1
  92. package/dist/components/clipboard-text.js +1 -1
  93. package/dist/components/collapsible.js +1 -1
  94. package/dist/components/combobox.js +1 -1
  95. package/dist/components/command-palette.js +1 -1
  96. package/dist/components/dialog.js +1 -1
  97. package/dist/components/dropdown.js +1 -1
  98. package/dist/components/empty.js +1 -1
  99. package/dist/components/field.js +1 -1
  100. package/dist/components/input-group.js +1 -1
  101. package/dist/components/input.js +3 -3
  102. package/dist/components/label.js +1 -1
  103. package/dist/components/layer-card.js +1 -1
  104. package/dist/components/link.js +1 -1
  105. package/dist/components/menubar.js +1 -1
  106. package/dist/components/meter.js +1 -1
  107. package/dist/components/pagination.js +1 -1
  108. package/dist/components/popover.js +1 -1
  109. package/dist/components/radio.js +1 -1
  110. package/dist/components/select.js +1 -1
  111. package/dist/components/sensitive-input.js +1 -1
  112. package/dist/components/sidebar.js +22 -23
  113. package/dist/components/surface.js +1 -1
  114. package/dist/components/switch.js +1 -1
  115. package/dist/components/table-of-contents.js +1 -1
  116. package/dist/components/table.js +1 -1
  117. package/dist/components/tabs.js +1 -1
  118. package/dist/components/toast.js +2 -2
  119. package/dist/components/tooltip.js +1 -1
  120. package/dist/index.js +122 -123
  121. package/dist/primitives/accordion.js +1 -1
  122. package/dist/primitives/alert-dialog.js +1 -1
  123. package/dist/primitives/autocomplete.js +1 -1
  124. package/dist/primitives/avatar.js +1 -1
  125. package/dist/primitives/button.js +1 -1
  126. package/dist/primitives/checkbox-group.js +1 -1
  127. package/dist/primitives/checkbox.js +1 -1
  128. package/dist/primitives/collapsible.js +1 -1
  129. package/dist/primitives/combobox.js +1 -1
  130. package/dist/primitives/context-menu.js +1 -1
  131. package/dist/primitives/csp-provider.js +1 -1
  132. package/dist/primitives/dialog.js +1 -1
  133. package/dist/primitives/direction-provider.js +1 -1
  134. package/dist/primitives/drawer.js +1 -1
  135. package/dist/primitives/field.js +1 -1
  136. package/dist/primitives/fieldset.js +1 -1
  137. package/dist/primitives/form.js +1 -1
  138. package/dist/primitives/input.js +1 -1
  139. package/dist/primitives/menu.js +1 -1
  140. package/dist/primitives/menubar.js +1 -1
  141. package/dist/primitives/meter.js +1 -1
  142. package/dist/primitives/navigation-menu.js +1 -1
  143. package/dist/primitives/number-field.js +1 -1
  144. package/dist/primitives/otp-field.js +1 -1
  145. package/dist/primitives/popover.js +1 -1
  146. package/dist/primitives/preview-card.js +1 -1
  147. package/dist/primitives/progress.js +1 -1
  148. package/dist/primitives/radio-group.js +1 -1
  149. package/dist/primitives/radio.js +1 -1
  150. package/dist/primitives/scroll-area.js +1 -1
  151. package/dist/primitives/select.js +1 -1
  152. package/dist/primitives/separator.js +1 -1
  153. package/dist/primitives/slider.js +1 -1
  154. package/dist/primitives/switch.js +1 -1
  155. package/dist/primitives/tabs.js +1 -1
  156. package/dist/primitives/toast.js +1 -1
  157. package/dist/primitives/toggle-group.js +1 -1
  158. package/dist/primitives/toggle.js +1 -1
  159. package/dist/primitives/toolbar.js +1 -1
  160. package/dist/primitives/tooltip.js +1 -1
  161. package/dist/primitives.js +1 -1
  162. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  163. package/dist/scripts/theme-generator/config.js +36 -38
  164. package/dist/scripts/theme-generator/config.js.map +1 -1
  165. package/dist/scripts/theme-generator/generate-css.d.ts.map +1 -1
  166. package/dist/scripts/theme-generator/types.d.ts +8 -2
  167. package/dist/scripts/theme-generator/types.d.ts.map +1 -1
  168. package/dist/src/components/autocomplete/autocomplete.d.ts +1 -0
  169. package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -1
  170. package/dist/src/components/autocomplete/index.d.ts +1 -0
  171. package/dist/src/components/autocomplete/index.d.ts.map +1 -1
  172. package/dist/src/components/badge/badge.d.ts +1 -1
  173. package/dist/src/components/banner/banner.d.ts +14 -7
  174. package/dist/src/components/banner/banner.d.ts.map +1 -1
  175. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  176. package/dist/src/components/button/button.d.ts.map +1 -1
  177. package/dist/src/components/chart/TimeseriesChart.d.ts +43 -1
  178. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  179. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  180. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
  181. package/dist/src/components/combobox/combobox.d.ts +1 -0
  182. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  183. package/dist/src/components/combobox/index.d.ts +1 -0
  184. package/dist/src/components/combobox/index.d.ts.map +1 -1
  185. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  186. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
  187. package/dist/src/components/link/link.d.ts.map +1 -1
  188. package/dist/src/components/menubar/menubar.d.ts.map +1 -1
  189. package/dist/src/components/popover/popover.d.ts.map +1 -1
  190. package/dist/src/components/radio/radio.d.ts.map +1 -1
  191. package/dist/src/components/select/select.d.ts.map +1 -1
  192. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
  193. package/dist/src/components/sidebar/index.d.ts +1 -1
  194. package/dist/src/components/sidebar/index.d.ts.map +1 -1
  195. package/dist/src/components/sidebar/sidebar.d.ts +159 -146
  196. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
  197. package/dist/src/components/switch/switch.d.ts.map +1 -1
  198. package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -1
  199. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  200. package/dist/src/index.d.ts +1 -1
  201. package/dist/src/index.d.ts.map +1 -1
  202. package/dist/styles/kumo-standalone.css +1 -1
  203. package/dist/styles/kumo.css +37 -0
  204. package/dist/styles/theme-kumo.css +28 -35
  205. package/package.json +4 -1
  206. package/scripts/theme-generator/config.ts +37 -39
  207. package/scripts/theme-generator/generate-css.ts +4 -1
  208. package/scripts/theme-generator/types.ts +8 -2
  209. package/dist/chunks/SankeyChart-krkvltewpn3bbupw.js +0 -651
  210. package/dist/chunks/SankeyChart-krkvltewpn3bbupw.js.map +0 -1
  211. package/dist/chunks/badge-e9w8qrjmeu9nocf6.js.map +0 -1
  212. package/dist/chunks/banner-ip2lm8r87hich557.js +0 -88
  213. package/dist/chunks/banner-ip2lm8r87hich557.js.map +0 -1
  214. package/dist/chunks/breadcrumbs-g4pyoikibpoxsgw4.js.map +0 -1
  215. package/dist/chunks/checkbox-dtoq56ieijj9m6vr.js.map +0 -1
  216. package/dist/chunks/collapsible-cnsxmp7dko87pgx0.js.map +0 -1
  217. package/dist/chunks/combobox-kjmt3aoy4sia7g0o.js.map +0 -1
  218. package/dist/chunks/dropdown-k6orz4j043xybf54.js.map +0 -1
  219. package/dist/chunks/menubar-d5s6h96nw8ggy04a.js +0 -96
  220. package/dist/chunks/menubar-d5s6h96nw8ggy04a.js.map +0 -1
  221. package/dist/chunks/popover-js5ds3szd43kspja.js.map +0 -1
  222. package/dist/chunks/radio-nyw89v4eafptepmz.js.map +0 -1
  223. package/dist/chunks/select-o2i7aovnu8v1zv8t.js.map +0 -1
  224. package/dist/chunks/sidebar-izcfqkrzt4vqn8ez.js +0 -875
  225. package/dist/chunks/sidebar-izcfqkrzt4vqn8ez.js.map +0 -1
  226. package/dist/chunks/switch-d9cs31oj4rjtg717.js.map +0 -1
  227. package/dist/chunks/table-of-contents-fzyv7uhnnyr13dqu.js.map +0 -1
  228. package/dist/chunks/tabs-f0ztlooi91ko9g04.js.map +0 -1
@@ -1,875 +0,0 @@
1
- "use client";
2
- import { jsx as s, jsxs as A, Fragment as ye } from "react/jsx-runtime";
3
- import ke, { forwardRef as u, useState as k, useCallback as D, useMemo as W, createContext as E, useContext as R, useRef as O, useEffect as Ne } from "react";
4
- import { CaretRightIcon as F, MagnifyingGlassIcon as Ce, SidebarSimpleIcon as Me } from "@phosphor-icons/react";
5
- import { c as r } from "./cn-ct4n7r74mh8y0f48.js";
6
- import { u as X } from "./link-provider-mn2voeohon7cj9o4.js";
7
- import { a as Ie, T as Re } from "./tooltip-o6xfw9jjclv9pxaj.js";
8
- import { aP as U, aR as V, aq as Te, aw as ze, ax as _e, ay as Be, aQ as De } from "./vendor-base-ui-mzjqwv5teijixz8h.js";
9
- const $e = {
10
- variant: {
11
- sidebar: {
12
- classes: "",
13
- description: "Standard sidebar with border separator"
14
- },
15
- floating: {
16
- classes: "",
17
- description: "Floating sidebar with shadow and rounded corners"
18
- },
19
- inset: {
20
- classes: "",
21
- description: "Inset sidebar within the content area"
22
- }
23
- },
24
- collapsible: {
25
- icon: {
26
- classes: "",
27
- description: "Collapses to show icons only"
28
- },
29
- offcanvas: {
30
- classes: "",
31
- description: "Slides off screen when collapsed"
32
- },
33
- none: {
34
- classes: "",
35
- description: "Cannot be collapsed"
36
- }
37
- },
38
- side: {
39
- left: {
40
- classes: "",
41
- description: "Left-aligned sidebar"
42
- },
43
- right: {
44
- classes: "",
45
- description: "Right-aligned sidebar"
46
- }
47
- }
48
- }, G = {
49
- variant: "sidebar",
50
- collapsible: "icon",
51
- side: "left"
52
- }, Qe = {
53
- width: {
54
- expanded: "16rem",
55
- icon: "3rem"
56
- },
57
- mobile: {
58
- breakpoint: 768
59
- }
60
- }, j = "16rem", Pe = "3rem", Ae = 768;
61
- function Ee() {
62
- const [t, a] = k(!1);
63
- return Ne(() => {
64
- const e = window.matchMedia(`(max-width: ${Ae - 1}px)`), i = () => a(e.matches);
65
- return e.addEventListener("change", i), a(e.matches), () => e.removeEventListener("change", i);
66
- }, []), t;
67
- }
68
- const K = E(null);
69
- function T() {
70
- const t = R(K);
71
- if (!t)
72
- throw new Error("useSidebar must be used within a Sidebar.Provider");
73
- return t;
74
- }
75
- const Le = 256, Oe = 200, Ge = 480;
76
- function q({
77
- defaultOpen: t = !0,
78
- open: a,
79
- onOpenChange: e,
80
- variant: i = G.variant,
81
- side: n = G.side,
82
- collapsible: o = G.collapsible,
83
- resizable: b = !1,
84
- defaultWidth: m = Le,
85
- minWidth: d = Oe,
86
- maxWidth: l = Ge,
87
- onWidthChange: c,
88
- children: x,
89
- className: g,
90
- style: h
91
- }) {
92
- const p = Ee(), [f, S] = k(!1), [N, z] = k(m), [w, C] = k(!1), _ = D(
93
- (v) => {
94
- const I = Math.min(l, Math.max(d, v));
95
- z(I), c?.(I);
96
- },
97
- [d, l, c]
98
- ), [y, ve] = k(t), M = a ?? y, B = D(
99
- (v) => {
100
- const I = typeof v == "function" ? v(M) : v;
101
- e?.(I), ve(I);
102
- },
103
- [e, M]
104
- ), H = D(() => {
105
- p ? S((v) => !v) : B((v) => !v);
106
- }, [p, B]), L = M ? "expanded" : "collapsed", Se = b ? `${N}px` : j, we = W(
107
- () => ({
108
- state: L,
109
- open: M,
110
- setOpen: B,
111
- openMobile: f,
112
- setOpenMobile: S,
113
- isMobile: p,
114
- toggleSidebar: H,
115
- variant: i,
116
- side: n,
117
- collapsible: o,
118
- width: N,
119
- resizable: b,
120
- minWidth: d,
121
- maxWidth: l,
122
- isResizing: w,
123
- setIsResizing: C,
124
- setWidth: _
125
- }),
126
- [
127
- L,
128
- M,
129
- B,
130
- f,
131
- S,
132
- p,
133
- H,
134
- i,
135
- n,
136
- o,
137
- N,
138
- b,
139
- d,
140
- l,
141
- w,
142
- C,
143
- _
144
- ]
145
- );
146
- return /* @__PURE__ */ s(K.Provider, { value: we, children: /* @__PURE__ */ s(
147
- "div",
148
- {
149
- "data-sidebar-wrapper": "",
150
- "data-state": L,
151
- "data-side": n,
152
- style: {
153
- "--sidebar-width": Se,
154
- "--sidebar-width-icon": Pe,
155
- ...h
156
- },
157
- className: r(
158
- "group/sidebar-wrapper flex min-h-svh w-full",
159
- "has-data-[variant=inset]:bg-kumo-recessed",
160
- w && "select-none",
161
- g
162
- ),
163
- children: x
164
- }
165
- ) });
166
- }
167
- q.displayName = "Sidebar.Provider";
168
- const $ = u(
169
- ({ className: t, children: a, ...e }, i) => {
170
- const {
171
- state: n,
172
- isMobile: o,
173
- openMobile: b,
174
- setOpenMobile: m,
175
- side: d,
176
- variant: l,
177
- collapsible: c,
178
- isResizing: x,
179
- resizable: g,
180
- width: h
181
- } = T();
182
- if (c === "none")
183
- return /* @__PURE__ */ s(
184
- "aside",
185
- {
186
- ref: i,
187
- "data-state": "expanded",
188
- "data-side": d,
189
- "data-variant": l,
190
- "data-sidebar": "sidebar",
191
- style: {
192
- width: "var(--sidebar-width)",
193
- minWidth: "var(--sidebar-width)",
194
- maxWidth: "var(--sidebar-width)"
195
- },
196
- className: r(
197
- "relative flex h-full shrink-0 grow-0 flex-col overflow-hidden bg-kumo-base text-kumo-default",
198
- l === "sidebar" && (d === "left" ? "border-r border-kumo-hairline" : "border-l border-kumo-hairline"),
199
- l === "floating" && "m-2 rounded-lg border border-kumo-hairline shadow-lg",
200
- t
201
- ),
202
- ...e,
203
- children: a
204
- }
205
- );
206
- if (o)
207
- return /* @__PURE__ */ s(Te, { open: b, onOpenChange: m, children: /* @__PURE__ */ A(ze, { children: [
208
- /* @__PURE__ */ s(_e, { "data-sidebar-backdrop": "", className: "fixed inset-0 bg-black/50 transition-opacity duration-200 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0" }),
209
- /* @__PURE__ */ s(
210
- Be,
211
- {
212
- "data-sidebar-popup": "",
213
- className: r(
214
- "fixed inset-y-0 flex w-[--sidebar-width] flex-col bg-kumo-base p-0",
215
- "duration-200 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0",
216
- d === "left" && "left-0 data-[ending-style]:-translate-x-full data-[starting-style]:-translate-x-full",
217
- d === "right" && "right-0 data-[ending-style]:translate-x-full data-[starting-style]:translate-x-full"
218
- ),
219
- style: {
220
- "--sidebar-width": j,
221
- transitionProperty: "transform, opacity",
222
- transitionTimingFunction: "var(--default-transition-timing-function)"
223
- },
224
- children: /* @__PURE__ */ s(
225
- "div",
226
- {
227
- "data-sidebar": "sidebar",
228
- "data-mobile": "true",
229
- className: r(
230
- "flex h-full w-full flex-col bg-kumo-base text-kumo-default",
231
- t
232
- ),
233
- children: a
234
- }
235
- )
236
- }
237
- )
238
- ] }) });
239
- const p = c === "icon" ? "var(--sidebar-width-icon)" : "0px", f = g ? `${h}px` : "var(--sidebar-width)";
240
- return /* @__PURE__ */ s(
241
- "aside",
242
- {
243
- ref: i,
244
- "data-state": n,
245
- "data-side": d,
246
- "data-variant": l,
247
- "data-collapsible": c,
248
- "data-sidebar": "sidebar",
249
- style: { width: n === "expanded" ? f : p },
250
- className: r(
251
- "group/sidebar relative flex h-full shrink-0 grow-0 flex-col",
252
- // overflow-hidden makes flex min-width resolve to 0 (per spec),
253
- // preventing children from pushing the sidebar wider than its width
254
- "min-w-0 overflow-hidden whitespace-nowrap",
255
- "bg-kumo-base text-kumo-default",
256
- // Transition width — matches production SidebarNav curve exactly
257
- "transition-[width] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)] will-change-[width]",
258
- "motion-reduce:transition-none",
259
- // Disable transition during resize drag
260
- x && "transition-none!",
261
- l === "sidebar" && (d === "left" ? "border-r border-kumo-hairline" : "border-l border-kumo-hairline"),
262
- l === "floating" && "m-2 rounded-lg border border-kumo-hairline shadow-lg",
263
- t
264
- ),
265
- ...e,
266
- children: /* @__PURE__ */ s(Ie, { children: a })
267
- }
268
- );
269
- }
270
- );
271
- $.displayName = "Sidebar";
272
- const Q = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
273
- "div",
274
- {
275
- ref: e,
276
- "data-sidebar": "header",
277
- className: r(
278
- "flex items-center gap-2 border-b border-kumo-hairline px-2 py-3",
279
- "overflow-hidden",
280
- // Collapsed: just remove border, keep same height
281
- "group-data-[state=collapsed]/sidebar:border-b-0",
282
- t
283
- ),
284
- ...a
285
- }
286
- ));
287
- Q.displayName = "Sidebar.Header";
288
- const Y = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
289
- "div",
290
- {
291
- ref: e,
292
- "data-sidebar": "content",
293
- className: r(
294
- "flex min-w-0 flex-1 flex-col gap-2 overflow-y-auto overflow-x-hidden px-2 py-2",
295
- // Collapsed: flatten spacing so icons are evenly spaced
296
- "group-data-[state=collapsed]/sidebar:gap-0 group-data-[state=collapsed]/sidebar:py-0",
297
- "group-data-[state=collapsed]/sidebar:overflow-x-hidden",
298
- t
299
- ),
300
- ...a
301
- }
302
- ));
303
- Y.displayName = "Sidebar.Content";
304
- const J = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
305
- "div",
306
- {
307
- ref: e,
308
- "data-sidebar": "footer",
309
- className: r(
310
- "flex min-w-0 flex-col gap-2 border-t border-kumo-hairline px-2 py-2",
311
- // Collapsed: remove border, tighten padding
312
- "group-data-[state=collapsed]/sidebar:border-t-0 group-data-[state=collapsed]/sidebar:py-1",
313
- t
314
- ),
315
- ...a
316
- }
317
- ));
318
- J.displayName = "Sidebar.Footer";
319
- const P = E({
320
- isCollapsible: !1,
321
- isOpen: !0
322
- }), Z = u(
323
- ({
324
- className: t,
325
- collapsible: a = !1,
326
- defaultOpen: e = !0,
327
- open: i,
328
- onOpenChange: n,
329
- children: o,
330
- ...b
331
- }, m) => {
332
- const [d, l] = k(e), c = i ?? d, x = D(
333
- (p) => {
334
- l(p), n?.(p);
335
- },
336
- [n]
337
- ), g = W(
338
- () => ({ isCollapsible: a, isOpen: c }),
339
- [a, c]
340
- ), h = /* @__PURE__ */ s(
341
- "div",
342
- {
343
- ref: m,
344
- "data-sidebar": "group",
345
- className: r(
346
- "flex min-w-0 flex-col gap-0.5",
347
- // Collapsed: remove internal gap so icons stack uniformly
348
- "group-data-[state=collapsed]/sidebar:gap-0",
349
- t
350
- ),
351
- ...b,
352
- children: o
353
- }
354
- );
355
- return a ? /* @__PURE__ */ s(P.Provider, { value: g, children: /* @__PURE__ */ s(
356
- U,
357
- {
358
- defaultOpen: e,
359
- open: i,
360
- onOpenChange: x,
361
- className: "min-w-0",
362
- children: h
363
- }
364
- ) }) : /* @__PURE__ */ s(P.Provider, { value: g, children: h });
365
- }
366
- );
367
- Z.displayName = "Sidebar.Group";
368
- const ee = u(({ className: t, children: a, ...e }, i) => {
369
- const { isCollapsible: n } = R(P);
370
- return n ? /* @__PURE__ */ A(
371
- V,
372
- {
373
- ref: i,
374
- "data-sidebar": "group-label",
375
- className: r(
376
- "group/group-label flex w-full cursor-pointer items-center px-3 py-1 text-xs font-medium text-kumo-subtle",
377
- "group-data-[state=collapsed]/sidebar:hidden",
378
- t
379
- ),
380
- ...e,
381
- children: [
382
- /* @__PURE__ */ s("span", { className: "flex-1 truncate text-left", children: a }),
383
- /* @__PURE__ */ s(
384
- F,
385
- {
386
- className: r(
387
- "ml-auto size-3 shrink-0 text-kumo-subtle transition-transform duration-200",
388
- "group-data-[panel-open]/group-label:rotate-90"
389
- )
390
- }
391
- )
392
- ]
393
- }
394
- ) : /* @__PURE__ */ s(
395
- "div",
396
- {
397
- ref: i,
398
- "data-sidebar": "group-label",
399
- className: r(
400
- "truncate px-3 py-1 text-xs font-medium text-kumo-subtle",
401
- "group-data-[state=collapsed]/sidebar:hidden",
402
- t
403
- ),
404
- ...e,
405
- children: a
406
- }
407
- );
408
- });
409
- ee.displayName = "Sidebar.GroupLabel";
410
- const ae = u(({ className: t, children: a, ...e }, i) => {
411
- const { isCollapsible: n, isOpen: o } = R(P);
412
- return n ? /* @__PURE__ */ s(
413
- "div",
414
- {
415
- ref: i,
416
- "data-sidebar": "group-content",
417
- className: r(
418
- "grid",
419
- // Animate height via grid-rows — matches production NavGroup pattern
420
- "transition-[grid-template-rows] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]",
421
- "motion-reduce:transition-none",
422
- // Default: collapsed
423
- "grid-rows-[0fr]",
424
- // When sidebar is expanded, respect group open/close state
425
- o ? "group-data-[state=expanded]/sidebar:grid-rows-[1fr]" : "group-data-[state=expanded]/sidebar:grid-rows-[0fr]",
426
- t
427
- ),
428
- ...e,
429
- children: /* @__PURE__ */ s("div", { className: "overflow-hidden", children: a })
430
- }
431
- ) : /* @__PURE__ */ s(
432
- "div",
433
- {
434
- ref: i,
435
- "data-sidebar": "group-content",
436
- className: r("flex flex-col", t),
437
- ...e,
438
- children: a
439
- }
440
- );
441
- });
442
- ae.displayName = "Sidebar.GroupContent";
443
- const te = E(!1), se = E(!1), ie = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
444
- "ul",
445
- {
446
- ref: e,
447
- "data-sidebar": "menu",
448
- className: r(
449
- "m-0 flex min-w-0 list-none flex-col gap-0.5 p-0",
450
- "group-data-[state=collapsed]/sidebar:gap-0",
451
- t
452
- ),
453
- ...a
454
- }
455
- ));
456
- ie.displayName = "Sidebar.Menu";
457
- const re = u(({ className: t, children: a, ...e }, i) => /* @__PURE__ */ s(te.Provider, { value: !0, children: /* @__PURE__ */ s(
458
- "li",
459
- {
460
- ref: i,
461
- "data-sidebar": "menu-item",
462
- className: r("relative", t),
463
- ...e,
464
- children: a
465
- }
466
- ) }));
467
- re.displayName = "Sidebar.MenuItem";
468
- const ne = u(
469
- ({
470
- className: t,
471
- icon: a,
472
- active: e = !1,
473
- size: i = "base",
474
- href: n,
475
- tooltip: o,
476
- children: b,
477
- ...m
478
- }, d) => {
479
- const { state: l } = T(), c = X(), x = R(te), g = a ? ke.isValidElement(a) ? a : /* @__PURE__ */ s(
480
- a,
481
- {
482
- className: r("shrink-0", i === "base" ? "size-4" : "size-3.5")
483
- }
484
- ) : null, h = /* @__PURE__ */ A(ye, { children: [
485
- g,
486
- /* @__PURE__ */ s(
487
- "span",
488
- {
489
- className: r(
490
- "flex flex-1 items-center min-w-0 text-left overflow-hidden",
491
- "group-data-[state=collapsed]/sidebar:hidden"
492
- ),
493
- children: b
494
- }
495
- )
496
- ] }), p = r(
497
- // Layout
498
- "group/menu-button flex w-full min-w-0 items-center gap-2 rounded-lg cursor-pointer",
499
- // Sizing
500
- i === "base" && "min-h-[34px] px-3 py-1.5 text-sm font-medium",
501
- i === "sm" && "min-h-[28px] px-2 py-1 text-sm",
502
- // Default state — transition includes padding so collapsed centering animates smoothly
503
- "text-kumo-default",
504
- "transition-[color,background-color,padding] duration-0 ease-[cubic-bezier(0.77,0,0.175,1)]",
505
- // Icon color
506
- "[&>svg]:text-kumo-subtle",
507
- !e && "hover:bg-kumo-tint",
508
- // Active state
509
- e && "bg-kumo-tint",
510
- // When a child sub-button is active, don't show active styling on the parent trigger
511
- "has-[[data-active]]:bg-transparent has-[[data-active]]:hover:bg-kumo-tint",
512
- // Focus
513
- "focus-visible:ring-2 focus-visible:ring-kumo-brand",
514
- // Collapsed: px-2 centers the icon (48px sidebar − 16px content padding = 32px;
515
- // 32px − 2×8px padding = 16px = icon size). Padding transition keeps it smooth.
516
- "group-data-[state=collapsed]/sidebar:px-2",
517
- t
518
- );
519
- let f;
520
- return n ? f = /* @__PURE__ */ s(
521
- c,
522
- {
523
- ref: d,
524
- className: r(p, "no-underline!"),
525
- href: n,
526
- to: n,
527
- "data-active": e || void 0,
528
- "data-sidebar": "menu-button",
529
- "data-size": i,
530
- onClick: m.onClick,
531
- children: h
532
- }
533
- ) : f = /* @__PURE__ */ s(
534
- "button",
535
- {
536
- ref: d,
537
- type: "button",
538
- className: p,
539
- "data-active": e || void 0,
540
- "data-sidebar": "menu-button",
541
- "data-size": i,
542
- ...m,
543
- children: h
544
- }
545
- ), l === "collapsed" && o && (f = /* @__PURE__ */ s(Re, { content: o, side: "right", render: f })), x ? f : /* @__PURE__ */ s("li", { "data-sidebar": "menu-item", className: "relative", children: f });
546
- }
547
- );
548
- ne.displayName = "Sidebar.MenuButton";
549
- const oe = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
550
- "button",
551
- {
552
- ref: e,
553
- type: "button",
554
- "data-sidebar": "menu-action",
555
- className: r(
556
- "absolute right-1.5 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md p-1",
557
- "text-kumo-subtle hover:bg-kumo-overlay",
558
- "focus-visible:ring-2 focus-visible:ring-kumo-brand",
559
- "transition-colors duration-150",
560
- "group-data-[state=collapsed]/sidebar:hidden",
561
- t
562
- ),
563
- ...a
564
- }
565
- ));
566
- oe.displayName = "Sidebar.MenuAction";
567
- const de = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
568
- "span",
569
- {
570
- ref: e,
571
- "data-sidebar": "menu-badge",
572
- className: r(
573
- "inline-flex shrink-0 items-center rounded-full border border-dashed border-kumo-hairline",
574
- "select-none px-1.5 py-0.5 text-[11px]/none font-medium text-kumo-subtle",
575
- // Hidden when collapsed
576
- "group-data-[state=collapsed]/sidebar:hidden",
577
- t
578
- ),
579
- ...a
580
- }
581
- ));
582
- de.displayName = "Sidebar.MenuBadge";
583
- const le = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
584
- "ul",
585
- {
586
- ref: e,
587
- "data-sidebar": "menu-sub",
588
- className: r(
589
- "m-0 ml-3.5 flex min-w-0 list-none flex-col gap-0.5 border-l border-kumo-hairline p-0 pl-2.5",
590
- // Hidden when collapsed
591
- "group-data-[state=collapsed]/sidebar:hidden",
592
- t
593
- ),
594
- ...a
595
- }
596
- ));
597
- le.displayName = "Sidebar.MenuSub";
598
- const ue = u(({ className: t, children: a, ...e }, i) => /* @__PURE__ */ s(se.Provider, { value: !0, children: /* @__PURE__ */ s(
599
- "li",
600
- {
601
- ref: i,
602
- "data-sidebar": "menu-sub-item",
603
- className: r("relative", t),
604
- ...e,
605
- children: a
606
- }
607
- ) }));
608
- ue.displayName = "Sidebar.MenuSubItem";
609
- const ce = u(({ className: t, active: a = !1, href: e, children: i, ...n }, o) => {
610
- const b = X(), m = R(se), d = r(
611
- "flex w-full min-w-0 items-center gap-2 rounded-lg min-h-[34px] px-3 py-1 text-sm font-medium",
612
- "text-kumo-default transition-colors duration-150",
613
- !a && "hover:bg-kumo-tint",
614
- a && "bg-kumo-tint",
615
- "focus-visible:ring-2 focus-visible:ring-kumo-brand",
616
- t
617
- ), l = /* @__PURE__ */ s("span", { className: "flex-1 truncate text-left", children: i });
618
- let c;
619
- return e ? c = /* @__PURE__ */ s(
620
- b,
621
- {
622
- ref: o,
623
- className: r(d, "no-underline!"),
624
- href: e,
625
- to: e,
626
- "data-active": a || void 0,
627
- "data-sidebar": "menu-sub-button",
628
- onClick: n.onClick,
629
- children: l
630
- }
631
- ) : c = /* @__PURE__ */ s(
632
- "button",
633
- {
634
- ref: o,
635
- type: "button",
636
- className: d,
637
- "data-active": a || void 0,
638
- "data-sidebar": "menu-sub-button",
639
- ...n,
640
- children: l
641
- }
642
- ), m ? c : /* @__PURE__ */ s("li", { "data-sidebar": "menu-sub-item", className: "relative", children: c });
643
- });
644
- ce.displayName = "Sidebar.MenuSubButton";
645
- const be = u(({ className: t, ...a }, e) => /* @__PURE__ */ s(
646
- "hr",
647
- {
648
- ref: e,
649
- "data-sidebar": "separator",
650
- className: r("mx-2 min-h-px h-px border-0 bg-kumo-hairline", t),
651
- ...a
652
- }
653
- ));
654
- be.displayName = "Sidebar.Separator";
655
- const pe = u(
656
- ({ className: t, placeholder: a = "Search...", shortcut: e, children: i, ...n }, o) => /* @__PURE__ */ A(
657
- "button",
658
- {
659
- ref: o,
660
- type: "button",
661
- "data-sidebar": "input",
662
- className: r(
663
- "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm",
664
- "bg-kumo-base text-kumo-subtle ring ring-kumo-hairline",
665
- "transition-[color,background-color,padding,box-shadow] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]",
666
- "hover:bg-kumo-overlay",
667
- "focus-visible:ring-2 focus-visible:ring-kumo-brand",
668
- // Collapsed: icon-only, padding centers icon, ring fades via box-shadow transition
669
- "group-data-[state=collapsed]/sidebar:px-2 group-data-[state=collapsed]/sidebar:ring-0",
670
- t
671
- ),
672
- ...n,
673
- children: [
674
- /* @__PURE__ */ s(Ce, { className: "size-4 shrink-0 text-kumo-subtle" }),
675
- /* @__PURE__ */ s("span", { className: "flex-1 truncate text-left group-data-[state=collapsed]/sidebar:hidden", children: i ?? a }),
676
- e && /* @__PURE__ */ s("kbd", { className: "ml-auto font-sans text-xs text-kumo-subtle group-data-[state=collapsed]/sidebar:hidden", children: e })
677
- ]
678
- }
679
- )
680
- );
681
- pe.displayName = "Sidebar.Input";
682
- const me = u(({ className: t, children: a, onClick: e, ...i }, n) => {
683
- const { toggleSidebar: o } = T();
684
- return /* @__PURE__ */ s(
685
- "button",
686
- {
687
- ref: n,
688
- type: "button",
689
- "data-sidebar": "trigger",
690
- "aria-label": "Toggle sidebar",
691
- className: r(
692
- "flex items-center rounded-md p-1.5",
693
- "text-kumo-subtle hover:text-kumo-default hover:bg-kumo-overlay",
694
- "focus-visible:ring-2 focus-visible:ring-kumo-brand",
695
- "transition-colors duration-150",
696
- t
697
- ),
698
- onClick: (b) => {
699
- e?.(b), o();
700
- },
701
- ...i,
702
- children: a ?? /* @__PURE__ */ s(Me, { className: "size-5" })
703
- }
704
- );
705
- });
706
- me.displayName = "Sidebar.Trigger";
707
- const ge = u(({ className: t, ...a }, e) => {
708
- const { toggleSidebar: i } = T();
709
- return /* @__PURE__ */ s(
710
- "button",
711
- {
712
- ref: e,
713
- type: "button",
714
- "data-sidebar": "rail",
715
- "aria-label": "Toggle sidebar",
716
- tabIndex: -1,
717
- className: r(
718
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-pointer transition-all",
719
- "after:absolute after:inset-y-0 after:left-1/2 after:w-0.5",
720
- "hover:after:bg-kumo-brand/20",
721
- "group-data-[side=left]/sidebar-wrapper:right-0",
722
- "group-data-[side=right]/sidebar-wrapper:left-0",
723
- "sm:flex",
724
- t
725
- ),
726
- onClick: i,
727
- ...a
728
- }
729
- );
730
- });
731
- ge.displayName = "Sidebar.Rail";
732
- const fe = u(({ className: t, ...a }, e) => {
733
- const { side: i, resizable: n, setIsResizing: o, setWidth: b, setOpen: m, open: d, minWidth: l } = T(), c = O(0), x = O(0), g = O(!1);
734
- if (!n) return null;
735
- const h = (p) => {
736
- p.preventDefault(), o(!0), c.current = p.clientX, g.current = !d;
737
- const S = p.currentTarget.closest(
738
- "[data-sidebar-wrapper]"
739
- )?.querySelector("[data-sidebar='sidebar']");
740
- x.current = S?.getBoundingClientRect().width ?? 0;
741
- const N = () => {
742
- o(!1), document.removeEventListener("pointermove", z), document.removeEventListener("pointerup", w);
743
- }, z = (C) => {
744
- const _ = i === "left" ? C.clientX - c.current : c.current - C.clientX, y = x.current + _;
745
- if (g.current) {
746
- y >= l && (g.current = !1, m(!0), b(y));
747
- return;
748
- }
749
- if (y < l) {
750
- m(!1), g.current = !0;
751
- return;
752
- }
753
- b(y);
754
- }, w = () => {
755
- N();
756
- };
757
- document.addEventListener("pointermove", z), document.addEventListener("pointerup", w);
758
- };
759
- return /* @__PURE__ */ s(
760
- "div",
761
- {
762
- ref: e,
763
- "data-sidebar": "resize-handle",
764
- className: r(
765
- "absolute inset-y-0 z-20 hidden w-1 cursor-col-resize transition-colors sm:block",
766
- "hover:bg-kumo-brand/30 active:bg-kumo-brand/50",
767
- i === "left" && "right-0",
768
- i === "right" && "left-0",
769
- t
770
- ),
771
- onPointerDown: h,
772
- ...a
773
- }
774
- );
775
- });
776
- fe.displayName = "Sidebar.ResizeHandle";
777
- function he({ className: t }) {
778
- return /* @__PURE__ */ s(
779
- F,
780
- {
781
- className: r(
782
- "ml-auto size-4 shrink-0 text-kumo-subtle transition-transform duration-200",
783
- // Auto-rotate when inside an open Collapsible trigger
784
- "group-data-[panel-open]/menu-button:rotate-90",
785
- // Hidden when collapsed
786
- "group-data-[state=collapsed]/sidebar:hidden",
787
- t
788
- )
789
- }
790
- );
791
- }
792
- he.displayName = "Sidebar.MenuChevron";
793
- const He = U, We = V, xe = u(({ className: t, keepMounted: a = !0, ...e }, i) => /* @__PURE__ */ s(
794
- De,
795
- {
796
- ref: i,
797
- keepMounted: a,
798
- className: r(
799
- "overflow-hidden",
800
- // Default: keep the measured height that Base UI writes to --collapsible-panel-height.
801
- // This must also remain true during the initial close frame so the exit transition has
802
- // a real starting height before data-ending-style flips it to 0.
803
- "h-[var(--collapsible-panel-height)]",
804
- // Transition height — matches production NavGroup easing
805
- "transition-[height] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]",
806
- "motion-reduce:transition-none",
807
- // Only force height 0 during the active enter/exit transition phases.
808
- // Applying h-0 for data-closed snaps the panel shut before Base UI adds
809
- // data-ending-style, skipping the collapse animation.
810
- "data-[starting-style]:h-0 data-[ending-style]:h-0",
811
- t
812
- ),
813
- ...e
814
- }
815
- ));
816
- xe.displayName = "Sidebar.CollapsibleContent";
817
- const Ye = Object.assign($, {
818
- Provider: q,
819
- Header: Q,
820
- Content: Y,
821
- Footer: J,
822
- Group: Z,
823
- GroupLabel: ee,
824
- GroupContent: ae,
825
- Menu: ie,
826
- MenuItem: re,
827
- MenuButton: ne,
828
- MenuAction: oe,
829
- MenuBadge: de,
830
- MenuSub: le,
831
- MenuSubItem: ue,
832
- MenuSubButton: ce,
833
- Separator: be,
834
- Input: pe,
835
- Trigger: me,
836
- Rail: ge,
837
- ResizeHandle: fe,
838
- MenuChevron: he,
839
- Collapsible: He,
840
- CollapsibleTrigger: We,
841
- CollapsibleContent: xe
842
- });
843
- export {
844
- G as A,
845
- Qe as B,
846
- $e as K,
847
- Ye as S,
848
- q as a,
849
- $ as b,
850
- Q as c,
851
- Y as d,
852
- J as e,
853
- Z as f,
854
- ee as g,
855
- ae as h,
856
- ie as i,
857
- re as j,
858
- ne as k,
859
- oe as l,
860
- de as m,
861
- le as n,
862
- ue as o,
863
- ce as p,
864
- be as q,
865
- pe as r,
866
- me as s,
867
- ge as t,
868
- fe as u,
869
- he as v,
870
- He as w,
871
- We as x,
872
- xe as y,
873
- T as z
874
- };
875
- //# sourceMappingURL=sidebar-izcfqkrzt4vqn8ez.js.map