@ecopages/radiant-ui 0.1.0-beta.7 → 0.1.0-beta.8

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 (264) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ui/alert/alert.css +88 -50
  3. package/dist/components/ui/alert/alert.d.ts +43 -5
  4. package/dist/components/ui/alert/alert.script.d.ts +51 -4
  5. package/dist/components/ui/alert/index.d.ts +2 -2
  6. package/dist/components/ui/alert/index.js +1 -1
  7. package/dist/components/ui/alert/index.js.map +4 -4
  8. package/dist/components/ui/autocomplete/autocomplete.css +4 -4
  9. package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
  10. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
  11. package/dist/components/ui/autocomplete/index.js +1 -1
  12. package/dist/components/ui/autocomplete/index.js.map +4 -4
  13. package/dist/components/ui/avatar/avatar.d.ts +15 -1
  14. package/dist/components/ui/avatar/index.js +1 -1
  15. package/dist/components/ui/avatar/index.js.map +4 -4
  16. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
  17. package/dist/components/ui/breadcrumb/index.js +1 -1
  18. package/dist/components/ui/breadcrumb/index.js.map +4 -4
  19. package/dist/{styles/components → components/ui/button}/button.css +45 -31
  20. package/dist/components/ui/button/button.d.ts +21 -4
  21. package/dist/components/ui/button-group/button-group.d.ts +7 -1
  22. package/dist/components/ui/button-group/index.js +1 -1
  23. package/dist/components/ui/button-group/index.js.map +4 -4
  24. package/dist/components/ui/calendar/calendar.css +7 -7
  25. package/dist/components/ui/calendar/calendar.d.ts +3 -2
  26. package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
  27. package/dist/components/ui/calendar/index.js +1 -1
  28. package/dist/components/ui/calendar/index.js.map +4 -4
  29. package/dist/components/ui/carousel/carousel.d.ts +32 -6
  30. package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
  31. package/dist/components/ui/carousel/index.js +1 -1
  32. package/dist/components/ui/carousel/index.js.map +4 -4
  33. package/dist/components/ui/checkbox/checkbox.css +1 -1
  34. package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
  35. package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
  36. package/dist/components/ui/checkbox/index.js +1 -1
  37. package/dist/components/ui/checkbox/index.js.map +4 -4
  38. package/dist/components/ui/chip/chip.d.ts +8 -0
  39. package/dist/components/ui/chip/index.js +1 -1
  40. package/dist/components/ui/chip/index.js.map +4 -4
  41. package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
  42. package/dist/components/ui/chip-list/index.js +1 -1
  43. package/dist/components/ui/chip-list/index.js.map +4 -4
  44. package/dist/components/ui/combobox/combobox.css +39 -1
  45. package/dist/components/ui/combobox/combobox.d.ts +15 -5
  46. package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
  47. package/dist/components/ui/combobox/index.js +1 -1
  48. package/dist/components/ui/combobox/index.js.map +4 -4
  49. package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
  50. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
  51. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
  52. package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
  53. package/dist/components/ui/cycle-toggle/index.js +2 -0
  54. package/dist/components/ui/cycle-toggle/index.js.map +7 -0
  55. package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
  56. package/dist/components/ui/date-field/date-field.css +37 -0
  57. package/dist/components/ui/date-field/date-field.d.ts +22 -3
  58. package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
  59. package/dist/components/ui/date-field/index.d.ts +1 -1
  60. package/dist/components/ui/date-field/index.js +1 -1
  61. package/dist/components/ui/date-field/index.js.map +4 -4
  62. package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
  63. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
  64. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
  65. package/dist/components/ui/date-range-picker/index.d.ts +1 -1
  66. package/dist/components/ui/date-range-picker/index.js +1 -1
  67. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  68. package/dist/components/ui/dialog/dialog.css +1 -1
  69. package/dist/components/ui/dialog/dialog.d.ts +30 -5
  70. package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
  71. package/dist/components/ui/dialog/index.js +1 -1
  72. package/dist/components/ui/dialog/index.js.map +4 -4
  73. package/dist/components/ui/disclosure/disclosure-group.css +1 -1
  74. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
  75. package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
  76. package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
  77. package/dist/components/ui/disclosure/index.js +1 -1
  78. package/dist/components/ui/disclosure/index.js.map +4 -4
  79. package/dist/components/ui/feed/feed.d.ts +37 -7
  80. package/dist/components/ui/feed/index.js +1 -1
  81. package/dist/components/ui/feed/index.js.map +4 -4
  82. package/dist/components/ui/field/field-description.d.ts +5 -1
  83. package/dist/components/ui/field/field-error.d.ts +5 -0
  84. package/dist/components/ui/field/field.d.ts +8 -1
  85. package/dist/components/ui/field/field.script.d.ts +35 -0
  86. package/dist/components/ui/field/index.js +1 -1
  87. package/dist/components/ui/field/index.js.map +4 -4
  88. package/dist/components/ui/form/control-protocol.d.ts +6 -0
  89. package/dist/components/ui/form/form.d.ts +2 -1
  90. package/dist/components/ui/form/form.script.d.ts +16 -1
  91. package/dist/components/ui/form/index.d.ts +1 -1
  92. package/dist/components/ui/form/index.js +1 -1
  93. package/dist/components/ui/form/index.js.map +4 -4
  94. package/dist/components/ui/grid/grid.d.ts +12 -2
  95. package/dist/components/ui/grid/grid.script.d.ts +14 -0
  96. package/dist/components/ui/grid/index.js +1 -1
  97. package/dist/components/ui/grid/index.js.map +4 -4
  98. package/dist/components/ui/heading/heading.d.ts +26 -4
  99. package/dist/components/ui/heading/index.js +1 -1
  100. package/dist/components/ui/heading/index.js.map +4 -4
  101. package/dist/components/ui/headline/headline.d.ts +9 -1
  102. package/dist/components/ui/headline/index.js +1 -1
  103. package/dist/components/ui/headline/index.js.map +4 -4
  104. package/dist/components/ui/input/index.d.ts +1 -1
  105. package/dist/components/ui/input/index.js +1 -1
  106. package/dist/components/ui/input/index.js.map +4 -4
  107. package/dist/components/ui/input/input.css +2 -7
  108. package/dist/components/ui/input/input.d.ts +7 -2
  109. package/dist/components/ui/label/index.js +1 -1
  110. package/dist/components/ui/label/index.js.map +4 -4
  111. package/dist/components/ui/label/label.d.ts +8 -1
  112. package/dist/components/ui/listbox/index.js +1 -1
  113. package/dist/components/ui/listbox/index.js.map +4 -4
  114. package/dist/components/ui/listbox/listbox.css +2 -5
  115. package/dist/components/ui/listbox/listbox.d.ts +7 -3
  116. package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
  117. package/dist/components/ui/menu-button/index.d.ts +1 -1
  118. package/dist/components/ui/menu-button/index.js +1 -1
  119. package/dist/components/ui/menu-button/index.js.map +4 -4
  120. package/dist/components/ui/menu-button/menu-button.css +2 -2
  121. package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
  122. package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
  123. package/dist/components/ui/menubar/index.js +1 -1
  124. package/dist/components/ui/menubar/index.js.map +4 -4
  125. package/dist/components/ui/menubar/menubar.css +4 -4
  126. package/dist/components/ui/menubar/menubar.d.ts +14 -2
  127. package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
  128. package/dist/components/ui/meter/index.js +1 -1
  129. package/dist/components/ui/meter/index.js.map +4 -4
  130. package/dist/components/ui/meter/meter.css +1 -1
  131. package/dist/components/ui/meter/meter.d.ts +7 -2
  132. package/dist/components/ui/meter/meter.script.d.ts +21 -0
  133. package/dist/components/ui/navigation-menu/index.js +1 -1
  134. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  135. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
  136. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
  137. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
  138. package/dist/components/ui/number-field/index.d.ts +1 -1
  139. package/dist/components/ui/number-field/index.js +1 -1
  140. package/dist/components/ui/number-field/index.js.map +4 -4
  141. package/dist/components/ui/number-field/number-field.css +18 -3
  142. package/dist/components/ui/number-field/number-field.d.ts +36 -8
  143. package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
  144. package/dist/components/ui/popover/index.js +1 -1
  145. package/dist/components/ui/popover/index.js.map +4 -4
  146. package/dist/components/ui/popover/popover.d.ts +5 -4
  147. package/dist/components/ui/popover/popover.script.d.ts +4 -0
  148. package/dist/components/ui/radio-group/index.d.ts +1 -1
  149. package/dist/components/ui/radio-group/index.js +1 -1
  150. package/dist/components/ui/radio-group/index.js.map +4 -4
  151. package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
  152. package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
  153. package/dist/components/ui/select/index.js +1 -1
  154. package/dist/components/ui/select/index.js.map +4 -4
  155. package/dist/components/ui/select/select.css +48 -6
  156. package/dist/components/ui/select/select.d.ts +29 -8
  157. package/dist/components/ui/select/select.script.d.ts +7 -0
  158. package/dist/components/ui/sidebar/index.js +1 -1
  159. package/dist/components/ui/sidebar/index.js.map +4 -4
  160. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
  161. package/dist/components/ui/sidebar/sidebar.css +41 -24
  162. package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
  163. package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
  165. package/dist/components/ui/slider/index.js +1 -1
  166. package/dist/components/ui/slider/index.js.map +4 -4
  167. package/dist/components/ui/slider/slider.d.ts +2 -1
  168. package/dist/components/ui/slider/slider.script.d.ts +29 -1
  169. package/dist/components/ui/switch/index.js +1 -1
  170. package/dist/components/ui/switch/index.js.map +4 -4
  171. package/dist/components/ui/switch/switch.css +3 -3
  172. package/dist/components/ui/switch/switch.d.ts +11 -2
  173. package/dist/components/ui/switch/switch.script.d.ts +5 -0
  174. package/dist/components/ui/tabs/index.js +1 -1
  175. package/dist/components/ui/tabs/index.js.map +4 -4
  176. package/dist/components/ui/tabs/tabs.css +9 -10
  177. package/dist/components/ui/tabs/tabs.d.ts +30 -9
  178. package/dist/components/ui/tag-group/index.js +1 -1
  179. package/dist/components/ui/tag-group/index.js.map +4 -4
  180. package/dist/components/ui/tag-group/tag-group.css +2 -11
  181. package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
  182. package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
  183. package/dist/components/ui/textarea/index.d.ts +1 -1
  184. package/dist/components/ui/textarea/index.js +1 -1
  185. package/dist/components/ui/textarea/index.js.map +4 -4
  186. package/dist/components/ui/textarea/textarea.d.ts +7 -2
  187. package/dist/components/ui/toast/index.d.ts +1 -1
  188. package/dist/components/ui/toast/index.js +1 -1
  189. package/dist/components/ui/toast/index.js.map +4 -4
  190. package/dist/components/ui/toast/stack-layout.d.ts +18 -0
  191. package/dist/components/ui/toast/toast-context.d.ts +10 -0
  192. package/dist/components/ui/toast/toast.css +30 -9
  193. package/dist/components/ui/toast/toast.d.ts +12 -2
  194. package/dist/components/ui/toast/toast.script.d.ts +60 -4
  195. package/dist/components/ui/toast/toaster.script.d.ts +71 -2
  196. package/dist/components/ui/toc/index.js +1 -1
  197. package/dist/components/ui/toc/index.js.map +4 -4
  198. package/dist/components/ui/toc/toc.css +3 -0
  199. package/dist/components/ui/toc/toc.d.ts +2 -1
  200. package/dist/components/ui/toc/toc.script.d.ts +15 -0
  201. package/dist/components/ui/toolbar/index.js +1 -1
  202. package/dist/components/ui/toolbar/index.js.map +4 -4
  203. package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
  204. package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
  205. package/dist/components/ui/tooltip/index.js +1 -1
  206. package/dist/components/ui/tooltip/index.js.map +4 -4
  207. package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
  208. package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
  209. package/dist/components/ui/tree/index.js +1 -1
  210. package/dist/components/ui/tree/index.js.map +4 -4
  211. package/dist/components/ui/tree/tree.d.ts +12 -2
  212. package/dist/components/ui/tree/tree.script.d.ts +18 -1
  213. package/dist/components/ui/treegrid/index.js +1 -1
  214. package/dist/components/ui/treegrid/index.js.map +4 -4
  215. package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
  216. package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
  217. package/dist/components/ui/window-splitter/index.js +1 -1
  218. package/dist/components/ui/window-splitter/index.js.map +4 -4
  219. package/dist/components/ui/window-splitter/window-splitter.css +1 -1
  220. package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
  221. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.js +1 -1
  224. package/dist/index.js.map +4 -4
  225. package/dist/lib/cycle-value.d.ts +8 -0
  226. package/dist/lib/intl-number/range.d.ts +8 -0
  227. package/dist/styles/radiant-ui-core.css +110 -341
  228. package/dist/styles/radiant-ui.css +413 -377
  229. package/dist/styles/styles.css +839 -2731
  230. package/dist/styles/tailwind.css +626 -530
  231. package/dist/styles/tokens/colors/aurora.css +2 -2
  232. package/dist/styles/tokens/colors/basalt.css +2 -1
  233. package/dist/styles/tokens/colors/glacier.css +2 -1
  234. package/dist/styles/tokens/presets/colors/aurora.css +42 -14
  235. package/dist/styles/tokens/presets/colors/basalt.css +28 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +28 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +28 -0
  238. package/dist/styles/tokens/semantic.css +22 -2
  239. package/dist/styles/tokens/spacing/compact.css +12 -12
  240. package/package.json +21 -8
  241. package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
  242. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
  243. package/dist/components/ui/form/form-field.test.d.ts +0 -4
  244. package/dist/components/ui/form/form-store.test.d.ts +0 -1
  245. package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
  246. package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
  247. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
  248. package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
  249. package/dist/components/ui/shared/portal.test.d.ts +0 -1
  250. package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
  251. package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
  252. package/dist/components/ui/toast/toast.test.d.ts +0 -2
  253. package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
  254. package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
  255. package/dist/components/ui/toc/toc.test.d.ts +0 -1
  256. package/dist/lib/intl-date/parts.test.d.ts +0 -1
  257. package/dist/lib/intl-date/segments.test.d.ts +0 -1
  258. package/dist/lib/intl-date/selection.test.d.ts +0 -1
  259. package/dist/lib/mask/date-mask.test.d.ts +0 -1
  260. package/dist/lib/mask/input-mask.test.d.ts +0 -1
  261. package/dist/lib/radiant-view.d.ts +0 -43
  262. package/dist/lib/text-filter.test.d.ts +0 -1
  263. package/dist/styles/tokens/presets/radius.css +0 -45
  264. package/dist/styles/tokens/presets/spacing.css +0 -57
@@ -1,16 +1,25 @@
1
1
  import type { JsxHtmlProps, JsxHtmlPropsWithChildren } from '@ecopages/jsx';
2
2
  import { RuiListboxOption, type RuiListboxOptionData } from '../listbox';
3
3
  import type { RuiSelectProps } from './select.script';
4
+ import './select.script';
4
5
  export type RuiSelectControlProps = JsxHtmlPropsWithChildren<{
5
6
  slot?: string;
6
7
  }>;
7
- /** Trigger row wrapper for the value button and toggle icon. */
8
+ /**
9
+ * Trigger row wrapper for the value button and toggle icon.
10
+ *
11
+ * @cssclass rui-select__control - Trigger row; bordered, control-height surface.
12
+ */
8
13
  export declare function RuiSelectControl({ children, slot, class: className, ...props }: RuiSelectControlProps): import("@ecopages/jsx").JsxRenderable;
9
14
  export type RuiSelectTriggerProps = JsxHtmlPropsWithChildren<{
10
15
  disabled?: boolean;
11
16
  'aria-label'?: string;
12
17
  }>;
13
- /** Value button with `role="combobox"`. Place `RuiSelectValue` inside. */
18
+ /**
19
+ * Value button with `role="combobox"`. Place `RuiSelectValue` inside.
20
+ *
21
+ * @cssclass rui-select__trigger - Value button; `role="combobox"` set by the controller.
22
+ */
14
23
  export declare function RuiSelectTrigger({ children, class: className, disabled, ...props }: RuiSelectTriggerProps): import("@ecopages/jsx").JsxRenderable;
15
24
  export type RuiSelectToggleProps = JsxHtmlPropsWithChildren<{
16
25
  'aria-label'?: string;
@@ -24,14 +33,22 @@ export type RuiSelectValueProps = JsxHtmlPropsWithChildren<{
24
33
  /**
25
34
  * Selected value display inside `RuiSelectTrigger`.
26
35
  *
27
- * @remarks When empty, shows the select `placeholder`. For multi-select chip UI,
28
- * provide `RuiTagGroup` as children instead of relying on the default text.
36
+ * @remarks When empty, shows the select `placeholder`. For the `options` API,
37
+ * the view SSRs the resolved label (or placeholder) so the control height does
38
+ * not collapse before client sync. For multi-select chip UI, provide
39
+ * `RuiTagGroup` as children instead of relying on the default text.
40
+ *
41
+ * @cssclass rui-select__value - Selected value / placeholder text.
29
42
  */
30
43
  export declare function RuiSelectValue({ children, slot, class: className, ...props }: RuiSelectValueProps): import("@ecopages/jsx").JsxRenderable;
31
44
  export type RuiSelectListboxProps = JsxHtmlPropsWithChildren<{
32
45
  slot?: string;
33
46
  }>;
34
- /** Popup shell slotted into `listbox`. Place an embedded `RuiListbox` inside. */
47
+ /**
48
+ * Popup shell slotted into `listbox`. Place an embedded `RuiListbox` inside.
49
+ *
50
+ * @cssclass rui-select__listbox - Popup shell; composes `rui-popover` surface roles.
51
+ */
35
52
  export declare function RuiSelectListbox({ children, slot, class: className, ...props }: RuiSelectListboxProps): import("@ecopages/jsx").JsxRenderable;
36
53
  export type RuiSelectSearchProps = JsxHtmlProps<{
37
54
  slot?: string;
@@ -39,7 +56,11 @@ export type RuiSelectSearchProps = JsxHtmlProps<{
39
56
  'aria-label'?: string;
40
57
  disabled?: boolean;
41
58
  }>;
42
- /** Search input for filtering inside `RuiAutocomplete` within a select listbox. */
59
+ /**
60
+ * Search input for filtering inside `RuiAutocomplete` within a select listbox.
61
+ *
62
+ * @cssclass rui-select__search - Filtering input inside the popup.
63
+ */
43
64
  export declare function RuiSelectSearch({ placeholder, slot, class: className, disabled, ...props }: RuiSelectSearchProps): import("@ecopages/jsx").JsxRenderable;
44
65
  export type RuiSelectOptionData = RuiListboxOptionData;
45
66
  /** @deprecated Use `RuiListboxOption` */
@@ -48,7 +69,7 @@ export declare const RuiSelectOption: typeof RuiListboxOption;
48
69
  * Select view. Pair with `RuiLabel` (sibling or via `RuiField`) for the visible name —
49
70
  * do not nest a select-specific label.
50
71
  */
51
- export declare const RuiSelect: import("@/lib/radiant-view").RadiantViewComponent<JsxHtmlPropsWithChildren<RuiSelectProps & {
72
+ export declare function RuiSelect({ options, children, ...props }: JsxHtmlPropsWithChildren<RuiSelectProps & {
52
73
  slot?: string;
53
74
  options?: RuiSelectOptionData[];
54
- }>>;
75
+ }>): import("@ecopages/jsx").JsxRenderable;
@@ -61,6 +61,13 @@ export declare class RuiSelect extends RadiantElement {
61
61
  private resetSearchFilter;
62
62
  private syncSearchInput;
63
63
  private focusPopupInput;
64
+ /**
65
+ * Resolves the multi-select chip host inside the value slot.
66
+ *
67
+ * @remarks
68
+ * During Storybook/SSR upgrade, `querySelector` can return the host before
69
+ * `rui-tag-group` is defined — treat that as absent until `setItems` exists.
70
+ */
64
71
  private getTagGroup;
65
72
  private hasTagGroup;
66
73
  private syncTagGroup;
@@ -1,2 +1,2 @@
1
- import{jsx as st,jsxs as qe}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as me,bound as ot,customElement as Ye,event as ft,onEvent as Xe,onUpdated as mt,prop as x,query as ut,state as Ne}from"@ecopages/radiant";import{isServer as Je}from"@ecopages/radiant/is-server";function _t(i){return i.split(",").map(t=>t.trim()).filter(t=>t.length>0)}var vt,yt,St,wt,xt,Et,Mt,At,kt,Lt,Rt,Tt,Wt,Ct,Ot,Dt,It,zt,jt,Bt,Vt,Ut,Pt,Ht,Kt,Qt,Gt,$t,qt,Yt,Xt,Nt,Jt,Zt,Ft,te,ee,ie,re,ne,ae,se,oe,de,le,ue,ce,he,pe,be;function Ke(i,t,e,r,d,v){var h,s,C,T,A,W,k,$=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,U=Object.create,Y=[U(null),U(null)],X=t.length;function I(n,f,p){return function(a,o){f&&(o=a,a=i);for(var m=0;m<n.length;m++)o=n[m].apply(a,p?[o]:[]);return p?o:a}}function y(n,f,p,a){if(typeof n!="function"&&(a||n!==void 0))throw new TypeError(f+" must "+(p||"be")+" a function"+(a?"":" or undefined"));return n}function N(n,f,p,a,o,m,M,b,g,_,Z){function P(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var H=[].concat(f[0]),F=f[3],K=!M,O=o===1,tt=o===3,et=o===4,z=o===2;function j(u,L,nt){return function(V,at){return L&&(at=V,V=n),nt&&nt(V),l[u].call(V,at)}}if(!K){var l={},Q=[],S=tt?"get":et||O?"set":"value";if(g?(_||O?l={get:fe(function(){return F(this)},a,"get"),set:function(u){f[4](this,u)}}:l[S]=F,_||fe(l[S],a,z?"":S)):_||(l=Object.getOwnPropertyDescriptor(n,a)),!_&&!g){if((s=Y[+b][a])&&(s^o)!==7)throw Error("Decorating two elements with the same name ("+l[S].name+") is not supported yet");Y[+b][a]=o<3?1:o}}for(var c=n,B=H.length-1;B>=0;B-=p?2:1){var it=y(H[B],"A decorator","be",!0),rt=p?H[B-1]:void 0,G={},D={kind:["field","accessor","method","getter","setter","class"][o],name:a,metadata:h,addInitializer:function(u,L){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(L,"An initializer","be",!0),m.push(L)}.bind(null,G)};if(K)s=it.call(rt,c,D),G.v=1,y(s,"class decorators","return")&&(c=s);else if(D.static=b,D.private=g,s=D.access={has:g?Z.bind():function(u){return a in u}},et||(s.get=g?z?function(u){return P(u),l.value}:j("get",0,P):function(u){return u[a]}),z||tt||(s.set=g?j("set",0,P):function(u,L){u[a]=L}),c=it.call(rt,O?{get:l.get,set:l.set}:l[S],D),G.v=1,O){if(typeof c=="object"&&c)(s=y(c.get,"accessor.get"))&&(l.get=s),(s=y(c.set,"accessor.set"))&&(l.set=s),(s=y(c.init,"accessor.init"))&&Q.unshift(s);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(c,(_?"field":"method")+" decorators","return")&&(_?Q.unshift(c):l[S]=c)}return o<2&&M.push(I(Q,b,1),I(m,b,0)),_||K||(g?O?M.splice(-1,0,j("get",b),j("set",b)):M.push(z?l[S]:y.call.bind(l[S])):q(n,a,l)),c}function J(n){return q(n,$,{configurable:!0,enumerable:!0,value:h})}return v!==void 0&&(h=v[$]),h=U(h??null),A=[],W=function(n){n&&A.push(I(n))},k=function(n,f){for(var p=0;p<e.length;p++){var a=e[p],o=a[1],m=7&o;if((8&o)==n&&!m==f){var M=a[2],b=!!a[3],g=16&o;N(n?i:i.prototype,a,g,b?"#"+M:Qe(M),m,m<2?[]:n?T=T||[]:C=C||[],A,!!n,b,f,n&&b?function(_){return $e(_)===i}:d)}}},k(8,0),k(0,0),k(8,1),k(0,1),W(C),W(T),s=A,X||J(i),{e:s,get c(){var n=[];return X&&[J(i=N(i,[t],r,i.name,5,n)),I(n,1)]}}}function Qe(i){var t=Ge(i,"string");return typeof t=="symbol"?t:t+""}function Ge(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var r=e.call(i,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function fe(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function $e(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var Ze=256,Fe=48,ti=200,ei=480,ii=768,ri="b",ge=8,_e=32,ni="a.rui-sidebar__menu-button";function ai(i){return i.metaKey||i.ctrlKey}function si(){return typeof window<"u"&&typeof window.matchMedia=="function"}function ct(i){return i==="left"||i==="right"}var ht,ve=class extends me{static{({e:[St,wt,xt,Et,Mt,At,kt,Lt,Rt,Tt,Wt,Ct,Ot,Dt,It,zt,jt,Bt,Vt,Ut,Pt,Ht,Kt,Qt,Gt,$t,qt,Yt,Xt,Nt,Jt,Zt,Ft,te,ee,ie,re,ne,ae,se,oe,de,le,ue,ce,he,pe,be,vt],c:[ht,yt]}=Ke(this,[Ye("rui-sidebar")],[[x({type:String,reflect:!0,defaultValue:"sidebar"}),0,"variant"],[x({type:String,reflect:!0,defaultValue:"left"}),0,"side"],[x({type:String,reflect:!0,defaultValue:"off"}),0,"collapsible"],[x({type:Number,defaultValue:Ze}),0,"defaultWidth"],[x({type:Number,reflect:!0,attribute:"width"}),0,"width"],[x({type:Number,defaultValue:ti}),0,"minWidth"],[x({type:Number,defaultValue:ei}),0,"maxWidth"],[x({type:Boolean,defaultValue:!1}),0,"resizable"],[x({type:Boolean,defaultValue:!0}),0,"defaultOpen"],[x({type:Boolean,attribute:"open"}),0,"open"],[x({type:Number,defaultValue:ii}),0,"mobileBreakpoint"],[x({type:String,defaultValue:"Sidebar"}),0,"label"],[x({type:Boolean,reflect:!0,attribute:"match-active"}),0,"matchActive"],[x({type:String,defaultValue:"pathname"}),0,"matchMode"],[x({type:Boolean,attribute:"scroll-active-on-mount"}),0,"scrollActiveOnMount"],[x({type:String,attribute:"navigation-events",defaultValue:""}),0,"navigationEvents"],[ut({ref:"root"}),0,"rootTarget"],[ut({ref:"pane"}),0,"paneTarget"],[ut({ref:"handle"}),0,"handleTarget"],[ut({ref:"scrim"}),0,"scrimTarget"],[ft({name:"rui-sidebar-toggle",bubbles:!0,composed:!0}),0,"toggleEvent"],[ft({name:"rui-sidebar-resize",bubbles:!0,composed:!0}),0,"resizeEvent"],[ft({name:"rui-sidebar-mobile-change",bubbles:!0,composed:!0}),0,"mobileChangeEvent"],[Ne,0,"isMobile"],[mt(["open","collapsible","variant","side","width","defaultWidth","defaultOpen","minWidth","maxWidth","isMobile","resizable"]),2,"onStateUpdated"],[mt(["mobileBreakpoint"]),2,"onMobileBreakpointUpdated"],[mt(["matchActive","matchMode","navigationEvents"]),2,"onMatchSettingsUpdated"],[ot,2,"onPointerMove"],[ot,2,"onPointerUp"],[ot,2,"onHandlePointerDown"],[ot,2,"onHandleKeydown"],[ot,2,"onScrimClick"],[Xe({document:!0,type:"keydown"}),2,"onHostKeydown"]],0,void 0,me))}variant=(vt(this),St(this));side=(wt(this),xt(this));collapsible=(Et(this),Mt(this));defaultWidth=(At(this),kt(this));width=(Lt(this),Rt(this));minWidth=(Tt(this),Wt(this));maxWidth=(Ct(this),Ot(this));resizable=(Dt(this),It(this));defaultOpen=(zt(this),jt(this));open=(Bt(this),Vt(this));mobileBreakpoint=(Ut(this),Pt(this));label=(Ht(this),Kt(this));matchActive=(Qt(this),Gt(this,!1));matchMode=($t(this),qt(this));scrollActiveOnMount=(Yt(this),Xt(this,!1));navigationEvents=(Nt(this),Jt(this,""));rootTarget=(Zt(this),Ft(this));paneTarget=(te(this),ee(this));handleTarget=(ie(this),re(this));scrimTarget=(ne(this),ae(this));toggleEvent=(se(this),oe(this));resizeEvent=(de(this),le(this));mobileChangeEvent=(ue(this),ce(this));isMobile=(he(this),pe(this,!1));mediaQuery=(be(this),null);mediaListener=t=>this.setMobile(t.matches);dragging=!1;dragStartCoord=0;dragStartSize=0;navigationCleanups=[];didScrollActiveOnMount=!1;connectedCallback(){super.connectedCallback(),this.ensureWidthInitialized(),this.setAttribute("role","complementary"),this.setAttribute("aria-label",this.label),this.syncHostAttributes(),this.attachNavigationListeners(),queueMicrotask(()=>{this.open===void 0&&(this.open=this.defaultOpen),this.ensureWidthInitialized(),this.syncHostAttributes(),this.syncPaneWidthVar(),this.bindMobileMediaQuery(),this.syncActiveLinksAfterRender(!0)})}hydrate(){super.hydrate(),this.syncActiveLinksAfterRender(!0)}update(){super.update(),this.syncActiveLinksAfterRender(!1)}requestUpdate(){super.requestUpdate(),queueMicrotask(()=>{this.syncActiveLinksAfterRender(!1)})}disconnectedCallback(){this.endDrag(),this.unbindMobileMediaQuery(),this.detachNavigationListeners(),super.disconnectedCallback()}syncActiveLinksAfterRender(t){let e=t&&this.scrollActiveOnMount&&!this.didScrollActiveOnMount;this.syncActiveLinks(e),e&&(this.didScrollActiveOnMount=!0)}syncHostAttributes(){let t=this.isOpen()?"expanded":"collapsed";this.setAttribute("data-state",t),this.setAttribute("data-collapsible",this.collapsible),this.setAttribute("data-variant",this.variant),this.setAttribute("data-side",this.side),this.setAttribute("data-mobile",String(this.isMobile)),this.setAttribute("data-pane-width",String(this.paneWidth()))}isOpen(){return this.open!==void 0?this.open:this.defaultOpen}ensureWidthInitialized(){this.hasAttribute("width")||(this.width===void 0||this.width===0)&&(this.width=this.defaultWidth)}onStateUpdated(){this.syncHostAttributes(),this.syncPaneWidthVar()}onMobileBreakpointUpdated(){this.bindMobileMediaQuery()}onMatchSettingsUpdated(){this.detachNavigationListeners(),this.attachNavigationListeners(),this.syncActiveLinks(!1)}syncActiveLinks(t=!1){if(!this.matchActive||typeof window>"u"||typeof window.location>"u")return!1;let e=window.location.pathname,r=!1;for(let d of this.querySelectorAll(ni)){let v=this.isLinkActive(d,e);d.classList.toggle("rui-sidebar__menu-button--active",v),v?(d.setAttribute("aria-current","page"),t&&!r&&(d.scrollIntoView({block:"nearest"}),r=!0)):d.removeAttribute("aria-current")}return r}isLinkActive(t,e){let r=t.pathname;return this.matchMode==="prefix"?e===r||e.startsWith(`${r}/`):r===e}attachNavigationListeners(){if(Je||!this.isConnected||!this.matchActive||typeof window>"u"||typeof window.addEventListener!="function")return;let t=()=>this.syncActiveLinks(!1);if(window.addEventListener("popstate",t),this.navigationCleanups.push(()=>window.removeEventListener("popstate",t)),typeof document<"u"&&typeof document.addEventListener=="function")for(let e of _t(this.navigationEvents))document.addEventListener(e,t),this.navigationCleanups.push(()=>document.removeEventListener(e,t))}detachNavigationListeners(){for(let t of this.navigationCleanups)t();this.navigationCleanups=[]}unbindMobileMediaQuery(){this.mediaQuery?.removeEventListener("change",this.mediaListener),this.mediaQuery=null}bindMobileMediaQuery(){if(this.unbindMobileMediaQuery(),this.mobileBreakpoint<=0||!si()){this.setMobile(!1);return}this.mediaQuery=window.matchMedia(`(max-width: ${this.mobileBreakpoint-1}px)`),this.mediaQuery.addEventListener("change",this.mediaListener),this.setMobile(this.mediaQuery.matches)}setMobile(t){if(t===this.isMobile)return;let e=this.isMobile&&!t;this.isMobile=t,e&&this.collapsible==="off"&&!this.isOpen()?this.setOpen(!0):this.syncPaneWidthVar(),this.mobileChangeEvent.emit({mobile:t})}clampWidth(t){return Math.min(this.maxWidth,Math.max(this.minWidth,t))}paneWidth(){return this.isOpen()?this.width&&this.width>0?this.width:this.defaultWidth:this.isMobile?0:this.collapsible==="icon"?Fe:0}syncPaneWidthVar(t=this.paneWidth()){let e=this.rootTarget;e&&e.style.setProperty("--rui-sidebar-pane-width",`${t}px`),this.paneTarget&&(this.paneTarget.style.removeProperty("width"),this.paneTarget.style.removeProperty("height")),this.setAttribute("data-pane-width",String(t))}applyWidth(t,e){let r=this.clampWidth(t);this.width=r,this.syncPaneWidthVar(r),e&&this.resizeEvent.emit({width:r})}toggle(){this.setOpen(!this.isOpen())}setOpen(t){let e=this.isOpen();if(t===e){this.syncPaneWidthVar();return}this.open=t;let r=t?"expanded":"collapsed";this.setAttribute("data-state",r),this.syncPaneWidthVar(),this.toggleEvent.emit({open:t,state:r})}beginDrag(t){if(t.button!==0||this.collapsible!=="off")return;this.dragging=!0;let e=ct(this.side);this.dragStartCoord=e?t.clientX:t.clientY,this.dragStartSize=this.paneWidth(),this.handleTarget?.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerUp)}endDrag(){this.dragging&&(this.dragging=!1,document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerUp))}onPointerMove(t){if(!this.dragging)return;let r=ct(this.side)?t.clientX:t.clientY,d=this.side==="right"?this.dragStartCoord-r:r-this.dragStartCoord;this.applyWidth(this.dragStartSize+d,!0)}onPointerUp(){this.endDrag()}onHandlePointerDown(t){t.preventDefault(),this.beginDrag(t)}onHandleKeydown(t){let e=t,r=this.paneWidth(),d=ct(this.side),v=d?"ArrowLeft":"ArrowUp",h=d?"ArrowRight":"ArrowDown",s=r;if(e.key===v)s=r-(e.shiftKey?_e:ge);else if(e.key===h)s=r+(e.shiftKey?_e:ge);else if(e.key==="Home")s=this.minWidth;else if(e.key==="End")s=this.maxWidth;else return;t.preventDefault(),this.applyWidth(s,!0)}onScrimClick(){this.isMobile&&this.setOpen(!1)}onHostKeydown(t){let e=t;if(e.key==="Escape"&&this.isMobile&&this.isOpen()){e.preventDefault(),this.setOpen(!1);return}ai(e)&&e.key.toLowerCase()===ri&&(e.preventDefault(),this.toggle())}render(){let t=ct(this.side),e=this.isOpen(),r=e?"expanded":"collapsed",d=this.resizable&&this.collapsible==="off"&&e&&!this.isMobile,v=`${this.paneWidth()}px`,h=e||!this.isMobile&&this.collapsible==="icon"?void 0:"";return qe("div",{class:"rui-sidebar",style:{"--rui-sidebar-pane-width":v},"data-ref":"root","data-state":r,"data-collapsible":this.collapsible,"data-variant":this.variant,"data-side":this.side,"data-mobile":String(this.isMobile),children:[st("button",{"data-ref":"scrim",type:"button",class:"rui-sidebar__scrim",tabindex:-1,"aria-label":"Close sidebar",hidden:!this.isMobile||!e,"on:click":this.onScrimClick}),st("div",{"data-ref":"pane",class:"rui-sidebar__pane","data-side":this.side,"data-variant":this.variant,"aria-label":this.$.label,inert:h,children:st("slot",{})}),d?st("div",{"data-ref":"handle",class:"rui-sidebar__handle",role:"separator",tabindex:0,"aria-orientation":t?"vertical":"horizontal","aria-valuenow":this.paneWidth(),"aria-valuemin":this.minWidth,"aria-valuemax":this.maxWidth,"aria-label":`${this.label} resize handle`,"on:pointerdown":this.onHandlePointerDown,"on:keydown":this.onHandleKeydown,children:st("span",{class:"rui-sidebar__handle-grip","aria-hidden":"true"})}):null]})}static{yt()}};import{jsx as R,jsxs as dt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as je,customElement as ci,onEvent as hi,onUpdated as pi,prop as lt,query as bi,state as fi}from"@ecopages/radiant";var ye,Se,we,xe,Ee,Me,Ae,ke,Le,Re,Te,We,Ce,Oe,De,Ie;function oi(i,t,e,r,d,v){var h,s,C,T,A,W,k,$=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,U=Object.create,Y=[U(null),U(null)],X=t.length;function I(n,f,p){return function(a,o){f&&(o=a,a=i);for(var m=0;m<n.length;m++)o=n[m].apply(a,p?[o]:[]);return p?o:a}}function y(n,f,p,a){if(typeof n!="function"&&(a||n!==void 0))throw new TypeError(f+" must "+(p||"be")+" a function"+(a?"":" or undefined"));return n}function N(n,f,p,a,o,m,M,b,g,_,Z){function P(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var H=[].concat(f[0]),F=f[3],K=!M,O=o===1,tt=o===3,et=o===4,z=o===2;function j(u,L,nt){return function(V,at){return L&&(at=V,V=n),nt&&nt(V),l[u].call(V,at)}}if(!K){var l={},Q=[],S=tt?"get":et||O?"set":"value";if(g?(_||O?l={get:ze(function(){return F(this)},a,"get"),set:function(u){f[4](this,u)}}:l[S]=F,_||ze(l[S],a,z?"":S)):_||(l=Object.getOwnPropertyDescriptor(n,a)),!_&&!g){if((s=Y[+b][a])&&(s^o)!==7)throw Error("Decorating two elements with the same name ("+l[S].name+") is not supported yet");Y[+b][a]=o<3?1:o}}for(var c=n,B=H.length-1;B>=0;B-=p?2:1){var it=y(H[B],"A decorator","be",!0),rt=p?H[B-1]:void 0,G={},D={kind:["field","accessor","method","getter","setter","class"][o],name:a,metadata:h,addInitializer:function(u,L){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(L,"An initializer","be",!0),m.push(L)}.bind(null,G)};if(K)s=it.call(rt,c,D),G.v=1,y(s,"class decorators","return")&&(c=s);else if(D.static=b,D.private=g,s=D.access={has:g?Z.bind():function(u){return a in u}},et||(s.get=g?z?function(u){return P(u),l.value}:j("get",0,P):function(u){return u[a]}),z||tt||(s.set=g?j("set",0,P):function(u,L){u[a]=L}),c=it.call(rt,O?{get:l.get,set:l.set}:l[S],D),G.v=1,O){if(typeof c=="object"&&c)(s=y(c.get,"accessor.get"))&&(l.get=s),(s=y(c.set,"accessor.set"))&&(l.set=s),(s=y(c.init,"accessor.init"))&&Q.unshift(s);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(c,(_?"field":"method")+" decorators","return")&&(_?Q.unshift(c):l[S]=c)}return o<2&&M.push(I(Q,b,1),I(m,b,0)),_||K||(g?O?M.splice(-1,0,j("get",b),j("set",b)):M.push(z?l[S]:y.call.bind(l[S])):q(n,a,l)),c}function J(n){return q(n,$,{configurable:!0,enumerable:!0,value:h})}return v!==void 0&&(h=v[$]),h=U(h??null),A=[],W=function(n){n&&A.push(I(n))},k=function(n,f){for(var p=0;p<e.length;p++){var a=e[p],o=a[1],m=7&o;if((8&o)==n&&!m==f){var M=a[2],b=!!a[3],g=16&o;N(n?i:i.prototype,a,g,b?"#"+M:di(M),m,m<2?[]:n?T=T||[]:C=C||[],A,!!n,b,f,n&&b?function(_){return ui(_)===i}:d)}}},k(8,0),k(0,0),k(8,1),k(0,1),W(C),W(T),s=A,X||J(i),{e:s,get c(){var n=[];return X&&[J(i=N(i,[t],r,i.name,5,n)),I(n,1)]}}}function di(i){var t=li(i,"string");return typeof t=="symbol"?t:t+""}function li(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var r=e.call(i,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function ze(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function ui(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var pt,Be=class extends je{static{({e:[we,xe,Ee,Me,Ae,ke,Le,Re,Te,We,Ce,Oe,De,Ie,ye],c:[pt,Se]}=oi(this,[ci("rui-sidebar-trigger")],[[lt({type:String,defaultValue:""}),0,"controls"],[lt({type:String,attribute:"button-label",defaultValue:"Toggle sidebar"}),0,"buttonLabel"],[lt({type:String,reflect:!0,attribute:"data-placement",defaultValue:""}),0,"placement"],[lt({type:String,defaultValue:"ghost"}),0,"variant"],[lt({type:String,defaultValue:"md"}),0,"size"],[bi({ref:"button"}),0,"buttonTarget"],[fi,0,"sidebarState"],[pi(["controls","buttonLabel","placement"]),2,"onControlsUpdated"],[hi({selector:'button[data-ref="button"]',type:"click"}),2,"onButtonClick"]],0,void 0,je))}controls=(ye(this),we(this));buttonLabel=(xe(this),Ee(this));placement=(Me(this),Ae(this));variant=(ke(this),Le(this));size=(Re(this),Te(this));buttonTarget=(We(this),Ce(this));sidebarState=(Oe(this),De(this,"expanded"));sidebarListener=(Ie(this),null);attachedSidebar=null;connectedCallback(){super.connectedCallback(),this.syncWithSidebar(),queueMicrotask(()=>this.syncWithSidebar())}disconnectedCallback(){this.detachFromSidebar(),super.disconnectedCallback()}onControlsUpdated(){this.detachFromSidebar(),this.syncWithSidebar(),this.applyState(this.attachedSidebar?this.readState(this.attachedSidebar):"expanded")}resolveSidebar(){let t=this.controls?.trim();if(t){let r=document.getElementById(t);if(r)return r}let e=this.closest("rui-sidebar");return e?.id?e:null}syncWithSidebar(){let t=this.resolveSidebar();if(t===this.attachedSidebar){t&&this.applyState(this.readState(t));return}this.detachFromSidebar(),t&&(this.attachedSidebar=t,this.sidebarListener=e=>{let r=e.detail;this.applyState(r.state)},t.addEventListener("rui-sidebar-toggle",this.sidebarListener),this.applyState(this.readState(t)))}detachFromSidebar(){this.attachedSidebar&&this.sidebarListener&&this.attachedSidebar.removeEventListener("rui-sidebar-toggle",this.sidebarListener),this.attachedSidebar=null,this.sidebarListener=null}readState(t){return t.getAttribute("data-state")??"expanded"}resolvedButtonLabel(t=this.sidebarState){if(this.placement==="inset")return t==="expanded"?"Close navigation":"Open navigation";let e=this.getAttribute("data-button-label")?.trim();if(e)return e;let r=this.getAttribute("button-label")?.trim();return r||this.buttonLabel||"Toggle sidebar"}applyState(t){this.sidebarState=t;let e=this.buttonTarget;if(!e)return;let r=this.resolveSidebar(),d=this.resolvedButtonLabel(t);e.setAttribute("aria-expanded",String(t==="expanded")),e.setAttribute("data-sidebar-state",t),e.setAttribute("aria-label",d),r?.id?e.setAttribute("aria-controls",r.id):this.controls&&e.setAttribute("aria-controls",this.controls)}onButtonClick(t){t.preventDefault(),t.stopPropagation();let e=this.resolveSidebar();e&&typeof e.toggle=="function"&&e.toggle()}placementClass(){return this.placement==="header"?"rui-sidebar__trigger--header":this.placement==="inset"?"rui-sidebar__trigger--inset":""}renderMenuIcon(t){return t==="expanded"?dt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--close",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[R("path",{d:"M18 6 6 18"}),R("path",{d:"m6 6 12 12"})]}):dt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--menu",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[R("path",{d:"M4 6h16"}),R("path",{d:"M4 12h16"}),R("path",{d:"M4 18h16"})]})}renderDefaultIcon(){let t=this.sidebarState,e=this.placement;return e==="inset"?R("span",{class:"rui-sidebar__trigger-icon","aria-hidden":"true",children:this.renderMenuIcon(t)}):dt("span",{class:"rui-sidebar__trigger-icon","aria-hidden":"true",children:[e==="header"||t==="expanded"?dt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--collapse",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[R("path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),R("path",{d:"M9 3v18"}),R("path",{d:"m14 15 3-3-3-3"})]}):null,e!=="header"&&t==="collapsed"?dt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--expand",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[R("path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),R("path",{d:"M9 3v18"}),R("path",{d:"m14 9-3 3 3 3"})]}):null]})}render(){let e=this.resolveSidebar()?.id||this.controls||null,r=this.sidebarState,d=this.resolvedButtonLabel(r);return R("button",{"data-ref":"button",type:"button",class:`rui-button rui-button--${this.variant} rui-button--${this.size} rui-sidebar__trigger ${this.placementClass()}`.trim(),"data-sidebar-state":r,"aria-expanded":String(r==="expanded"),"aria-controls":e||null,"aria-label":d,children:this.renderDefaultIcon()})}static{Se()}};import{jsx as w,jsxs as bt}from"@ecopages/jsx/jsx-runtime";function E(...i){return i.filter(Boolean).join(" ")}var mi=Symbol.for("@ecopages/storybook-radiant.viewElement"),Ve=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ue=Symbol.for("@ecopages/storybook-radiant.scriptExport");function gi(i,t){i[mi]=t;let e=t[Ve];e&&(i[Ve]=e,i[Ue]=t[Ue]??t.name)}function gt(i,t,e){let r=d=>t(d);return gi(r,i),r}function _i({layout:i="default",siteHeader:t,sidebar:e,children:r,class:d}){return i==="docs"?bt("div",{class:E("rui-sidebar-provider",d),"data-layout":i,children:[t?w("div",{class:"rui-sidebar-provider__site-header",children:t}):null,bt("div",{class:"rui-sidebar-provider__body",children:[e,r]})]}):bt("div",{class:E("rui-sidebar-provider",d),"data-layout":i,children:[e,r]})}function vi({children:i,class:t,"aria-label":e}){return w("div",{class:E("rui-sidebar__header",t),"aria-label":e,children:i})}function yi({children:i,class:t,"aria-label":e}){return w("div",{class:E("rui-sidebar__content",t),"aria-label":e,children:i})}function Si({children:i,class:t}){return w("div",{class:E("rui-sidebar__footer",t),children:i})}function wi({class:i,"aria-label":t}){return w("hr",{role:"separator","aria-orientation":"horizontal","aria-label":t,class:E("rui-sidebar__separator",i)})}function xi({children:i,class:t,"aria-label":e}){return w("section",{class:E("rui-sidebar__group",t),"aria-label":e,children:i})}function Pe({children:i,class:t,id:e}){return w("h2",{id:e,class:E("rui-sidebar__group-label",t),children:i})}function Ei({children:i,class:t,"aria-label":e}){return w("button",{type:"button","aria-label":e,class:E("rui-sidebar__group-action",t),children:i})}function Mi({label:i,action:t,class:e}){return bt("div",{class:E("rui-sidebar__group-header",e),children:[w(Pe,{children:i}),t]})}function Ai({children:i,class:t,"aria-label":e}){return w("ul",{role:"list",class:E("rui-sidebar__menu",t),"aria-label":e,children:i})}function ki({children:i,class:t}){return w("li",{class:E("rui-sidebar__menu-item",t),children:i})}function He({children:i,class:t,isActive:e,as:r,href:d,type:v="button",tooltip:h,disabled:s,onClick:C}){let T=E("rui-sidebar__menu-button",e&&"rui-sidebar__menu-button--active",t),A=h,W=typeof i=="string"?void 0:h;return r==="button"||!r&&!d?w("button",{type:v,class:T,"aria-current":e?"page":void 0,disabled:s,title:A,"aria-label":W,"on:click":C,children:i}):w("a",{href:d,class:T,"aria-current":e?"page":void 0,title:A,"aria-label":W,children:i})}function Li(i){let{class:t,...e}=i;return w(He,{class:E("rui-sidebar__menu-action",t),...e})}function Ri({children:i,class:t,id:e}){return w("main",{id:e,class:E("rui-sidebar__inset",t),children:i})}var Ti=gt(ht,({children:i,id:t,defaultOpen:e,open:r,defaultWidth:d,width:v,resizable:h,mobileBreakpoint:s,matchActive:C,matchMode:T,scrollActiveOnMount:A,navigationEvents:W,...k})=>w("rui-sidebar",{...k,id:t,"prop:defaultOpen":e,"prop:open":r,"prop:defaultWidth":d,"prop:width":v,"prop:resizable":h,"prop:mobileBreakpoint":s,"prop:matchActive":C,"prop:matchMode":T,"prop:scrollActiveOnMount":A,"prop:navigationEvents":W,children:i}),{stylesheets:["./sidebar.css"]}),Wi=gt(pt,({children:i,controls:t,triggerLabel:e,placement:r,variant:d,size:v,...h})=>w("rui-sidebar-trigger",{...h,"prop:controls":t,"prop:buttonLabel":e??"Toggle sidebar","attr:data-button-label":e??"Toggle sidebar","prop:placement":r,"attr:data-placement":r,variant:d,size:v,children:i}),{stylesheets:["./sidebar.css"]});export{Ti as RuiSidebar,yi as RuiSidebarContent,ht as RuiSidebarElement,Si as RuiSidebarFooter,xi as RuiSidebarGroup,Ei as RuiSidebarGroupAction,Mi as RuiSidebarGroupHeader,Pe as RuiSidebarGroupLabel,vi as RuiSidebarHeader,Ri as RuiSidebarInset,Ai as RuiSidebarMenu,Li as RuiSidebarMenuAction,He as RuiSidebarMenuButton,ki as RuiSidebarMenuItem,_i as RuiSidebarProvider,wi as RuiSidebarSeparator,Wi as RuiSidebarTrigger,pt as RuiSidebarTriggerElement};
1
+ import{jsx as st,jsxs as Ye}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as fe,bound as ot,customElement as Xe,event as pt,onEvent as me,onUpdated as bt,prop as w,query as ut,state as Je}from"@ecopages/radiant";import{isServer as Ze}from"@ecopages/radiant/is-server";function ft(i){return i.split(",").map(t=>t.trim()).filter(t=>t.length>0)}var mt,gt,_t,vt,yt,St,wt,xt,Mt,Et,At,kt,Lt,Tt,Rt,Wt,Ct,Ot,Dt,zt,Bt,It,jt,Vt,Ut,Pt,Ht,Kt,Qt,$t,Gt,qt,Yt,Xt,Jt,Zt,Ft,Nt,te,ee,ie,re,ne,ae,se,oe,le,de,ue,ce,he,pe;function Qe(i,t,e,r,l,v){var h,s,C,R,A,W,k,U=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,P=Object.create,Y=[P(null),P(null)],X=t.length;function z(n,f,p){return function(a,o){f&&(o=a,a=i);for(var m=0;m<n.length;m++)o=n[m].apply(a,p?[o]:[]);return p?o:a}}function y(n,f,p,a){if(typeof n!="function"&&(a||n!==void 0))throw new TypeError(f+" must "+(p||"be")+" a function"+(a?"":" or undefined"));return n}function J(n,f,p,a,o,m,E,b,g,_,F){function H(u){if(!F(u))throw new TypeError("Attempted to access private element on non-instance")}var K=[].concat(f[0]),N=f[3],Q=!E,O=o===1,tt=o===3,et=o===4,B=o===2;function I(u,L,nt){return function(V,at){return L&&(at=V,V=n),nt&&nt(V),d[u].call(V,at)}}if(!Q){var d={},$=[],S=tt?"get":et||O?"set":"value";if(g?(_||O?d={get:be(function(){return N(this)},a,"get"),set:function(u){f[4](this,u)}}:d[S]=N,_||be(d[S],a,B?"":S)):_||(d=Object.getOwnPropertyDescriptor(n,a)),!_&&!g){if((s=Y[+b][a])&&(s^o)!==7)throw Error("Decorating two elements with the same name ("+d[S].name+") is not supported yet");Y[+b][a]=o<3?1:o}}for(var c=n,j=K.length-1;j>=0;j-=p?2:1){var it=y(K[j],"A decorator","be",!0),rt=p?K[j-1]:void 0,G={},D={kind:["field","accessor","method","getter","setter","class"][o],name:a,metadata:h,addInitializer:function(u,L){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(L,"An initializer","be",!0),m.push(L)}.bind(null,G)};if(Q)s=it.call(rt,c,D),G.v=1,y(s,"class decorators","return")&&(c=s);else if(D.static=b,D.private=g,s=D.access={has:g?F.bind():function(u){return a in u}},et||(s.get=g?B?function(u){return H(u),d.value}:I("get",0,H):function(u){return u[a]}),B||tt||(s.set=g?I("set",0,H):function(u,L){u[a]=L}),c=it.call(rt,O?{get:d.get,set:d.set}:d[S],D),G.v=1,O){if(typeof c=="object"&&c)(s=y(c.get,"accessor.get"))&&(d.get=s),(s=y(c.set,"accessor.set"))&&(d.set=s),(s=y(c.init,"accessor.init"))&&$.unshift(s);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(c,(_?"field":"method")+" decorators","return")&&(_?$.unshift(c):d[S]=c)}return o<2&&E.push(z($,b,1),z(m,b,0)),_||Q||(g?O?E.splice(-1,0,I("get",b),I("set",b)):E.push(B?d[S]:y.call.bind(d[S])):q(n,a,d)),c}function Z(n){return q(n,U,{configurable:!0,enumerable:!0,value:h})}return v!==void 0&&(h=v[U]),h=P(h??null),A=[],W=function(n){n&&A.push(z(n))},k=function(n,f){for(var p=0;p<e.length;p++){var a=e[p],o=a[1],m=7&o;if((8&o)==n&&!m==f){var E=a[2],b=!!a[3],g=16&o;J(n?i:i.prototype,a,g,b?"#"+E:$e(E),m,m<2?[]:n?R=R||[]:C=C||[],A,!!n,b,f,n&&b?function(_){return qe(_)===i}:l)}}},k(8,0),k(0,0),k(8,1),k(0,1),W(C),W(R),s=A,X||Z(i),{e:s,get c(){var n=[];return X&&[Z(i=J(i,[t],r,i.name,5,n)),z(n,1)]}}}function $e(i){var t=Ge(i,"string");return typeof t=="symbol"?t:t+""}function Ge(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var r=e.call(i,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function be(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function qe(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var Fe=256,Ne=48,ti=200,ei=480,ii=768,ri="b",ge=8,_e=32,ve="a.rui-sidebar__menu-button";function ni(i){return i.metaKey||i.ctrlKey}function ai(){return typeof window<"u"&&typeof window.matchMedia=="function"}function ct(i){return i==="left"||i==="right"}var Se,ye=class extends fe{static{({e:[_t,vt,yt,St,wt,xt,Mt,Et,At,kt,Lt,Tt,Rt,Wt,Ct,Ot,Dt,zt,Bt,It,jt,Vt,Ut,Pt,Ht,Kt,Qt,$t,Gt,qt,Yt,Xt,Jt,Zt,Ft,Nt,te,ee,ie,re,ne,ae,se,oe,le,de,ue,ce,he,pe,mt],c:[Se,gt]}=Qe(this,[Xe("rui-sidebar")],[[w({type:String,reflect:!0,defaultValue:"sidebar"}),0,"variant"],[w({type:String,reflect:!0,defaultValue:"left"}),0,"side"],[w({type:String,reflect:!0,defaultValue:"off"}),0,"collapsible"],[w({type:Number,defaultValue:Fe}),0,"defaultWidth"],[w({type:Number,reflect:!0,attribute:"width"}),0,"width"],[w({type:Number,defaultValue:ti}),0,"minWidth"],[w({type:Number,defaultValue:ei}),0,"maxWidth"],[w({type:Boolean,defaultValue:!1}),0,"resizable"],[w({type:Boolean,defaultValue:!0}),0,"defaultOpen"],[w({type:Boolean,defaultValue:!1}),0,"mobileDefaultOpen"],[w({type:Boolean,attribute:"open"}),0,"open"],[w({type:Number,defaultValue:ii}),0,"mobileBreakpoint"],[w({type:String,defaultValue:"Sidebar"}),0,"label"],[w({type:Boolean,reflect:!0,attribute:"match-active"}),0,"matchActive"],[w({type:String,defaultValue:"pathname"}),0,"matchMode"],[w({type:Boolean,attribute:"scroll-active-on-mount"}),0,"scrollActiveOnMount"],[w({type:String,attribute:"navigation-events",defaultValue:""}),0,"navigationEvents"],[ut({ref:"root"}),0,"rootTarget"],[ut({ref:"pane"}),0,"paneTarget"],[ut({ref:"handle"}),0,"handleTarget"],[ut({ref:"scrim"}),0,"scrimTarget"],[pt({name:"rui-sidebar-toggle",bubbles:!0,composed:!0}),0,"toggleEvent"],[pt({name:"rui-sidebar-resize",bubbles:!0,composed:!0}),0,"resizeEvent"],[pt({name:"rui-sidebar-mobile-change",bubbles:!0,composed:!0}),0,"mobileChangeEvent"],[Je,0,"isMobile"],[bt(["open","collapsible","variant","side","width","defaultWidth","defaultOpen","minWidth","maxWidth","isMobile","resizable"]),2,"onStateUpdated"],[bt(["mobileBreakpoint"]),2,"onMobileBreakpointUpdated"],[bt(["matchActive","matchMode","navigationEvents"]),2,"onMatchSettingsUpdated"],[ot,2,"onPointerMove"],[ot,2,"onPointerUp"],[ot,2,"onHandlePointerDown"],[ot,2,"onHandleKeydown"],[ot,2,"onScrimClick"],[me({selector:ve,type:"click"}),2,"onMenuLinkClick"],[me({document:!0,type:"keydown"}),2,"onHostKeydown"]],0,void 0,fe))}variant=(mt(this),_t(this));side=(vt(this),yt(this));collapsible=(St(this),wt(this));defaultWidth=(xt(this),Mt(this));width=(Et(this),At(this));minWidth=(kt(this),Lt(this));maxWidth=(Tt(this),Rt(this));resizable=(Wt(this),Ct(this));defaultOpen=(Ot(this),Dt(this));mobileDefaultOpen=(zt(this),Bt(this));open=(It(this),jt(this));mobileBreakpoint=(Vt(this),Ut(this));label=(Pt(this),Ht(this));matchActive=(Kt(this),Qt(this,!1));matchMode=($t(this),Gt(this));scrollActiveOnMount=(qt(this),Yt(this,!1));navigationEvents=(Xt(this),Jt(this,""));rootTarget=(Zt(this),Ft(this));paneTarget=(Nt(this),te(this));handleTarget=(ee(this),ie(this));scrimTarget=(re(this),ne(this));toggleEvent=(ae(this),se(this));resizeEvent=(oe(this),le(this));mobileChangeEvent=(de(this),ue(this));isMobile=(ce(this),he(this,!1));mediaQuery=(pe(this),null);mediaListener=t=>this.setMobile(t.matches);dragging=!1;dragStartCoord=0;dragStartSize=0;navigationCleanups=[];didScrollActiveOnMount=!1;connectedCallback(){super.connectedCallback(),this.ensureWidthInitialized(),this.setAttribute("role","complementary"),this.setAttribute("aria-label",this.label),this.syncHostAttributes(),this.attachNavigationListeners(),queueMicrotask(()=>{this.ensureWidthInitialized(),this.bindMobileMediaQuery(),this.open===void 0&&(this.open=this.isMobile?this.mobileDefaultOpen:this.defaultOpen),this.syncHostAttributes(),this.syncPaneWidthVar(),this.syncActiveLinksAfterRender(!0)})}hydrate(){super.hydrate(),this.syncActiveLinksAfterRender(!0)}update(){super.update(),this.syncActiveLinksAfterRender(!1)}requestUpdate(){super.requestUpdate(),queueMicrotask(()=>{this.syncActiveLinksAfterRender(!1)})}disconnectedCallback(){this.endDrag(),this.unbindMobileMediaQuery(),this.detachNavigationListeners(),super.disconnectedCallback()}syncActiveLinksAfterRender(t){let e=t&&this.scrollActiveOnMount&&!this.didScrollActiveOnMount;this.syncActiveLinks(e),e&&(this.didScrollActiveOnMount=!0)}syncHostAttributes(){let t=this.isOpen()?"expanded":"collapsed";this.setAttribute("data-state",t),this.setAttribute("data-collapsible",this.collapsible),this.setAttribute("data-variant",this.variant),this.setAttribute("data-side",this.side),this.setAttribute("data-mobile",String(this.isMobile)),this.setAttribute("data-pane-width",String(this.paneWidth()))}isOpen(){return this.open!==void 0?this.open:this.defaultOpen}ensureWidthInitialized(){this.hasAttribute("width")||(this.width===void 0||this.width===0)&&(this.width=this.defaultWidth)}onStateUpdated(){this.syncHostAttributes(),this.syncPaneWidthVar()}onMobileBreakpointUpdated(){this.bindMobileMediaQuery()}onMatchSettingsUpdated(){this.detachNavigationListeners(),this.attachNavigationListeners(),this.syncActiveLinks(!1)}syncActiveLinks(t=!1){if(!this.matchActive||typeof window>"u"||typeof window.location>"u")return!1;let e=window.location.pathname,r=!1;for(let l of this.querySelectorAll(ve)){let v=this.isLinkActive(l,e);l.classList.toggle("rui-sidebar__menu-button--active",v),v?(l.setAttribute("aria-current","page"),t&&!r&&(l.scrollIntoView({block:"nearest"}),r=!0)):l.removeAttribute("aria-current")}return r}isLinkActive(t,e){let r=t.pathname;return this.matchMode==="prefix"?e===r||e.startsWith(`${r}/`):r===e}attachNavigationListeners(){if(Ze||!this.isConnected||!this.matchActive||typeof window>"u"||typeof window.addEventListener!="function")return;let t=()=>this.syncActiveLinks(!1);if(window.addEventListener("popstate",t),this.navigationCleanups.push(()=>window.removeEventListener("popstate",t)),typeof document<"u"&&typeof document.addEventListener=="function")for(let e of ft(this.navigationEvents))document.addEventListener(e,t),this.navigationCleanups.push(()=>document.removeEventListener(e,t))}detachNavigationListeners(){for(let t of this.navigationCleanups)t();this.navigationCleanups=[]}unbindMobileMediaQuery(){this.mediaQuery?.removeEventListener("change",this.mediaListener),this.mediaQuery=null}bindMobileMediaQuery(){if(this.unbindMobileMediaQuery(),this.mobileBreakpoint<=0||!ai()){this.setMobile(!1);return}this.mediaQuery=window.matchMedia(`(max-width: ${this.mobileBreakpoint-1}px)`),this.mediaQuery.addEventListener("change",this.mediaListener),this.setMobile(this.mediaQuery.matches)}setMobile(t){if(t===this.isMobile)return;let e=this.isMobile&&!t;this.isMobile=t,e&&this.collapsible==="off"&&!this.isOpen()?this.setOpen(!0):this.syncPaneWidthVar(),this.mobileChangeEvent.emit({mobile:t})}clampWidth(t){return Math.min(this.maxWidth,Math.max(this.minWidth,t))}paneWidth(){return this.isOpen()?this.width&&this.width>0?this.width:this.defaultWidth:this.isMobile?0:this.collapsible==="icon"?Ne:0}syncPaneWidthVar(t=this.paneWidth()){let e=this.rootTarget;e&&e.style.setProperty("--rui-sidebar-pane-width",`${t}px`),this.paneTarget&&(this.paneTarget.style.removeProperty("width"),this.paneTarget.style.removeProperty("height")),this.setAttribute("data-pane-width",String(t))}applyWidth(t,e){let r=this.clampWidth(t);this.width=r,this.syncPaneWidthVar(r),e&&this.resizeEvent.emit({width:r})}toggle(){this.setOpen(!this.isOpen())}setOpen(t){let e=this.isOpen();if(t===e){this.syncPaneWidthVar();return}this.open=t;let r=t?"expanded":"collapsed";this.setAttribute("data-state",r),this.syncPaneWidthVar(),this.toggleEvent.emit({open:t,state:r})}beginDrag(t){if(t.button!==0||this.collapsible!=="off")return;this.dragging=!0;let e=ct(this.side);this.dragStartCoord=e?t.clientX:t.clientY,this.dragStartSize=this.paneWidth(),this.handleTarget?.setPointerCapture(t.pointerId),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerUp)}endDrag(){this.dragging&&(this.dragging=!1,document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerUp))}onPointerMove(t){if(!this.dragging)return;let r=ct(this.side)?t.clientX:t.clientY,l=this.side==="right"?this.dragStartCoord-r:r-this.dragStartCoord;this.applyWidth(this.dragStartSize+l,!0)}onPointerUp(){this.endDrag()}onHandlePointerDown(t){t.preventDefault(),this.beginDrag(t)}onHandleKeydown(t){let e=t,r=this.paneWidth(),l=ct(this.side),v=l?"ArrowLeft":"ArrowUp",h=l?"ArrowRight":"ArrowDown",s=r;if(e.key===v)s=r-(e.shiftKey?_e:ge);else if(e.key===h)s=r+(e.shiftKey?_e:ge);else if(e.key==="Home")s=this.minWidth;else if(e.key==="End")s=this.maxWidth;else return;t.preventDefault(),this.applyWidth(s,!0)}onScrimClick(){this.isMobile&&this.setOpen(!1)}onMenuLinkClick(){this.isMobile&&this.setOpen(!1)}onHostKeydown(t){let e=t;if(e.key==="Escape"&&this.isMobile&&this.isOpen()){e.preventDefault(),this.setOpen(!1);return}ni(e)&&e.key.toLowerCase()===ri&&(e.preventDefault(),this.toggle())}render(){let t=ct(this.side),e=this.isOpen(),r=e?"expanded":"collapsed",l=this.resizable&&this.collapsible==="off"&&e&&!this.isMobile,v=`${this.paneWidth()}px`,h=e||!this.isMobile&&this.collapsible==="icon"?void 0:"";return Ye("div",{class:"rui-sidebar",style:{"--rui-sidebar-pane-width":v},"data-ref":"root","data-state":r,"data-collapsible":this.collapsible,"data-variant":this.variant,"data-side":this.side,"data-mobile":String(this.isMobile),children:[st("button",{"data-ref":"scrim",type:"button",class:"rui-sidebar__scrim",tabindex:-1,"aria-label":"Close sidebar",hidden:!this.isMobile||!e,"on:click":this.onScrimClick}),st("div",{"data-ref":"pane",class:"rui-sidebar__pane","data-side":this.side,"data-variant":this.variant,"aria-label":this.$.label,inert:h,children:st("slot",{})}),l?st("div",{"data-ref":"handle",class:"rui-sidebar__handle",role:"separator",tabindex:0,"aria-orientation":t?"vertical":"horizontal","aria-valuenow":this.paneWidth(),"aria-valuemin":this.minWidth,"aria-valuemax":this.maxWidth,"aria-label":`${this.label} resize handle`,"on:pointerdown":this.onHandlePointerDown,"on:keydown":this.onHandleKeydown,children:st("span",{class:"rui-sidebar__handle-grip","aria-hidden":"true"})}):null]})}static{gt()}};import{jsx as T,jsxs as lt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Ve,customElement as ui,onEvent as ci,onUpdated as hi,prop as dt,query as pi,state as bi}from"@ecopages/radiant";var we,xe,Me,Ee,Ae,ke,Le,Te,Re,We,Ce,Oe,De,ze,Be,Ie;function si(i,t,e,r,l,v){var h,s,C,R,A,W,k,U=Symbol.metadata||Symbol.for("Symbol.metadata"),q=Object.defineProperty,P=Object.create,Y=[P(null),P(null)],X=t.length;function z(n,f,p){return function(a,o){f&&(o=a,a=i);for(var m=0;m<n.length;m++)o=n[m].apply(a,p?[o]:[]);return p?o:a}}function y(n,f,p,a){if(typeof n!="function"&&(a||n!==void 0))throw new TypeError(f+" must "+(p||"be")+" a function"+(a?"":" or undefined"));return n}function J(n,f,p,a,o,m,E,b,g,_,F){function H(u){if(!F(u))throw new TypeError("Attempted to access private element on non-instance")}var K=[].concat(f[0]),N=f[3],Q=!E,O=o===1,tt=o===3,et=o===4,B=o===2;function I(u,L,nt){return function(V,at){return L&&(at=V,V=n),nt&&nt(V),d[u].call(V,at)}}if(!Q){var d={},$=[],S=tt?"get":et||O?"set":"value";if(g?(_||O?d={get:je(function(){return N(this)},a,"get"),set:function(u){f[4](this,u)}}:d[S]=N,_||je(d[S],a,B?"":S)):_||(d=Object.getOwnPropertyDescriptor(n,a)),!_&&!g){if((s=Y[+b][a])&&(s^o)!==7)throw Error("Decorating two elements with the same name ("+d[S].name+") is not supported yet");Y[+b][a]=o<3?1:o}}for(var c=n,j=K.length-1;j>=0;j-=p?2:1){var it=y(K[j],"A decorator","be",!0),rt=p?K[j-1]:void 0,G={},D={kind:["field","accessor","method","getter","setter","class"][o],name:a,metadata:h,addInitializer:function(u,L){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");y(L,"An initializer","be",!0),m.push(L)}.bind(null,G)};if(Q)s=it.call(rt,c,D),G.v=1,y(s,"class decorators","return")&&(c=s);else if(D.static=b,D.private=g,s=D.access={has:g?F.bind():function(u){return a in u}},et||(s.get=g?B?function(u){return H(u),d.value}:I("get",0,H):function(u){return u[a]}),B||tt||(s.set=g?I("set",0,H):function(u,L){u[a]=L}),c=it.call(rt,O?{get:d.get,set:d.set}:d[S],D),G.v=1,O){if(typeof c=="object"&&c)(s=y(c.get,"accessor.get"))&&(d.get=s),(s=y(c.set,"accessor.set"))&&(d.set=s),(s=y(c.init,"accessor.init"))&&$.unshift(s);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(c,(_?"field":"method")+" decorators","return")&&(_?$.unshift(c):d[S]=c)}return o<2&&E.push(z($,b,1),z(m,b,0)),_||Q||(g?O?E.splice(-1,0,I("get",b),I("set",b)):E.push(B?d[S]:y.call.bind(d[S])):q(n,a,d)),c}function Z(n){return q(n,U,{configurable:!0,enumerable:!0,value:h})}return v!==void 0&&(h=v[U]),h=P(h??null),A=[],W=function(n){n&&A.push(z(n))},k=function(n,f){for(var p=0;p<e.length;p++){var a=e[p],o=a[1],m=7&o;if((8&o)==n&&!m==f){var E=a[2],b=!!a[3],g=16&o;J(n?i:i.prototype,a,g,b?"#"+E:oi(E),m,m<2?[]:n?R=R||[]:C=C||[],A,!!n,b,f,n&&b?function(_){return di(_)===i}:l)}}},k(8,0),k(0,0),k(8,1),k(0,1),W(C),W(R),s=A,X||Z(i),{e:s,get c(){var n=[];return X&&[Z(i=J(i,[t],r,i.name,5,n)),z(n,1)]}}}function oi(i){var t=li(i,"string");return typeof t=="symbol"?t:t+""}function li(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var r=e.call(i,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function je(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function di(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var Pe,Ue=class extends Ve{static{({e:[Me,Ee,Ae,ke,Le,Te,Re,We,Ce,Oe,De,ze,Be,Ie,we],c:[Pe,xe]}=si(this,[ui("rui-sidebar-trigger")],[[dt({type:String,defaultValue:""}),0,"controls"],[dt({type:String,attribute:"button-label",defaultValue:"Toggle sidebar"}),0,"buttonLabel"],[dt({type:String,reflect:!0,defaultValue:""}),0,"placement"],[dt({type:String,defaultValue:"ghost"}),0,"variant"],[dt({type:String,defaultValue:"md"}),0,"size"],[pi({ref:"button"}),0,"buttonTarget"],[bi,0,"sidebarState"],[hi(["controls","buttonLabel","placement"]),2,"onControlsUpdated"],[ci({selector:'button[data-ref="button"]',type:"click"}),2,"onButtonClick"]],0,void 0,Ve))}controls=(we(this),Me(this));buttonLabel=(Ee(this),Ae(this));placement=(ke(this),Le(this));variant=(Te(this),Re(this));size=(We(this),Ce(this));buttonTarget=(Oe(this),De(this));sidebarState=(ze(this),Be(this,"expanded"));sidebarListener=(Ie(this),null);attachedSidebar=null;connectedCallback(){super.connectedCallback(),this.syncWithSidebar(),queueMicrotask(()=>this.syncWithSidebar())}disconnectedCallback(){this.detachFromSidebar(),super.disconnectedCallback()}onControlsUpdated(){this.detachFromSidebar(),this.syncWithSidebar(),this.applyState(this.attachedSidebar?this.readState(this.attachedSidebar):"expanded")}resolveSidebar(){let t=this.controls?.trim();if(t){let r=document.getElementById(t);if(r)return r}let e=this.closest("rui-sidebar");return e?.id?e:null}syncWithSidebar(){let t=this.resolveSidebar();if(t===this.attachedSidebar){t&&this.applyState(this.readState(t));return}this.detachFromSidebar(),t&&(this.attachedSidebar=t,this.sidebarListener=e=>{let r=e.detail;this.applyState(r.state)},t.addEventListener("rui-sidebar-toggle",this.sidebarListener),this.applyState(this.readState(t)))}detachFromSidebar(){this.attachedSidebar&&this.sidebarListener&&this.attachedSidebar.removeEventListener("rui-sidebar-toggle",this.sidebarListener),this.attachedSidebar=null,this.sidebarListener=null}readState(t){return t.getAttribute("data-state")??"expanded"}resolvedPlacement(){if(this.classList.contains("rui-sidebar-trigger-placement--header"))return"header";if(this.classList.contains("rui-sidebar-trigger-placement--inset"))return"inset";let t=this.getAttribute("data-placement");return t==="header"||t==="inset"?t:this.placement}resolvedButtonLabel(t=this.sidebarState){if(this.resolvedPlacement()==="inset")return t==="expanded"?"Close navigation":"Open navigation";let e=this.getAttribute("data-button-label")?.trim();if(e)return e;let r=this.getAttribute("button-label")?.trim();return r||this.buttonLabel||"Toggle sidebar"}applyState(t){this.sidebarState=t;let e=this.buttonTarget;if(!e)return;let r=this.resolveSidebar(),l=this.resolvedButtonLabel(t);e.setAttribute("aria-expanded",String(t==="expanded")),e.setAttribute("data-sidebar-state",t),e.setAttribute("aria-label",l),r?.id?e.setAttribute("aria-controls",r.id):this.controls&&e.setAttribute("aria-controls",this.controls)}onButtonClick(t){t.preventDefault(),t.stopPropagation();let e=this.resolveSidebar();e&&typeof e.toggle=="function"&&e.toggle()}placementClass(){return this.resolvedPlacement()==="header"?"rui-sidebar__trigger--header":this.resolvedPlacement()==="inset"?"rui-sidebar__trigger--inset":""}renderMenuIcon(t){return t==="expanded"?lt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--close",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[T("path",{d:"M18 6 6 18"}),T("path",{d:"m6 6 12 12"})]}):lt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--menu",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[T("path",{d:"M4 6h16"}),T("path",{d:"M4 12h16"}),T("path",{d:"M4 18h16"})]})}renderDefaultIcon(){let t=this.sidebarState,e=this.resolvedPlacement();return e==="inset"?T("span",{class:"rui-sidebar__trigger-icon","aria-hidden":"true",children:this.renderMenuIcon(t)}):lt("span",{class:"rui-sidebar__trigger-icon","aria-hidden":"true",children:[e==="header"||t==="expanded"?lt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--collapse",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[T("path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),T("path",{d:"M9 3v18"}),T("path",{d:"m14 15 3-3-3-3"})]}):null,e!=="header"&&t==="collapsed"?lt("svg",{class:"rui-sidebar__trigger-glyph rui-sidebar__trigger-glyph--expand",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:[T("path",{d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),T("path",{d:"M9 3v18"}),T("path",{d:"m14 9-3 3 3 3"})]}):null]})}render(){let e=this.resolveSidebar()?.id||this.controls||null,r=this.sidebarState,l=this.resolvedButtonLabel(r);return T("button",{"data-ref":"button",type:"button",class:`rui-button rui-button--${this.variant} rui-button--${this.size} rui-sidebar__trigger ${this.placementClass()}`.trim(),"data-sidebar-state":r,"aria-expanded":String(r==="expanded"),"aria-controls":e||null,"aria-label":l,children:this.renderDefaultIcon()})}static{xe()}};import{jsx as M,jsxs as ht}from"@ecopages/jsx/jsx-runtime";function x(...i){return i.filter(Boolean).join(" ")}function fi({layout:i="default",siteHeader:t,sidebar:e,children:r,class:l}){return i==="docs"?ht("div",{class:x("rui-sidebar-provider",l),"data-layout":i,children:[t?M("div",{class:"rui-sidebar-provider__site-header",children:t}):null,ht("div",{class:"rui-sidebar-provider__body",children:[e,r]})]}):ht("div",{class:x("rui-sidebar-provider",l),"data-layout":i,children:[e,r]})}function mi({children:i,class:t,"aria-label":e}){return M("div",{class:x("rui-sidebar__header",t),"aria-label":e,children:i})}function gi({children:i,class:t,"aria-label":e}){return M("div",{class:x("rui-sidebar__content",t),"aria-label":e,children:i})}function _i({children:i,class:t}){return M("div",{class:x("rui-sidebar__footer",t),children:i})}function vi({class:i,"aria-label":t}){return M("hr",{role:"separator","aria-orientation":"horizontal","aria-label":t,class:x("rui-sidebar__separator",i)})}function yi({children:i,class:t,"aria-label":e}){return M("section",{class:x("rui-sidebar__group",t),"aria-label":e,children:i})}function He({children:i,class:t,id:e}){return M("h2",{id:e,class:x("rui-sidebar__group-label",t),children:i})}function Si({children:i,class:t,"aria-label":e}){return M("button",{type:"button","aria-label":e,class:x("rui-sidebar__group-action",t),children:i})}function wi({label:i,action:t,class:e}){return ht("div",{class:x("rui-sidebar__group-header",e),children:[M(He,{children:i}),t]})}function xi({children:i,class:t,"aria-label":e}){return M("ul",{role:"list",class:x("rui-sidebar__menu",t),"aria-label":e,children:i})}function Mi({children:i,class:t}){return M("li",{class:x("rui-sidebar__menu-item",t),children:i})}function Ke({children:i,class:t,isActive:e,as:r,href:l,type:v="button",tooltip:h,disabled:s,onClick:C}){let R=x("rui-sidebar__menu-button",e&&"rui-sidebar__menu-button--active",t),A=h,W=typeof i=="string"?void 0:h;return r==="button"||!r&&!l?M("button",{type:v,class:R,"aria-current":e?"page":void 0,disabled:s,title:A,"aria-label":W,"on:click":C,children:i}):M("a",{href:l,class:R,"aria-current":e?"page":void 0,title:A,"aria-label":W,children:i})}function Ei(i){let{class:t,...e}=i;return M(Ke,{class:x("rui-sidebar__menu-action",t),...e})}function Ai({children:i,class:t,id:e}){return M("main",{id:e,class:x("rui-sidebar__inset",t),children:i})}function ki({children:i,id:t,defaultOpen:e,mobileDefaultOpen:r,open:l,defaultWidth:v,width:h,resizable:s,mobileBreakpoint:C,matchActive:R,matchMode:A,scrollActiveOnMount:W,navigationEvents:k,...U}){return M("rui-sidebar",{...U,id:t,"prop:defaultOpen":e,"prop:mobileDefaultOpen":r,"prop:open":l,"prop:defaultWidth":v,"prop:width":h,"prop:resizable":s,"prop:mobileBreakpoint":C,"prop:matchActive":R,"prop:matchMode":A,"prop:scrollActiveOnMount":W,"prop:navigationEvents":k,children:i})}function Li({children:i,class:t,controls:e,triggerLabel:r,placement:l,variant:v,size:h,...s}){return M("rui-sidebar-trigger",{...s,class:x(t,l&&`rui-sidebar-trigger-placement--${l}`),"prop:controls":e,"prop:buttonLabel":r??"Toggle sidebar","attr:data-button-label":r??"Toggle sidebar","prop:placement":l,variant:v,size:h,children:i})}export{ki as RuiSidebar,gi as RuiSidebarContent,Se as RuiSidebarElement,_i as RuiSidebarFooter,yi as RuiSidebarGroup,Si as RuiSidebarGroupAction,wi as RuiSidebarGroupHeader,He as RuiSidebarGroupLabel,mi as RuiSidebarHeader,Ai as RuiSidebarInset,xi as RuiSidebarMenu,Ei as RuiSidebarMenuAction,Ke as RuiSidebarMenuButton,Mi as RuiSidebarMenuItem,fi as RuiSidebarProvider,vi as RuiSidebarSeparator,Li as RuiSidebarTrigger,Pe as RuiSidebarTriggerElement};
2
2
  //# sourceMappingURL=index.js.map