@vielzeug/refine 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/README.md +5 -18
  2. package/dist/accordion-item.cjs +1 -1
  3. package/dist/accordion-item.cjs.map +1 -1
  4. package/dist/accordion-item.js +1 -1
  5. package/dist/accordion-item.js.map +1 -1
  6. package/dist/accordion.cjs.map +1 -1
  7. package/dist/accordion.js.map +1 -1
  8. package/dist/async.cjs +1 -1
  9. package/dist/async.cjs.map +1 -1
  10. package/dist/async.js +3 -3
  11. package/dist/async.js.map +1 -1
  12. package/dist/box.cjs.map +1 -1
  13. package/dist/box.js.map +1 -1
  14. package/dist/card.cjs +1 -1
  15. package/dist/card.cjs.map +1 -1
  16. package/dist/card.js +3 -3
  17. package/dist/card.js.map +1 -1
  18. package/dist/chat-message.cjs +1 -1
  19. package/dist/chat-message.cjs.map +1 -1
  20. package/dist/chat-message.js +1 -1
  21. package/dist/chat-message.js.map +1 -1
  22. package/dist/checkbox-group.cjs +1 -1
  23. package/dist/checkbox-group.cjs.map +1 -1
  24. package/dist/checkbox-group.js +1 -1
  25. package/dist/checkbox-group.js.map +1 -1
  26. package/dist/combobox.cjs +10 -8
  27. package/dist/combobox.cjs.map +1 -1
  28. package/dist/combobox.js +62 -51
  29. package/dist/combobox.js.map +1 -1
  30. package/dist/command-palette.cjs +1 -1
  31. package/dist/command-palette.cjs.map +1 -1
  32. package/dist/command-palette.js +6 -2
  33. package/dist/command-palette.js.map +1 -1
  34. package/dist/content/card/card.css.cjs +1 -1
  35. package/dist/content/card/card.css.cjs.map +1 -1
  36. package/dist/content/card/card.css.js +1 -1
  37. package/dist/content/card/card.css.js.map +1 -1
  38. package/dist/content/card/card.d.ts +2 -2
  39. package/dist/content/card/card.d.ts.map +1 -1
  40. package/dist/content/index.d.ts +2 -0
  41. package/dist/content/index.d.ts.map +1 -1
  42. package/dist/content/list/list-item.css.cjs +1 -1
  43. package/dist/content/list/list-item.css.cjs.map +1 -1
  44. package/dist/content/list/list-item.css.js +1 -1
  45. package/dist/content/list/list-item.css.js.map +1 -1
  46. package/dist/content/list/list-item.d.ts +9 -0
  47. package/dist/content/list/list-item.d.ts.map +1 -1
  48. package/dist/content/pagination/pagination.css.cjs +1 -1
  49. package/dist/content/pagination/pagination.css.cjs.map +1 -1
  50. package/dist/content/pagination/pagination.css.js +1 -1
  51. package/dist/content/pagination/pagination.css.js.map +1 -1
  52. package/dist/content/stats/stats.css.cjs +2 -0
  53. package/dist/content/stats/stats.css.cjs.map +1 -0
  54. package/dist/content/stats/stats.css.js +6 -0
  55. package/dist/content/stats/stats.css.js.map +1 -0
  56. package/dist/content/stats/stats.d.ts +72 -0
  57. package/dist/content/stats/stats.d.ts.map +1 -0
  58. package/dist/core/auto-resize.cjs +1 -1
  59. package/dist/core/auto-resize.cjs.map +1 -1
  60. package/dist/core/auto-resize.js +1 -1
  61. package/dist/core/auto-resize.js.map +1 -1
  62. package/dist/core/field-base.cjs +1 -1
  63. package/dist/core/field-base.cjs.map +1 -1
  64. package/dist/core/field-base.d.ts +1 -1
  65. package/dist/core/field-base.js +1 -1
  66. package/dist/core/field-base.js.map +1 -1
  67. package/dist/core/nav.cjs +1 -1
  68. package/dist/core/nav.cjs.map +1 -1
  69. package/dist/core/nav.d.ts +4 -1
  70. package/dist/core/nav.d.ts.map +1 -1
  71. package/dist/core/nav.js +41 -28
  72. package/dist/core/nav.js.map +1 -1
  73. package/dist/core/option-list.cjs +1 -1
  74. package/dist/core/option-list.cjs.map +1 -1
  75. package/dist/core/option-list.d.ts.map +1 -1
  76. package/dist/core/option-list.js +30 -28
  77. package/dist/core/option-list.js.map +1 -1
  78. package/dist/core/slider.cjs +1 -1
  79. package/dist/core/slider.cjs.map +1 -1
  80. package/dist/core/slider.js +1 -1
  81. package/dist/core/slider.js.map +1 -1
  82. package/dist/core/spinner.cjs +1 -1
  83. package/dist/core/spinner.cjs.map +1 -1
  84. package/dist/core/spinner.js +1 -1
  85. package/dist/core/spinner.js.map +1 -1
  86. package/dist/custom-elements.json +5471 -4977
  87. package/dist/datagrid.cjs +219 -199
  88. package/dist/datagrid.cjs.map +1 -1
  89. package/dist/datagrid.js +415 -302
  90. package/dist/datagrid.js.map +1 -1
  91. package/dist/disclosure/accordion/accordion.css.cjs +1 -1
  92. package/dist/disclosure/accordion/accordion.css.cjs.map +1 -1
  93. package/dist/disclosure/accordion/accordion.css.js +1 -1
  94. package/dist/disclosure/accordion/accordion.css.js.map +1 -1
  95. package/dist/disclosure/accordion/accordion.d.ts +5 -5
  96. package/dist/disclosure/accordion/accordion.d.ts.map +1 -1
  97. package/dist/disclosure/accordion-item/accordion-item.css.cjs +1 -1
  98. package/dist/disclosure/accordion-item/accordion-item.css.cjs.map +1 -1
  99. package/dist/disclosure/accordion-item/accordion-item.css.js +1 -1
  100. package/dist/disclosure/accordion-item/accordion-item.css.js.map +1 -1
  101. package/dist/disclosure/accordion-item/accordion-item.d.ts +3 -3
  102. package/dist/disclosure/accordion-item/accordion-item.d.ts.map +1 -1
  103. package/dist/disclosure/tab-item/tab-item.css.cjs +1 -1
  104. package/dist/disclosure/tab-item/tab-item.css.cjs.map +1 -1
  105. package/dist/disclosure/tab-item/tab-item.css.js +1 -1
  106. package/dist/disclosure/tab-item/tab-item.css.js.map +1 -1
  107. package/dist/disclosure/tab-item/tab-item.d.ts +6 -3
  108. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -1
  109. package/dist/disclosure/tabs/tabs.css.cjs +1 -1
  110. package/dist/disclosure/tabs/tabs.css.cjs.map +1 -1
  111. package/dist/disclosure/tabs/tabs.css.js +1 -1
  112. package/dist/disclosure/tabs/tabs.css.js.map +1 -1
  113. package/dist/disclosure/tabs/tabs.d.ts +9 -5
  114. package/dist/disclosure/tabs/tabs.d.ts.map +1 -1
  115. package/dist/drawer.cjs +1 -1
  116. package/dist/drawer.cjs.map +1 -1
  117. package/dist/drawer.js +1 -1
  118. package/dist/drawer.js.map +1 -1
  119. package/dist/feedback/toast/toast.d.ts.map +1 -1
  120. package/dist/file-input.cjs +1 -1
  121. package/dist/file-input.cjs.map +1 -1
  122. package/dist/file-input.js +2 -2
  123. package/dist/file-input.js.map +1 -1
  124. package/dist/frameworks/elements.d.ts +4 -85
  125. package/dist/frameworks/react.d.ts +5 -4
  126. package/dist/frameworks/vue.d.ts +4 -4
  127. package/dist/grid.cjs +2 -2
  128. package/dist/grid.cjs.map +1 -1
  129. package/dist/grid.js +21 -18
  130. package/dist/grid.js.map +1 -1
  131. package/dist/icon.cjs +1 -1
  132. package/dist/icon.cjs.map +1 -1
  133. package/dist/icon.js +1 -1
  134. package/dist/icon.js.map +1 -1
  135. package/dist/input.cjs +5 -4
  136. package/dist/input.cjs.map +1 -1
  137. package/dist/input.js +14 -8
  138. package/dist/input.js.map +1 -1
  139. package/dist/inputs/combobox/combobox-options.cjs +1 -1
  140. package/dist/inputs/combobox/combobox-options.cjs.map +1 -1
  141. package/dist/inputs/combobox/combobox-options.d.ts.map +1 -1
  142. package/dist/inputs/combobox/combobox-options.js +1 -0
  143. package/dist/inputs/combobox/combobox-options.js.map +1 -1
  144. package/dist/inputs/combobox/combobox.css.cjs +1 -1
  145. package/dist/inputs/combobox/combobox.css.cjs.map +1 -1
  146. package/dist/inputs/combobox/combobox.css.js +1 -1
  147. package/dist/inputs/combobox/combobox.css.js.map +1 -1
  148. package/dist/inputs/combobox/combobox.d.ts +13 -1
  149. package/dist/inputs/combobox/combobox.d.ts.map +1 -1
  150. package/dist/inputs/combobox/combobox.types.d.ts +7 -0
  151. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -1
  152. package/dist/inputs/datagrid/datagrid-model.cjs +1 -1
  153. package/dist/inputs/datagrid/datagrid-model.cjs.map +1 -1
  154. package/dist/inputs/datagrid/datagrid-model.d.ts +17 -3
  155. package/dist/inputs/datagrid/datagrid-model.d.ts.map +1 -1
  156. package/dist/inputs/datagrid/datagrid-model.js +93 -70
  157. package/dist/inputs/datagrid/datagrid-model.js.map +1 -1
  158. package/dist/inputs/datagrid/datagrid.css.cjs +1 -1
  159. package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -1
  160. package/dist/inputs/datagrid/datagrid.css.js +1 -1
  161. package/dist/inputs/datagrid/datagrid.css.js.map +1 -1
  162. package/dist/inputs/datagrid/datagrid.d.ts +78 -36
  163. package/dist/inputs/datagrid/datagrid.d.ts.map +1 -1
  164. package/dist/inputs/file-input/file-input-upload.cjs +1 -1
  165. package/dist/inputs/file-input/file-input-upload.cjs.map +1 -1
  166. package/dist/inputs/file-input/file-input-upload.js +1 -1
  167. package/dist/inputs/file-input/file-input-upload.js.map +1 -1
  168. package/dist/inputs/index.d.ts +3 -4
  169. package/dist/inputs/index.d.ts.map +1 -1
  170. package/dist/inputs/input/input.css.cjs +1 -1
  171. package/dist/inputs/input/input.css.cjs.map +1 -1
  172. package/dist/inputs/input/input.css.js +1 -1
  173. package/dist/inputs/input/input.css.js.map +1 -1
  174. package/dist/inputs/input/input.d.ts +3 -0
  175. package/dist/inputs/input/input.d.ts.map +1 -1
  176. package/dist/inputs/select/select.css.cjs +1 -1
  177. package/dist/inputs/select/select.css.cjs.map +1 -1
  178. package/dist/inputs/select/select.css.js +1 -1
  179. package/dist/inputs/select/select.css.js.map +1 -1
  180. package/dist/inputs/select/select.d.ts +5 -0
  181. package/dist/inputs/select/select.d.ts.map +1 -1
  182. package/dist/inputs/shared/field-binding.cjs +1 -1
  183. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  184. package/dist/inputs/shared/field-binding.js +6 -6
  185. package/dist/inputs/shared/field-binding.js.map +1 -1
  186. package/dist/layout/box/box.css.cjs +1 -1
  187. package/dist/layout/box/box.css.cjs.map +1 -1
  188. package/dist/layout/box/box.css.js +1 -1
  189. package/dist/layout/box/box.css.js.map +1 -1
  190. package/dist/layout/box/box.d.ts +3 -3
  191. package/dist/layout/box/box.d.ts.map +1 -1
  192. package/dist/layout/grid/grid.d.ts.map +1 -1
  193. package/dist/layout/navbar/navbar.css.cjs +1 -1
  194. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  195. package/dist/layout/navbar/navbar.css.js +1 -1
  196. package/dist/layout/navbar/navbar.css.js.map +1 -1
  197. package/dist/layout/navbar/navbar.d.ts +3 -1
  198. package/dist/layout/navbar/navbar.d.ts.map +1 -1
  199. package/dist/layout/sidebar/sidebar.css.cjs +1 -1
  200. package/dist/layout/sidebar/sidebar.css.cjs.map +1 -1
  201. package/dist/layout/sidebar/sidebar.css.js +1 -1
  202. package/dist/layout/sidebar/sidebar.css.js.map +1 -1
  203. package/dist/layout/sidebar/sidebar.d.ts +8 -0
  204. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  205. package/dist/list-item.cjs +6 -5
  206. package/dist/list-item.cjs.map +1 -1
  207. package/dist/list-item.js +23 -17
  208. package/dist/list-item.js.map +1 -1
  209. package/dist/list.cjs +1 -1
  210. package/dist/list.cjs.map +1 -1
  211. package/dist/list.js +1 -1
  212. package/dist/list.js.map +1 -1
  213. package/dist/menu.cjs +1 -1
  214. package/dist/menu.cjs.map +1 -1
  215. package/dist/menu.js +7 -7
  216. package/dist/menu.js.map +1 -1
  217. package/dist/navbar.cjs +2 -2
  218. package/dist/navbar.cjs.map +1 -1
  219. package/dist/navbar.js +91 -87
  220. package/dist/navbar.js.map +1 -1
  221. package/dist/navigation-menu.cjs +1 -1
  222. package/dist/navigation-menu.cjs.map +1 -1
  223. package/dist/navigation-menu.js +2 -2
  224. package/dist/navigation-menu.js.map +1 -1
  225. package/dist/number-input.cjs +1 -1
  226. package/dist/number-input.cjs.map +1 -1
  227. package/dist/number-input.js +1 -1
  228. package/dist/number-input.js.map +1 -1
  229. package/dist/overlay/popover/popover.css.cjs +1 -1
  230. package/dist/overlay/popover/popover.css.cjs.map +1 -1
  231. package/dist/overlay/popover/popover.css.js +1 -1
  232. package/dist/overlay/popover/popover.css.js.map +1 -1
  233. package/dist/overlay/popover/popover.d.ts +1 -0
  234. package/dist/overlay/popover/popover.d.ts.map +1 -1
  235. package/dist/overlay/shared/use-dialog.cjs +1 -1
  236. package/dist/overlay/shared/use-dialog.cjs.map +1 -1
  237. package/dist/overlay/shared/use-dialog.js +1 -1
  238. package/dist/overlay/shared/use-dialog.js.map +1 -1
  239. package/dist/overlay/shared/use-floating-trigger.cjs +1 -1
  240. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -1
  241. package/dist/overlay/shared/use-floating-trigger.js +1 -1
  242. package/dist/overlay/shared/use-floating-trigger.js.map +1 -1
  243. package/dist/overlay/tooltip/tooltip.d.ts.map +1 -1
  244. package/dist/popover.cjs +1 -1
  245. package/dist/popover.cjs.map +1 -1
  246. package/dist/popover.js +6 -6
  247. package/dist/popover.js.map +1 -1
  248. package/dist/radio-group.cjs +1 -1
  249. package/dist/radio-group.cjs.map +1 -1
  250. package/dist/radio-group.js +1 -1
  251. package/dist/radio-group.js.map +1 -1
  252. package/dist/radio.cjs +1 -1
  253. package/dist/radio.cjs.map +1 -1
  254. package/dist/radio.js +15 -13
  255. package/dist/radio.js.map +1 -1
  256. package/dist/rating.cjs +1 -1
  257. package/dist/rating.cjs.map +1 -1
  258. package/dist/rating.js +2 -2
  259. package/dist/rating.js.map +1 -1
  260. package/dist/refine.cjs +373 -324
  261. package/dist/refine.cjs.map +1 -1
  262. package/dist/refine.iife.js +382 -333
  263. package/dist/refine.iife.js.map +1 -1
  264. package/dist/refine.js +417 -368
  265. package/dist/refine.js.map +1 -1
  266. package/dist/select.cjs +16 -14
  267. package/dist/select.cjs.map +1 -1
  268. package/dist/select.js +118 -112
  269. package/dist/select.js.map +1 -1
  270. package/dist/shared/types.d.ts +0 -2
  271. package/dist/shared/types.d.ts.map +1 -1
  272. package/dist/sidebar.cjs +28 -23
  273. package/dist/sidebar.cjs.map +1 -1
  274. package/dist/sidebar.js +143 -108
  275. package/dist/sidebar.js.map +1 -1
  276. package/dist/skeleton.cjs +1 -1
  277. package/dist/skeleton.cjs.map +1 -1
  278. package/dist/skeleton.js +11 -9
  279. package/dist/skeleton.js.map +1 -1
  280. package/dist/slider.cjs +1 -1
  281. package/dist/slider.cjs.map +1 -1
  282. package/dist/slider.js +21 -21
  283. package/dist/slider.js.map +1 -1
  284. package/dist/stats.cjs +18 -0
  285. package/dist/stats.cjs.map +1 -0
  286. package/dist/stats.js +88 -0
  287. package/dist/stats.js.map +1 -0
  288. package/dist/stepper.cjs +1 -1
  289. package/dist/stepper.cjs.map +1 -1
  290. package/dist/stepper.js +1 -1
  291. package/dist/stepper.js.map +1 -1
  292. package/dist/styles/mixins/animation.css.cjs +2 -0
  293. package/dist/styles/mixins/animation.css.cjs.map +1 -1
  294. package/dist/styles/mixins/animation.css.d.ts.map +1 -1
  295. package/dist/styles/mixins/animation.css.js +2 -0
  296. package/dist/styles/mixins/animation.css.js.map +1 -1
  297. package/dist/tab-item.cjs +1 -1
  298. package/dist/tab-item.cjs.map +1 -1
  299. package/dist/tab-item.js +3 -2
  300. package/dist/tab-item.js.map +1 -1
  301. package/dist/tabs.cjs +1 -1
  302. package/dist/tabs.cjs.map +1 -1
  303. package/dist/tabs.js +3 -1
  304. package/dist/tabs.js.map +1 -1
  305. package/dist/toast.cjs +8 -8
  306. package/dist/toast.cjs.map +1 -1
  307. package/dist/toast.js +32 -33
  308. package/dist/toast.js.map +1 -1
  309. package/dist/tooltip.cjs +1 -1
  310. package/dist/tooltip.cjs.map +1 -1
  311. package/dist/tooltip.js +2 -2
  312. package/dist/tooltip.js.map +1 -1
  313. package/dist/types/elements.d.ts +207 -0
  314. package/package.json +70 -62
package/dist/sidebar.js CHANGED
@@ -4,82 +4,95 @@ import r from "./layout/sidebar/sidebar.css.js";
4
4
  import i from "./layout/sidebar/sidebar-group.css.js";
5
5
  import a from "./layout/sidebar/sidebar-item.css.js";
6
6
  import { bind as o, createContext as s, define as c, getHost as l, html as u, inject as d, onCleanup as f, onMounted as p, prop as m, provide as h, useEmit as g, useSlots as _ } from "@vielzeug/ore";
7
- import { computed as v, signal as y, watch as b } from "@vielzeug/ripple";
8
- import { SentinelUnavailableError as x, createElementSize as S, createMediaQuery as C } from "@vielzeug/sentinel";
7
+ import { computed as v, fromSubscribable as y, signal as b, watch as x } from "@vielzeug/ripple";
8
+ import { SentinelUnavailableError as S, createElementSize as C, createMediaQuery as w } from "@vielzeug/sentinel";
9
9
  //#region src/layout/sidebar/sidebar.ts
10
- var w = (e) => {
10
+ var T = (e) => {
11
11
  let t = String(e ?? "").trim();
12
12
  if (!t) return;
13
13
  let n = /max-width\s*:\s*([0-9]+(?:\.[0-9]+)?)px/i.exec(t);
14
14
  if (!n) return;
15
15
  let r = Number.parseFloat(n[1]);
16
16
  return Number.isFinite(r) ? r : void 0;
17
- }, T = (e) => {
17
+ }, E = (e) => {
18
18
  let t = e.parentElement;
19
19
  for (; t?.tagName.toLowerCase() === "ore-grid-item";) t = t.parentElement;
20
20
  return t;
21
- }, E = (e) => {
22
- let t = T(e)?.clientWidth ?? 0;
21
+ }, D = (e) => {
22
+ let t = E(e)?.clientWidth ?? 0;
23
23
  return t > 0 ? t : e.offsetWidth;
24
- }, D = s("SidebarContext"), O = "ore-sidebar";
25
- c(O, {
24
+ }, O = () => {
25
+ let e = document.activeElement;
26
+ for (; e?.shadowRoot?.activeElement instanceof HTMLElement;) e = e.shadowRoot.activeElement;
27
+ return e;
28
+ }, k = s("SidebarContext"), A = "ore-sidebar";
29
+ c(A, {
26
30
  props: {
27
31
  "bottom-nav-at": m.string(),
32
+ "close-on-select": m.bool(!1),
33
+ "collapse-label": m.string("Collapse sidebar"),
28
34
  collapsed: m.bool(!1),
29
35
  collapsible: m.bool(!1),
30
36
  "container-breakpoints": m.bool(!1),
31
37
  "default-collapsed": m.bool(!1),
38
+ "expand-label": m.string("Expand sidebar"),
32
39
  label: m.string("Sidebar navigation"),
40
+ "mobile-close-label": m.string("Close sidebar"),
33
41
  responsive: m.string(),
34
42
  variant: m.string()
35
43
  },
36
44
  setup(e) {
37
- let t = l(), n = g(), r = _(), i = () => r.has("header").value, a = () => r.has("footer").value, s = () => r.has("logo").value, c = y(t.hasAttribute("collapsed")), d = y(c.value ? t.hasAttribute("collapsed") : e["default-collapsed"].value), m = y(!1), O = y(!1), k = y([]), A = y(!1), j = y(!1), M = y(w(e.responsive.value)), N = y(!!String(e.responsive.value ?? "").trim()), P = y(!1), F = y(!1), I = y(w(e["bottom-nav-at"].value)), L = y(!1), R = () => d.value, z = v(() => m.value ? "bottom-nav" : d.value ? "collapsed" : "default"), B = () => {
38
- let t = e["container-breakpoints"].value, n = t ? j.value : A.value || j.value, r = t ? F.value : P.value || F.value;
39
- O.value || (m.value = r), !r && !O.value && U(!1, "responsive"), N.value && H(n, "responsive");
40
- }, V = () => {
41
- let e = r.elements().value.filter((e) => e instanceof HTMLElement && e.tagName.toLowerCase() === "ore-sidebar-item").map((e, t) => {
42
- let n = e.querySelector(":scope > [slot=\"icon\"]") ?? e.querySelector("[slot=\"icon\"]"), r = n?.tagName.toLowerCase() === "ore-icon" ? n.getAttribute("name") : null, i = n?.querySelector("ore-icon")?.getAttribute("name") ?? null, a = (e.textContent ?? "").trim();
45
+ let t = l(), n = g(), r = _(), i = () => r.has("header").value, a = () => r.has("footer").value, s = () => r.has("logo").value, c = b(t.hasAttribute("collapsed")), d = b(c.value ? t.hasAttribute("collapsed") : e["default-collapsed"].value), m = b(!1), A = b(!1), j = b([]), M = b(!1), N = b(!1), P = b(T(e.responsive.value)), F = b(!!String(e.responsive.value ?? "").trim()), I = b(!1), L = b(!1), R = b(T(e["bottom-nav-at"].value)), z = b(!1), B = null, V = () => d.value, H = v(() => m.value ? "bottom-nav" : d.value ? "collapsed" : "default"), U = () => {
46
+ let t = e["container-breakpoints"].value, n = t ? N.value : M.value || N.value, r = t ? L.value : I.value || L.value;
47
+ A.value || (m.value = r), !r && !A.value && K(!1, "responsive"), F.value && G(n, "responsive");
48
+ }, W = () => {
49
+ let e = r.elements().value.filter((e) => e instanceof HTMLElement && e.tagName.toLowerCase() === "ore-sidebar-item"), n = [...t.querySelectorAll("ore-sidebar-item[bottom-nav]")], i = (n.length > 0 ? n : e).map((e, t) => {
50
+ let n = e, r = n.querySelector(":scope > [slot=\"icon\"]") ?? n.querySelector("[slot=\"icon\"]"), i = r?.tagName.toLowerCase() === "ore-icon" ? r.getAttribute("name") : null, a = r?.querySelector("ore-icon")?.getAttribute("name") ?? null, o = (n.textContent ?? "").trim();
43
51
  return {
44
- active: e.hasAttribute("active"),
45
- disabled: e.hasAttribute("disabled"),
46
- href: e.getAttribute("href") ?? void 0,
47
- iconName: r ?? i ?? void 0,
48
- label: a || `Item ${t + 1}`,
49
- source: e
52
+ active: n.hasAttribute("active"),
53
+ disabled: n.hasAttribute("disabled"),
54
+ href: n.getAttribute("href") ?? void 0,
55
+ iconName: i ?? a ?? void 0,
56
+ label: n.getAttribute("bottom-nav-label")?.trim() || o || `Item ${t + 1}`,
57
+ source: n
50
58
  };
51
59
  });
52
- k.value = e;
60
+ j.value = i;
53
61
  };
54
- h(D, {
62
+ h(k, {
63
+ closeMobile: () => K(!1, "toggle"),
64
+ closeOnSelect: e["close-on-select"],
55
65
  collapsed: v(() => !m.value && d.value),
56
- mobileOpen: v(() => m.value && O.value),
57
- mode: z,
66
+ mobileOpen: v(() => m.value && A.value),
67
+ mode: H,
58
68
  variant: e.variant
59
69
  });
60
- let H = (e, t) => {
61
- R() !== e && (c.value || (d.value = e), n("collapsed-change", {
70
+ let G = (e, t) => {
71
+ V() !== e && (c.value || (d.value = e), n("collapsed-change", {
62
72
  collapsed: e,
63
73
  source: t
64
74
  }));
65
- }, U = (e, t) => {
66
- let r = !!e;
67
- if (r && !m.value && (m.value = !0), !m.value && !r) {
68
- O.value &&= !1;
75
+ }, K = (e, r) => {
76
+ let i = !!e;
77
+ if (i && !m.value && (m.value = !0), !m.value && !i) {
78
+ A.value &&= !1;
69
79
  return;
70
80
  }
71
- O.value !== r && (O.value = r, r || B(), n("mobile-open-change", {
72
- open: r,
73
- source: t
81
+ A.value !== i && (i && (B = O()), A.value = i, i ? queueMicrotask(() => t.shadowRoot?.querySelector("nav")?.focus()) : (U(), queueMicrotask(() => {
82
+ B?.isConnected && B.focus(), B = null;
83
+ })), n("mobile-open-change", {
84
+ open: i,
85
+ source: r
74
86
  }));
75
- }, W = () => {
76
- H(!R(), "toggle");
77
- }, G = t;
78
- return G.setCollapsed = (e) => H(!!e, "api"), G.toggle = W, G.openMobile = () => U(!0, "api"), G.closeMobile = () => U(!1, "api"), G.toggleMobile = () => U(!O.value, "toggle"), o({ attr: {
87
+ }, q = () => {
88
+ G(!V(), "toggle");
89
+ }, J = t;
90
+ return J.setCollapsed = (e) => G(!!e, "api"), J.toggle = q, J.openMobile = () => K(!0, "api"), J.closeMobile = () => K(!1, "api"), J.toggleMobile = () => K(!A.value, "toggle"), o({ attr: {
79
91
  "data-bottom-nav": () => m.value ? !0 : void 0,
80
- "data-collapsed": () => R() && !m.value ? !0 : void 0,
81
- "data-mobile-open": () => m.value && O.value ? !0 : void 0,
82
- "data-preview-mode": () => L.value ? !0 : void 0
92
+ "data-collapsed": () => V() && !m.value ? !0 : void 0,
93
+ "data-has-logo": () => s() ? !0 : void 0,
94
+ "data-mobile-open": () => m.value && A.value ? !0 : void 0,
95
+ "data-preview-mode": () => z.value ? !0 : void 0
83
96
  } }), p(() => {
84
97
  t.setAttribute("data-no-transition", "");
85
98
  let n = !1, i = () => {
@@ -87,88 +100,101 @@ c(O, {
87
100
  };
88
101
  requestAnimationFrame(() => requestAnimationFrame(i));
89
102
  let a, o, s = /* @__PURE__ */ new Map(), l = new MutationObserver(() => {
90
- !t.hasAttribute("collapsed") && !c.value || (c.value = !0, d.value = t.hasAttribute("collapsed"));
103
+ (t.hasAttribute("collapsed") || c.value) && (c.value = !0, d.value = t.hasAttribute("collapsed"));
91
104
  });
92
105
  l.observe(t, {
93
106
  attributeFilter: ["collapsed"],
94
107
  attributes: !0
95
- }), b(e.responsive, (n) => {
108
+ });
109
+ let u = (e) => {
110
+ e.key === "Escape" && A.value && (e.preventDefault(), K(!1, "toggle"));
111
+ };
112
+ t.addEventListener("keydown", u), x(e.responsive, (n) => {
96
113
  a?.(), a = void 0;
97
114
  let r = String(n ?? "").trim();
98
- N.value = !!r, M.value = w(r), A.value = !1;
99
- let i = E(t);
100
- if (j.value = i > 0 && M.value != null && i <= M.value, B(), !(e["container-breakpoints"].value && M.value != null) && r) try {
101
- let e = C(r), t = (e) => {
102
- e && (A.value = e.matches, B());
115
+ F.value = !!r, P.value = T(r), M.value = !1;
116
+ let i = D(t);
117
+ if (N.value = i > 0 && P.value != null && i <= P.value, U(), !(e["container-breakpoints"].value && P.value != null) && r) try {
118
+ let e = w(r), t = (e) => {
119
+ e && (M.value = e.matches, U());
103
120
  };
104
- t(e.value);
105
- let n = b(e, t);
121
+ t(e.getSnapshot());
122
+ let n = x(y(e, { signal: e.disposalSignal }), t);
106
123
  a = () => {
107
124
  n.dispose(), e.dispose();
108
125
  };
109
126
  } catch (e) {
110
- if (!(e instanceof x)) throw e;
127
+ if (!(e instanceof S)) throw e;
111
128
  }
112
- }, { immediate: !0 }), b(e["bottom-nav-at"], (n) => {
129
+ }, { immediate: !0 }), x(e["bottom-nav-at"], (n) => {
113
130
  o?.(), o = void 0;
114
131
  let r = String(n ?? "").trim();
115
- I.value = w(r), P.value = !1;
116
- let i = E(t);
117
- if (F.value = i > 0 && I.value != null && i <= I.value, B(), !(e["container-breakpoints"].value && I.value != null) && r) try {
118
- let e = C(r), t = (e) => {
119
- e && (P.value = e.matches, B());
132
+ R.value = T(r), I.value = !1;
133
+ let i = D(t);
134
+ if (L.value = i > 0 && R.value != null && i <= R.value, U(), !(e["container-breakpoints"].value && R.value != null) && r) try {
135
+ let e = w(r), t = (e) => {
136
+ e && (I.value = e.matches, U());
120
137
  };
121
- t(e.value);
122
- let n = b(e, t);
138
+ t(e.getSnapshot());
139
+ let n = x(y(e, { signal: e.disposalSignal }), t);
123
140
  o = () => {
124
141
  n.dispose(), e.dispose();
125
142
  };
126
143
  } catch (e) {
127
- if (!(e instanceof x)) throw e;
144
+ if (!(e instanceof S)) throw e;
128
145
  }
129
146
  }, { immediate: !0 });
130
- let u = typeof ResizeObserver == "function" ? (() => {
131
- let e = S(t);
147
+ let p = typeof ResizeObserver == "function" ? (() => {
148
+ let e = C(t);
132
149
  f(() => e.dispose());
133
- let n = t.parentElement, r = T(t), a = n ? S(n) : void 0, o = r && r !== n ? S(r) : void 0;
134
- a && f(() => a.dispose()), o && f(() => o.dispose());
135
- let s;
136
- return b(v(() => [
137
- e.value?.width,
138
- e.value?.height,
139
- a?.value?.width,
140
- a?.value?.height,
141
- o?.value?.width,
142
- o?.value?.height
150
+ let n = y(e, { signal: e.disposalSignal }), r = t.parentElement, a = E(t), o = r ? C(r) : void 0, s = a && a !== r ? C(a) : void 0;
151
+ o && f(() => o.dispose()), s && f(() => s.dispose());
152
+ let c = o ? y(o, { signal: o.disposalSignal }) : void 0, l = s ? y(s, { signal: s.disposalSignal }) : void 0, u;
153
+ return x(v(() => [
154
+ n.value?.width,
155
+ n.value?.height,
156
+ c?.value?.width,
157
+ c?.value?.height,
158
+ l?.value?.width,
159
+ l?.value?.height
143
160
  ]), () => {
144
- s !== void 0 && cancelAnimationFrame(s), s = requestAnimationFrame(() => {
145
- let e = T(t), n = E(t), r = j.value, a = F.value, o = e?.clientWidth ?? 0;
146
- L.value = o > 0 && o < window.innerWidth, j.value = n > 0 && M.value != null && n <= M.value, F.value = n > 0 && I.value != null && n <= I.value, (r !== j.value || a !== F.value) && B(), i();
161
+ u !== void 0 && cancelAnimationFrame(u), u = requestAnimationFrame(() => {
162
+ let e = E(t), n = D(t), r = N.value, a = L.value, o = e?.clientWidth ?? 0;
163
+ z.value = o > 0 && o < window.innerWidth, N.value = n > 0 && P.value != null && n <= P.value, L.value = n > 0 && R.value != null && n <= R.value, (r !== N.value || a !== L.value) && U(), i();
147
164
  });
148
165
  });
149
- })() : void 0, p = (e) => {
166
+ })() : void 0, h = (e) => {
150
167
  let t = new Set(e);
151
168
  for (let [e, n] of s) t.has(e) || (n.disconnect(), s.delete(e));
152
169
  for (let t of e) {
153
170
  if (s.has(t)) continue;
154
171
  let e = new MutationObserver(() => {
155
- m.value && V();
172
+ m.value && W();
156
173
  });
157
174
  e.observe(t, {
158
175
  attributeFilter: [
159
176
  "active",
177
+ "bottom-nav",
178
+ "bottom-nav-label",
160
179
  "disabled",
161
180
  "href"
162
181
  ],
163
- attributes: !0
182
+ attributes: !0,
183
+ characterData: !0,
184
+ childList: !0,
185
+ subtree: !0
164
186
  }), s.set(t, e);
165
187
  }
188
+ }, g = () => {
189
+ h([...t.querySelectorAll("ore-sidebar-item")]), W();
166
190
  };
167
- return b(r.elements(), (e) => {
168
- let t = e.filter((e) => e instanceof HTMLElement && e.tagName.toLowerCase() === "ore-sidebar-item");
169
- p(t), V();
170
- }, { immediate: !0 }), () => {
171
- l.disconnect(), a?.(), o?.(), u?.dispose();
191
+ x(r.elements(), g, { immediate: !0 });
192
+ let _ = new MutationObserver(g);
193
+ return _.observe(t, {
194
+ childList: !0,
195
+ subtree: !0
196
+ }), () => {
197
+ l.disconnect(), _.disconnect(), t.removeEventListener("keydown", u), a?.(), o?.(), p?.dispose();
172
198
  for (let e of s.values()) e.disconnect();
173
199
  s.clear();
174
200
  };
@@ -177,10 +203,10 @@ c(O, {
177
203
  class="mobile-backdrop"
178
204
  part="mobile-backdrop"
179
205
  type="button"
180
- aria-label="Close sidebar"
181
- ?hidden=${() => !m.value || !O.value}
182
- @click=${() => U(!1, "toggle")}></button>
183
- <nav aria-label="${e.label}" part="nav">
206
+ aria-label="${e["mobile-close-label"]}"
207
+ ?hidden=${() => !m.value || !A.value}
208
+ @click=${() => K(!1, "toggle")}></button>
209
+ <nav aria-label="${e.label}" part="nav" tabindex="-1">
184
210
  <div class="sidebar-header" part="header" ?hidden=${() => !i() && !e.collapsible.value}>
185
211
  <span class="sidebar-logo" ?hidden=${() => !s()}>
186
212
  <slot name="logo"></slot>
@@ -193,12 +219,15 @@ c(O, {
193
219
  part="toggle-btn"
194
220
  type="button"
195
221
  ?hidden=${() => !e.collapsible.value}
196
- aria-label="${() => R() ? "Expand sidebar" : "Collapse sidebar"}"
197
- aria-expanded="${() => !R()}"
198
- @click="${W}">
199
- <span class="toggle-icon" aria-hidden="true">
200
- <ore-icon name="chevron-left" size="16" stroke-width="2" aria-hidden="true"></ore-icon>
201
- </span>
222
+ aria-label="${() => V() ? e["expand-label"].value : e["collapse-label"].value}"
223
+ aria-expanded="${() => !V()}"
224
+ @click="${q}">
225
+ <ore-icon
226
+ class="toggle-icon"
227
+ name=${() => V() ? "panel-left-open" : "panel-left-close"}
228
+ size="18"
229
+ stroke-width="2"
230
+ aria-hidden="true"></ore-icon>
202
231
  </button>
203
232
  </div>
204
233
  <div class="sidebar-content" part="content">
@@ -210,7 +239,7 @@ c(O, {
210
239
  </nav>
211
240
 
212
241
  <div class="bottom-bar" part="bottom-bar" ?hidden=${() => !m.value}>
213
- ${() => k.value.map((e) => {
242
+ ${() => j.value.map((e) => {
214
243
  let t = `bottom-tab${e.active ? " bottom-tab-active" : ""}`;
215
244
  return e.href && !e.disabled ? u`
216
245
  <a
@@ -247,8 +276,8 @@ c(O, {
247
276
  r
248
277
  ]
249
278
  });
250
- var k = "ore-sidebar-group";
251
- c(k, {
279
+ var j = "ore-sidebar-group";
280
+ c(j, {
252
281
  props: {
253
282
  collapsible: m.bool(!1),
254
283
  "default-open": m.bool(!0),
@@ -260,13 +289,13 @@ c(k, {
260
289
  }
261
290
  },
262
291
  setup(e) {
263
- let t = _(), n = () => t.has("icon").value, r = d(D);
292
+ let t = _(), n = () => t.has("icon").value, r = d(k);
264
293
  o({ attr: {
265
294
  "sidebar-bottom-nav": () => r?.mode.value === "bottom-nav" && !r?.mobileOpen.value || void 0,
266
295
  "sidebar-collapsed": () => r?.collapsed.value ? !0 : void 0
267
296
  } });
268
- let i = () => e.open.value !== void 0, a = y(e["default-open"].value), s = v(() => e.collapsible.value ? i() ? e.open.value ?? !1 : a.value : !0);
269
- return b(e.open, (e) => {
297
+ let i = () => e.open.value !== void 0, a = b(e["default-open"].value), s = v(() => e.collapsible.value ? i() ? e.open.value ?? !1 : a.value : !0);
298
+ return x(e.open, (e) => {
270
299
  e !== void 0 && (a.value = e);
271
300
  }), o({ attr: { open: () => s.value ? !0 : void 0 } }), u`
272
301
  <details class="group" part="group" ?open=${s}>
@@ -293,22 +322,26 @@ c(k, {
293
322
  },
294
323
  styles: [t, i]
295
324
  });
296
- var A = "ore-sidebar-item";
297
- c(A, {
325
+ var M = "ore-sidebar-item";
326
+ c(M, {
298
327
  props: {
299
328
  active: m.bool(!1),
329
+ "bottom-nav": m.bool(!1),
330
+ "bottom-nav-label": m.string(),
300
331
  disabled: m.bool(!1),
301
332
  href: m.string(),
302
333
  rel: m.string(),
303
334
  target: m.string()
304
335
  },
305
336
  setup(e) {
306
- let t = _(), r = () => t.has("icon").value, i = () => t.has("end").value, a = d(D);
337
+ let t = _(), r = () => t.has("icon").value, i = () => t.has("end").value, a = d(k);
307
338
  o({ attr: {
308
339
  "sidebar-bottom-nav": () => a?.mode.value === "bottom-nav" && !a?.mobileOpen.value || void 0,
309
340
  "sidebar-collapsed": () => a?.collapsed.value ? !0 : void 0
310
341
  } });
311
- let s = () => !!e.href.value && !e.disabled.value, c = v(() => n(e.rel.value, e.target.value)), l = () => u`
342
+ let s = () => !!e.href.value && !e.disabled.value, c = v(() => n(e.rel.value, e.target.value)), l = (e) => {
343
+ a?.closeOnSelect.value && a.mobileOpen.value && (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || queueMicrotask(a.closeMobile));
344
+ }, f = () => u`
312
345
  <span class="item-icon" part="item-icon" ?hidden=${() => !r()} aria-hidden="true">
313
346
  <slot name="icon"></slot>
314
347
  </span>
@@ -325,8 +358,9 @@ c(A, {
325
358
  href="${e.href}"
326
359
  rel="${c}"
327
360
  target="${e.target}"
328
- aria-current="${() => e.active.value ? "page" : null}">
329
- ${l()}
361
+ aria-current="${() => e.active.value ? "page" : null}"
362
+ @click=${l}>
363
+ ${f()}
330
364
  </a>
331
365
  ` : e.disabled.value ? u`
332
366
  <div
@@ -335,7 +369,7 @@ c(A, {
335
369
  aria-disabled="true"
336
370
  tabindex="-1"
337
371
  aria-current="${() => e.active.value ? "page" : null}">
338
- ${l()}
372
+ ${f()}
339
373
  </div>
340
374
  ` : u`
341
375
  <button
@@ -343,8 +377,9 @@ c(A, {
343
377
  part="item"
344
378
  type="button"
345
379
  ?disabled="${e.disabled}"
346
- aria-current="${() => e.active.value ? "page" : null}">
347
- ${l()}
380
+ aria-current="${() => e.active.value ? "page" : null}"
381
+ @click=${l}>
382
+ ${f()}
348
383
  </button>
349
384
  `}
350
385
  `;
@@ -352,6 +387,6 @@ c(A, {
352
387
  styles: [e, a]
353
388
  });
354
389
  //#endregion
355
- export { D as SIDEBAR_CTX, k as SIDEBAR_GROUP_TAG, A as SIDEBAR_ITEM_TAG, O as SIDEBAR_TAG };
390
+ export { k as SIDEBAR_CTX, j as SIDEBAR_GROUP_TAG, M as SIDEBAR_ITEM_TAG, A as SIDEBAR_TAG };
356
391
 
357
392
  //# sourceMappingURL=sidebar.js.map