@hina-ui/vue 1.7.11 → 1.7.12

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 (37) hide show
  1. package/dist/index.js +815 -761
  2. package/dist/index.js.map +1 -1
  3. package/dist/shared/lib/css-time.ts +6 -0
  4. package/dist/shared/lib/line-clamp.ts +8 -8
  5. package/dist/shared/primitives/pin-input/index.ts +394 -97
  6. package/dist/shared/styles/interaction.css +6 -2
  7. package/dist/shared/styles/line-clamp.css +6 -2
  8. package/dist/shared/styles/pin-input.css +84 -0
  9. package/dist/shared/styles/tokens.css +1 -0
  10. package/dist/shared/variants/pin-input.ts +26 -7
  11. package/dist/types/shared/src/lib/css-time.d.ts +2 -0
  12. package/dist/types/shared/src/lib/css-time.d.ts.map +1 -0
  13. package/dist/types/shared/src/lib/line-clamp.d.ts.map +1 -1
  14. package/dist/types/shared/src/primitives/pin-input/index.d.ts +35 -27
  15. package/dist/types/shared/src/primitives/pin-input/index.d.ts.map +1 -1
  16. package/dist/types/shared/src/variants/pin-input.d.ts +30 -10
  17. package/dist/types/shared/src/variants/pin-input.d.ts.map +1 -1
  18. package/dist/types/vue/src/components/image/composables/useImage.d.ts.map +1 -1
  19. package/dist/types/vue/src/components/pin-input/PinInput.vue.d.ts +2 -0
  20. package/dist/types/vue/src/components/pin-input/PinInput.vue.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/components/image/composables/useImage.ts +2 -1
  23. package/src/components/pin-input/PinInput.vue +103 -33
  24. package/dist/shared/primitives/pin-input/LICENSE +0 -21
  25. package/dist/types/vue/src/primitives/pin-input/PinInputInput.d.ts +0 -52
  26. package/dist/types/vue/src/primitives/pin-input/PinInputInput.d.ts.map +0 -1
  27. package/dist/types/vue/src/primitives/pin-input/PinInputRoot.d.ts +0 -149
  28. package/dist/types/vue/src/primitives/pin-input/PinInputRoot.d.ts.map +0 -1
  29. package/dist/types/vue/src/primitives/pin-input/context.d.ts +0 -20
  30. package/dist/types/vue/src/primitives/pin-input/context.d.ts.map +0 -1
  31. package/dist/types/vue/src/primitives/pin-input/index.d.ts +0 -4
  32. package/dist/types/vue/src/primitives/pin-input/index.d.ts.map +0 -1
  33. package/src/primitives/pin-input/LICENSE +0 -44
  34. package/src/primitives/pin-input/PinInputInput.ts +0 -218
  35. package/src/primitives/pin-input/PinInputRoot.ts +0 -136
  36. package/src/primitives/pin-input/context.ts +0 -24
  37. package/src/primitives/pin-input/index.ts +0 -3
package/dist/index.js CHANGED
@@ -1085,7 +1085,7 @@ var spinner = tv({
1085
1085
  });
1086
1086
  //#endregion
1087
1087
  //#region src/components/spinner/Spinner.vue?vue&type=script&setup=true&lang.ts
1088
- var _hoisted_1$131 = ["aria-label"];
1088
+ var _hoisted_1$132 = ["aria-label"];
1089
1089
  //#endregion
1090
1090
  //#region src/components/spinner/Spinner.vue
1091
1091
  var Spinner_default = /* @__PURE__ */ defineComponent({
@@ -1105,13 +1105,13 @@ var Spinner_default = /* @__PURE__ */ defineComponent({
1105
1105
  "aria-label": props.label ?? unref(t).common.loading,
1106
1106
  class: unref(cn)(unref(spinner)({ size: props.size })),
1107
1107
  style: { animation: "hn-spin var(--hn-spin-duration) var(--hn-ease-linear) infinite" }
1108
- }), null, 16, _hoisted_1$131);
1108
+ }), null, 16, _hoisted_1$132);
1109
1109
  };
1110
1110
  }
1111
1111
  });
1112
1112
  //#endregion
1113
1113
  //#region src/components/button/IconSlot.vue?vue&type=script&setup=true&lang.ts
1114
- var _hoisted_1$130 = {
1114
+ var _hoisted_1$131 = {
1115
1115
  key: 0,
1116
1116
  "aria-hidden": "true",
1117
1117
  class: "absolute inset-0 inline-flex items-center justify-center"
@@ -1135,7 +1135,7 @@ var IconSlot_default$1 = /* @__PURE__ */ defineComponent({
1135
1135
  "leave-active-class": "hn-transition",
1136
1136
  "leave-to-class": "scale-90 opacity-0"
1137
1137
  }, {
1138
- default: withCtx(() => [props.swapped ? (openBlock(), createElementBlock("span", _hoisted_1$130, [createVNode(Spinner_default, { size: props.spinnerSize }, null, 8, ["size"])])) : createCommentVNode("", true)]),
1138
+ default: withCtx(() => [props.swapped ? (openBlock(), createElementBlock("span", _hoisted_1$131, [createVNode(Spinner_default, { size: props.spinnerSize }, null, 8, ["size"])])) : createCommentVNode("", true)]),
1139
1139
  _: 1
1140
1140
  })], 2);
1141
1141
  };
@@ -1359,7 +1359,7 @@ function useRipple(container, surface, isDisabled) {
1359
1359
  }
1360
1360
  //#endregion
1361
1361
  //#region src/components/ripple/Ripple.vue?vue&type=script&setup=true&lang.ts
1362
- var _hoisted_1$129 = ["data-pressed"];
1362
+ var _hoisted_1$130 = ["data-pressed"];
1363
1363
  //#endregion
1364
1364
  //#region src/components/ripple/Ripple.vue
1365
1365
  var Ripple_default = /* @__PURE__ */ defineComponent({
@@ -1382,7 +1382,7 @@ var Ripple_default = /* @__PURE__ */ defineComponent({
1382
1382
  ref: surface,
1383
1383
  class: "hn-ripple-surface",
1384
1384
  "data-pressed": unref(pressed) ? "" : void 0
1385
- }, null, 8, _hoisted_1$129)], 512);
1385
+ }, null, 8, _hoisted_1$130)], 512);
1386
1386
  };
1387
1387
  }
1388
1388
  });
@@ -1445,7 +1445,7 @@ var Primitive = defineComponent({
1445
1445
  });
1446
1446
  //#endregion
1447
1447
  //#region src/components/button/Button.vue?vue&type=script&setup=true&lang.ts
1448
- var _hoisted_1$128 = {
1448
+ var _hoisted_1$129 = {
1449
1449
  key: 0,
1450
1450
  "aria-hidden": "true",
1451
1451
  class: "absolute inset-0 flex items-center justify-center"
@@ -1556,7 +1556,7 @@ var Button_default = /* @__PURE__ */ defineComponent({
1556
1556
  "leave-active-class": "hn-transition",
1557
1557
  "leave-to-class": "opacity-0"
1558
1558
  }, {
1559
- default: withCtx(() => [props.loading && spinnerAt.value === "center" ? (openBlock(), createElementBlock("span", _hoisted_1$128, [createVNode(Spinner_default, { size: spinnerSize.value }, null, 8, ["size"])])) : createCommentVNode("", true)]),
1559
+ default: withCtx(() => [props.loading && spinnerAt.value === "center" ? (openBlock(), createElementBlock("span", _hoisted_1$129, [createVNode(Spinner_default, { size: spinnerSize.value }, null, 8, ["size"])])) : createCommentVNode("", true)]),
1560
1560
  _: 1
1561
1561
  })
1562
1562
  ], 64))]),
@@ -1807,7 +1807,7 @@ function useCopy(text, onCopied, resetAfter = () => COPIED_RESET_MS) {
1807
1807
  }
1808
1808
  //#endregion
1809
1809
  //#region src/components/copy-button/CopyButton.vue?vue&type=script&setup=true&lang.ts
1810
- var _hoisted_1$127 = { class: "relative inline-flex size-[1em]" };
1810
+ var _hoisted_1$128 = { class: "relative inline-flex size-[1em]" };
1811
1811
  //#endregion
1812
1812
  //#region src/components/copy-button/CopyButton.vue
1813
1813
  var CopyButton_default = /* @__PURE__ */ defineComponent({
@@ -1839,7 +1839,7 @@ var CopyButton_default = /* @__PURE__ */ defineComponent({
1839
1839
  class: props.class,
1840
1840
  onClick: unref(copy)
1841
1841
  }), {
1842
- default: withCtx(() => [createElementVNode("span", _hoisted_1$127, [createVNode(Transition, {
1842
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$128, [createVNode(Transition, {
1843
1843
  "enter-active-class": "hn-transition-base",
1844
1844
  "enter-from-class": "scale-90 opacity-0",
1845
1845
  "leave-active-class": "hn-transition",
@@ -1914,7 +1914,7 @@ var buttonGroup = tv({
1914
1914
  });
1915
1915
  //#endregion
1916
1916
  //#region src/components/button-group/ButtonGroup.vue?vue&type=script&setup=true&lang.ts
1917
- var _hoisted_1$126 = ["aria-label", "aria-orientation"];
1917
+ var _hoisted_1$127 = ["aria-label", "aria-orientation"];
1918
1918
  //#endregion
1919
1919
  //#region src/components/button-group/ButtonGroup.vue
1920
1920
  var ButtonGroup_default = /* @__PURE__ */ defineComponent({
@@ -1945,7 +1945,7 @@ var ButtonGroup_default = /* @__PURE__ */ defineComponent({
1945
1945
  block: props.block,
1946
1946
  divider: props.divider
1947
1947
  }), props.class))
1948
- }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$126);
1948
+ }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$127);
1949
1949
  };
1950
1950
  }
1951
1951
  });
@@ -2172,7 +2172,7 @@ function floatButtonOffset(offset) {
2172
2172
  }
2173
2173
  //#endregion
2174
2174
  //#region src/components/float-button/FloatButton.vue?vue&type=script&setup=true&lang.ts
2175
- var _hoisted_1$125 = {
2175
+ var _hoisted_1$126 = {
2176
2176
  key: 0,
2177
2177
  class: "min-w-0 truncate"
2178
2178
  };
@@ -2276,7 +2276,7 @@ var FloatButton_default = /* @__PURE__ */ defineComponent({
2276
2276
  }), props.class),
2277
2277
  style: [offset.value, props.style]
2278
2278
  }), createSlots({
2279
- default: withCtx(() => [props.extended ? (openBlock(), createElementBlock("span", _hoisted_1$125, toDisplayString(props.label), 1)) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)]),
2279
+ default: withCtx(() => [props.extended ? (openBlock(), createElementBlock("span", _hoisted_1$126, toDisplayString(props.label), 1)) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1)]),
2280
2280
  _: 2
2281
2281
  }, [props.extended ? {
2282
2282
  name: "icon",
@@ -2841,7 +2841,7 @@ var splitButton = tv({
2841
2841
  var splitButtonAction = tv({ base: "min-w-0 flex-1 shrink [&>span]:min-w-0" });
2842
2842
  //#endregion
2843
2843
  //#region src/components/split-button/SplitButton.vue?vue&type=script&setup=true&lang.ts
2844
- var _hoisted_1$124 = { class: "min-w-0 truncate" };
2844
+ var _hoisted_1$125 = { class: "min-w-0 truncate" };
2845
2845
  //#endregion
2846
2846
  //#region src/components/split-button/SplitButton.vue
2847
2847
  var SplitButton_default = /* @__PURE__ */ defineComponent({
@@ -2966,7 +2966,7 @@ var SplitButton_default = /* @__PURE__ */ defineComponent({
2966
2966
  onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event)),
2967
2967
  onKeydown
2968
2968
  }), createSlots({
2969
- default: withCtx(() => [createElementVNode("span", _hoisted_1$124, [renderSlot(_ctx.$slots, "default")])]),
2969
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$125, [renderSlot(_ctx.$slots, "default")])]),
2970
2970
  _: 2
2971
2971
  }, [_ctx.$slots.icon ? {
2972
2972
  name: "icon",
@@ -3280,8 +3280,8 @@ var chipRemove = tv({
3280
3280
  });
3281
3281
  //#endregion
3282
3282
  //#region src/components/chip/IconSlot.vue?vue&type=script&setup=true&lang.ts
3283
- var _hoisted_1$123 = { class: "hn-collapse-body" };
3284
- var _hoisted_2$71 = {
3283
+ var _hoisted_1$124 = { class: "hn-collapse-body" };
3284
+ var _hoisted_2$72 = {
3285
3285
  key: 0,
3286
3286
  "aria-hidden": "true",
3287
3287
  class: "absolute inset-0 inline-flex items-center justify-center"
@@ -3302,7 +3302,7 @@ var IconSlot_default = /* @__PURE__ */ defineComponent({
3302
3302
  return openBlock(), createElementBlock("span", {
3303
3303
  "data-hn-icon": "",
3304
3304
  class: normalizeClass(["hn-collapse-x", props.icon || props.checked ? "hn-collapse-open" : "hn-collapse-closed"])
3305
- }, [createElementVNode("span", _hoisted_1$123, [createElementVNode("span", { class: normalizeClass(unref(chipIcon)({ size: props.size })) }, [props.icon ? (openBlock(), createElementBlock("span", {
3305
+ }, [createElementVNode("span", _hoisted_1$124, [createElementVNode("span", { class: normalizeClass(unref(chipIcon)({ size: props.size })) }, [props.icon ? (openBlock(), createElementBlock("span", {
3306
3306
  key: 0,
3307
3307
  class: normalizeClass(["hn-transition inline-flex items-center justify-center", props.checked ? "scale-90 opacity-0" : "scale-100 opacity-100"])
3308
3308
  }, [renderSlot(_ctx.$slots, "default")], 2)) : createCommentVNode("", true), createVNode(Transition, {
@@ -3311,7 +3311,7 @@ var IconSlot_default = /* @__PURE__ */ defineComponent({
3311
3311
  "leave-active-class": "hn-transition",
3312
3312
  "leave-to-class": "scale-90 opacity-0"
3313
3313
  }, {
3314
- default: withCtx(() => [props.checked ? (openBlock(), createElementBlock("span", _hoisted_2$71, [createVNode(unref(Check))])) : createCommentVNode("", true)]),
3314
+ default: withCtx(() => [props.checked ? (openBlock(), createElementBlock("span", _hoisted_2$72, [createVNode(unref(Check))])) : createCommentVNode("", true)]),
3315
3315
  _: 1
3316
3316
  })], 2)])], 2);
3317
3317
  };
@@ -3534,13 +3534,13 @@ var VisuallyHidden_default = /* @__PURE__ */ defineComponent({
3534
3534
  });
3535
3535
  //#endregion
3536
3536
  //#region src/components/lightbox/LightboxStrip.vue?vue&type=script&setup=true&lang.ts
3537
- var _hoisted_1$122 = [
3537
+ var _hoisted_1$123 = [
3538
3538
  "src",
3539
3539
  "alt",
3540
3540
  "onLoad"
3541
3541
  ];
3542
- var _hoisted_2$70 = ["src"];
3543
- var _hoisted_3$38 = [
3542
+ var _hoisted_2$71 = ["src"];
3543
+ var _hoisted_3$39 = [
3544
3544
  "src",
3545
3545
  "alt",
3546
3546
  "onLoad"
@@ -3601,7 +3601,7 @@ var LightboxStrip_default = /* @__PURE__ */ defineComponent({
3601
3601
  draggable: "false",
3602
3602
  class: "block size-full object-contain",
3603
3603
  onLoad: ($event) => emit("learn", slide.item.id, $event.target)
3604
- }, null, 40, _hoisted_1$122), createVNode(Transition, {
3604
+ }, null, 40, _hoisted_1$123), createVNode(Transition, {
3605
3605
  "enter-active-class": "hn-transition-base",
3606
3606
  "enter-from-class": "opacity-0",
3607
3607
  "leave-active-class": "hn-transition",
@@ -3614,7 +3614,7 @@ var LightboxStrip_default = /* @__PURE__ */ defineComponent({
3614
3614
  "aria-hidden": "true",
3615
3615
  draggable: "false",
3616
3616
  class: "absolute inset-0 size-full object-contain"
3617
- }, null, 8, _hoisted_2$70)) : createCommentVNode("", true)]),
3617
+ }, null, 8, _hoisted_2$71)) : createCommentVNode("", true)]),
3618
3618
  _: 1
3619
3619
  })]),
3620
3620
  _: 2
@@ -3636,7 +3636,7 @@ var LightboxStrip_default = /* @__PURE__ */ defineComponent({
3636
3636
  draggable: "false",
3637
3637
  class: "block size-full object-contain",
3638
3638
  onLoad: ($event) => emit("learn", slide.item.id, $event.target)
3639
- }, null, 40, _hoisted_3$38)]),
3639
+ }, null, 40, _hoisted_3$39)]),
3640
3640
  _: 2
3641
3641
  }, 1032, [
3642
3642
  "style",
@@ -3660,7 +3660,7 @@ function useLayoutTransition() {
3660
3660
  return inject(key$2, void 0);
3661
3661
  }
3662
3662
  //#endregion
3663
- //#region ../../node_modules/.pnpm/overlayscrollbars@2.16.0_patch_hash=b086d956ad9d09179b5de81c6b85941b45b110c24a175e33bd3a30c65dd23692/node_modules/overlayscrollbars/overlayscrollbars.mjs
3663
+ //#region ../../node_modules/.pnpm/overlayscrollbars@2.16.0_patch_hash=26a1c7648e3439e34ed872a36fce3f788dab16bf66ce7ac63eb1a156bdb0d2f2/node_modules/overlayscrollbars/overlayscrollbars.mjs
3664
3664
  /*!
3665
3665
  * OverlayScrollbars
3666
3666
  * Version: 2.16.0
@@ -3963,6 +3963,12 @@ var removeElements = (t) => {
3963
3963
  var appendChildren = (t, n) => bind(removeElements, t && n && each(createOrKeepArray(n), ((n) => {
3964
3964
  if (n) t.appendChild(n);
3965
3965
  })));
3966
+ var placeChildren = (t, n) => {
3967
+ const o = t && n ? createOrKeepArray(n).filter(((t) => t)) : [];
3968
+ const s = t ? t.childNodes : [];
3969
+ const e = s.length - o.length;
3970
+ if (e < 0 || o.some(((t, n) => s[e + n] !== t))) appendChildren(t, n);
3971
+ };
3966
3972
  var D;
3967
3973
  var getTrustedTypePolicy = () => D;
3968
3974
  var setTrustedTypePolicy = (t) => {
@@ -5235,7 +5241,9 @@ var createScrollbarsSetup = (t, n, o, s, e, c, r) => {
5235
5241
  const [y, w] = selfClearTimeout(50);
5236
5242
  const [S, m] = selfClearTimeout((() => d));
5237
5243
  const [O, C] = createScrollbarsSetupElements(t, c, e, createScrollbarsSetupEvents(n, c, e, skipEventIfSleeping, ((t) => isHoverablePointerType(t) && manageScrollbarsAutoHideInstantInteraction())));
5238
- const { vt: $, Qt: H, bt: D } = c;
5244
+ const { vt: $, Qt: H, bt: D, un: hoverWindow } = c;
5245
+ const hoverScope = hoverWindow();
5246
+ i = isFunction(hoverScope.matchMedia) && hoverScope.matchMedia("(hover: hover)").matches && $.matches(":hover");
5239
5247
  const { Ft: z, Ut: I, Nt: A, qt: T, Bt: k } = O;
5240
5248
  const manageScrollbarsAutoHide = (t, n) => {
5241
5249
  m();
@@ -5467,10 +5475,10 @@ var createStructureSetupElements = (t) => {
5467
5475
  setAttrs(Q, o, s || "-1");
5468
5476
  if (g) setAttrs(b, q, "");
5469
5477
  }
5470
- appendChildren(et, st);
5471
- appendChildren(W, J);
5472
- appendChildren(J || W, !H && Q);
5473
- appendChildren(Q, nt);
5478
+ placeChildren(et, st);
5479
+ placeChildren(W, J);
5480
+ placeChildren(J || W, !H && Q);
5481
+ placeChildren(Q, nt);
5474
5482
  push(ot, [c, () => {
5475
5483
  const t = getFocusedElement();
5476
5484
  const n = elementIsGenerated(Q);
@@ -6338,9 +6346,9 @@ function useScrollFocus(host, viewport, options) {
6338
6346
  }
6339
6347
  //#endregion
6340
6348
  //#region src/components/scroll-area/ScrollArea.vue?vue&type=script&setup=true&lang.ts
6341
- var _hoisted_1$121 = ["dir"];
6342
- var _hoisted_2$69 = ["data-visible"];
6343
- var _hoisted_3$37 = ["data-visible"];
6349
+ var _hoisted_1$122 = ["dir"];
6350
+ var _hoisted_2$70 = ["data-visible"];
6351
+ var _hoisted_3$38 = ["data-visible"];
6344
6352
  var _hoisted_4$31 = ["data-visible"];
6345
6353
  var _hoisted_5$24 = ["data-visible"];
6346
6354
  //#endregion
@@ -6430,14 +6438,14 @@ var ScrollArea_default = /* @__PURE__ */ defineComponent({
6430
6438
  "data-side": "x-start",
6431
6439
  "data-visible": unref(showXStart) ? "" : void 0,
6432
6440
  "aria-hidden": "true"
6433
- }, null, 8, _hoisted_2$69)) : createCommentVNode("", true),
6441
+ }, null, 8, _hoisted_2$70)) : createCommentVNode("", true),
6434
6442
  props.direction !== "vertical" ? (openBlock(), createElementBlock("div", {
6435
6443
  key: 1,
6436
6444
  class: "hn-scroll-shadow",
6437
6445
  "data-side": "x-end",
6438
6446
  "data-visible": unref(showXEnd) ? "" : void 0,
6439
6447
  "aria-hidden": "true"
6440
- }, null, 8, _hoisted_3$37)) : createCommentVNode("", true),
6448
+ }, null, 8, _hoisted_3$38)) : createCommentVNode("", true),
6441
6449
  props.direction !== "horizontal" ? (openBlock(), createElementBlock("div", {
6442
6450
  key: 2,
6443
6451
  class: "hn-scroll-shadow",
@@ -6452,7 +6460,7 @@ var ScrollArea_default = /* @__PURE__ */ defineComponent({
6452
6460
  "data-visible": unref(showYEnd) ? "" : void 0,
6453
6461
  "aria-hidden": "true"
6454
6462
  }, null, 8, _hoisted_5$24)) : createCommentVNode("", true)
6455
- ], 64)) : createCommentVNode("", true)], 10, _hoisted_1$121);
6463
+ ], 64)) : createCommentVNode("", true)], 10, _hoisted_1$122);
6456
6464
  };
6457
6465
  }
6458
6466
  });
@@ -6510,16 +6518,16 @@ var Highlight_default = /* @__PURE__ */ defineComponent({
6510
6518
  });
6511
6519
  //#endregion
6512
6520
  //#region src/components/lightbox/LightboxThumbs.vue?vue&type=script&setup=true&lang.ts
6513
- var _hoisted_1$120 = {
6521
+ var _hoisted_1$121 = {
6514
6522
  "data-hn-thumbs": "",
6515
6523
  class: "relative isolate flex w-max gap-2 px-4 py-3"
6516
6524
  };
6517
- var _hoisted_2$68 = [
6525
+ var _hoisted_2$69 = [
6518
6526
  "aria-label",
6519
6527
  "aria-current",
6520
6528
  "onClick"
6521
6529
  ];
6522
- var _hoisted_3$36 = ["src"];
6530
+ var _hoisted_3$37 = ["src"];
6523
6531
  //#endregion
6524
6532
  //#region src/components/lightbox/LightboxThumbs.vue
6525
6533
  var LightboxThumbs_default = /* @__PURE__ */ defineComponent({
@@ -6555,7 +6563,7 @@ var LightboxThumbs_default = /* @__PURE__ */ defineComponent({
6555
6563
  scrollbar: false,
6556
6564
  class: "max-w-full"
6557
6565
  }, {
6558
- default: withCtx(() => [createElementVNode("div", _hoisted_1$120, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.items, (item, at) => {
6566
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$121, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.items, (item, at) => {
6559
6567
  return openBlock(), createElementBlock("button", {
6560
6568
  key: item.id,
6561
6569
  ref_for: true,
@@ -6572,14 +6580,14 @@ var LightboxThumbs_default = /* @__PURE__ */ defineComponent({
6572
6580
  alt: "",
6573
6581
  draggable: "false",
6574
6582
  class: "relative -z-10 size-full object-cover"
6575
- }, null, 8, _hoisted_3$36),
6583
+ }, null, 8, _hoisted_3$37),
6576
6584
  at === props.index ? (openBlock(), createBlock(Highlight_default, {
6577
6585
  key: 0,
6578
6586
  id: unref(highlightId),
6579
6587
  axis: "x",
6580
6588
  class: "ring-accent absolute inset-0 rounded-md ring-2 ring-inset"
6581
6589
  }, null, 8, ["id"])) : createCommentVNode("", true)
6582
- ], 10, _hoisted_2$68);
6590
+ ], 10, _hoisted_2$69);
6583
6591
  }), 128))])]),
6584
6592
  _: 1
6585
6593
  });
@@ -6588,8 +6596,8 @@ var LightboxThumbs_default = /* @__PURE__ */ defineComponent({
6588
6596
  });
6589
6597
  //#endregion
6590
6598
  //#region src/components/lightbox/LightboxToolbar.vue?vue&type=script&setup=true&lang.ts
6591
- var _hoisted_1$119 = { class: "flex flex-col items-center gap-1 pb-[max(--spacing(3),env(safe-area-inset-bottom))]" };
6592
- var _hoisted_2$67 = { class: "flex items-center gap-1" };
6599
+ var _hoisted_1$120 = { class: "flex flex-col items-center gap-1 pb-[max(--spacing(3),env(safe-area-inset-bottom))]" };
6600
+ var _hoisted_2$68 = { class: "flex items-center gap-1" };
6593
6601
  //#endregion
6594
6602
  //#region src/components/lightbox/LightboxToolbar.vue
6595
6603
  var LightboxToolbar_default = /* @__PURE__ */ defineComponent({
@@ -6616,12 +6624,12 @@ var LightboxToolbar_default = /* @__PURE__ */ defineComponent({
6616
6624
  const emit = __emit;
6617
6625
  const t = useUiLocale();
6618
6626
  return (_ctx, _cache) => {
6619
- return openBlock(), createElementBlock("div", _hoisted_1$119, [props.items.length > 1 ? (openBlock(), createBlock(LightboxThumbs_default, {
6627
+ return openBlock(), createElementBlock("div", _hoisted_1$120, [props.items.length > 1 ? (openBlock(), createBlock(LightboxThumbs_default, {
6620
6628
  key: 0,
6621
6629
  items: props.items,
6622
6630
  index: props.index,
6623
6631
  onSelect: _cache[0] || (_cache[0] = ($event) => emit("select", $event))
6624
- }, null, 8, ["items", "index"])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$67, [
6632
+ }, null, 8, ["items", "index"])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$68, [
6625
6633
  createVNode(IconButton_default, {
6626
6634
  label: unref(t).lightbox.zoomOut,
6627
6635
  disabled: !props.zoomed,
@@ -8230,8 +8238,8 @@ async function saveImage(url) {
8230
8238
  }
8231
8239
  //#endregion
8232
8240
  //#region src/components/lightbox/Lightbox.vue?vue&type=script&setup=true&lang.ts
8233
- var _hoisted_1$118 = ["data-hn-phase"];
8234
- var _hoisted_2$66 = {
8241
+ var _hoisted_1$119 = ["data-hn-phase"];
8242
+ var _hoisted_2$67 = {
8235
8243
  "aria-hidden": "true",
8236
8244
  class: "pointer-events-none absolute inset-0 isolate"
8237
8245
  };
@@ -8399,7 +8407,7 @@ var Lightbox_default = /* @__PURE__ */ defineComponent({
8399
8407
  onWheel: _cache[10] || (_cache[10] = (...args) => unref(gesture).onWheel && unref(gesture).onWheel(...args)),
8400
8408
  onKeydown
8401
8409
  }, [
8402
- createElementVNode("div", _hoisted_2$66, [createVNode(unref(Motion), {
8410
+ createElementVNode("div", _hoisted_2$67, [createVNode(unref(Motion), {
8403
8411
  class: "hn-scrim",
8404
8412
  style: normalizeStyle({ opacity: unref(motion).presence })
8405
8413
  }, null, 8, ["style"])]),
@@ -8469,7 +8477,7 @@ var Lightbox_default = /* @__PURE__ */ defineComponent({
8469
8477
  "hint",
8470
8478
  "presence"
8471
8479
  ])
8472
- ], 42, _hoisted_1$118)]),
8480
+ ], 42, _hoisted_1$119)]),
8473
8481
  _: 1
8474
8482
  })]),
8475
8483
  _: 1
@@ -8500,6 +8508,14 @@ var image = tv({
8500
8508
  defaultVariants: { fit: "cover" }
8501
8509
  });
8502
8510
  //#endregion
8511
+ //#region ../shared/src/lib/css-time.ts
8512
+ function cssTimeToMs(value) {
8513
+ const text = value.trim().toLowerCase();
8514
+ const amount = Number.parseFloat(text);
8515
+ if (!Number.isFinite(amount) || amount < 0) return 0;
8516
+ return text.endsWith("s") && !text.endsWith("ms") ? amount * 1e3 : amount;
8517
+ }
8518
+ //#endregion
8503
8519
  //#region src/components/image/resolver.ts
8504
8520
  var KEY$2 = Symbol("hn-image-resolver");
8505
8521
  function provideImageResolver(resolver) {
@@ -8557,7 +8573,7 @@ function useImage(props, emit) {
8557
8573
  const style = getComputedStyle(el);
8558
8574
  try {
8559
8575
  return el.animate(frames, {
8560
- duration: Number.parseFloat(style.getPropertyValue("--hn-duration-fast")) || 0,
8576
+ duration: cssTimeToMs(style.getPropertyValue("--hn-duration-fast")),
8561
8577
  easing: style.getPropertyValue("--hn-ease-enter").trim() || "linear",
8562
8578
  fill: "forwards"
8563
8579
  });
@@ -8641,7 +8657,7 @@ function useImageGroup() {
8641
8657
  }
8642
8658
  //#endregion
8643
8659
  //#region src/components/image/Image.vue?vue&type=script&setup=true&lang.ts
8644
- var _hoisted_1$117 = [
8660
+ var _hoisted_1$118 = [
8645
8661
  "src",
8646
8662
  "alt",
8647
8663
  "decoding",
@@ -8751,7 +8767,7 @@ var Image_default = /* @__PURE__ */ defineComponent({
8751
8767
  fit: props.fit,
8752
8768
  lazy: props.lazy
8753
8769
  }), props.lazy && !unref(revealed) && "opacity-0", props.imageClass)
8754
- }), null, 16, _hoisted_1$117)) : unref(failed) ? renderSlot(_ctx.$slots, "error", {}, void 0, void 0, 1) : renderSlot(_ctx.$slots, "empty", {}, void 0, void 0, 2),
8770
+ }), null, 16, _hoisted_1$118)) : unref(failed) ? renderSlot(_ctx.$slots, "error", {}, void 0, void 0, 1) : renderSlot(_ctx.$slots, "empty", {}, void 0, void 0, 2),
8755
8771
  unref(showSkeleton) ? (openBlock(), createElementBlock("span", {
8756
8772
  key: 3,
8757
8773
  ref_key: "skeletonEl",
@@ -9025,7 +9041,7 @@ var indicator = tv({
9025
9041
  });
9026
9042
  //#endregion
9027
9043
  //#region src/components/indicator/Indicator.vue?vue&type=script&setup=true&lang.ts
9028
- var _hoisted_1$116 = {
9044
+ var _hoisted_1$117 = {
9029
9045
  key: 0,
9030
9046
  "aria-hidden": "true",
9031
9047
  class: "hn-ping absolute inset-0 rounded-full bg-inherit"
@@ -9056,7 +9072,7 @@ var Indicator_default = /* @__PURE__ */ defineComponent({
9056
9072
  size: props.size
9057
9073
  }), props.class))
9058
9074
  }, {
9059
- default: withCtx(() => [props.pulse ? (openBlock(), createElementBlock("span", _hoisted_1$116)) : createCommentVNode("", true), props.label ? (openBlock(), createBlock(VisuallyHidden_default, { key: 1 }, {
9075
+ default: withCtx(() => [props.pulse ? (openBlock(), createElementBlock("span", _hoisted_1$117)) : createCommentVNode("", true), props.label ? (openBlock(), createBlock(VisuallyHidden_default, { key: 1 }, {
9060
9076
  default: withCtx(() => [createTextVNode(toDisplayString(props.label), 1)]),
9061
9077
  _: 1
9062
9078
  })) : createCommentVNode("", true)]),
@@ -9108,8 +9124,8 @@ var calloutIcons = {
9108
9124
  };
9109
9125
  //#endregion
9110
9126
  //#region src/components/callout/Callout.vue?vue&type=script&setup=true&lang.ts
9111
- var _hoisted_1$115 = { class: "flex min-w-0 flex-1 flex-col gap-1" };
9112
- var _hoisted_2$65 = {
9127
+ var _hoisted_1$116 = { class: "flex min-w-0 flex-1 flex-col gap-1" };
9128
+ var _hoisted_2$66 = {
9113
9129
  key: 0,
9114
9130
  class: "text-fg font-medium"
9115
9131
  };
@@ -9137,7 +9153,7 @@ var Callout_default = /* @__PURE__ */ defineComponent({
9137
9153
  key: 0,
9138
9154
  class: normalizeClass(unref(calloutIcon)({ tone: props.tone })),
9139
9155
  "aria-hidden": "true"
9140
- }, null, 8, ["class"])) : createCommentVNode("", true)]), createElementVNode("div", _hoisted_1$115, [props.title ? (openBlock(), createElementBlock("p", _hoisted_2$65, toDisplayString(props.title), 1)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")])], 2);
9156
+ }, null, 8, ["class"])) : createCommentVNode("", true)]), createElementVNode("div", _hoisted_1$116, [props.title ? (openBlock(), createElementBlock("p", _hoisted_2$66, toDisplayString(props.title), 1)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")])], 2);
9141
9157
  };
9142
9158
  }
9143
9159
  });
@@ -9193,13 +9209,13 @@ function useCollapseGap() {
9193
9209
  }
9194
9210
  //#endregion
9195
9211
  //#region src/components/alert/Alert.vue?vue&type=script&setup=true&lang.ts
9196
- var _hoisted_1$114 = {
9212
+ var _hoisted_1$115 = {
9197
9213
  key: 0,
9198
9214
  "data-hn-alert": "",
9199
9215
  class: "hn-collapse"
9200
9216
  };
9201
- var _hoisted_2$64 = { class: "hn-collapse-body" };
9202
- var _hoisted_3$35 = ["role"];
9217
+ var _hoisted_2$65 = { class: "hn-collapse-body" };
9218
+ var _hoisted_3$36 = ["role"];
9203
9219
  var _hoisted_4$30 = { class: "flex min-w-0 flex-1 flex-col gap-1" };
9204
9220
  var _hoisted_5$23 = {
9205
9221
  key: 0,
@@ -9249,7 +9265,7 @@ var Alert_default = /* @__PURE__ */ defineComponent({
9249
9265
  "leave-from-class": "hn-collapse-open",
9250
9266
  "leave-to-class": "hn-collapse-closed"
9251
9267
  }, toHandlers(unref(hooks))), {
9252
- default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", _hoisted_1$114, [createElementVNode("div", _hoisted_2$64, [createElementVNode("div", {
9268
+ default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", _hoisted_1$115, [createElementVNode("div", _hoisted_2$65, [createElementVNode("div", {
9253
9269
  role: role.value,
9254
9270
  class: normalizeClass(unref(cn)(unref(callout)({ tone: props.tone }), props.class))
9255
9271
  }, [
@@ -9266,7 +9282,7 @@ var Alert_default = /* @__PURE__ */ defineComponent({
9266
9282
  class: "-my-0.5 -me-1",
9267
9283
  onClick: close
9268
9284
  })) : createCommentVNode("", true)
9269
- ], 10, _hoisted_3$35)])])) : createCommentVNode("", true)]),
9285
+ ], 10, _hoisted_3$36)])])) : createCommentVNode("", true)]),
9270
9286
  _: 3
9271
9287
  }, 16);
9272
9288
  };
@@ -9961,7 +9977,7 @@ var PaginationPage_default = /* @__PURE__ */ defineComponent({
9961
9977
  });
9962
9978
  //#endregion
9963
9979
  //#region src/components/pagination/PaginationEllipsis.vue?vue&type=script&setup=true&lang.ts
9964
- var _hoisted_1$113 = {
9980
+ var _hoisted_1$114 = {
9965
9981
  class: "grid",
9966
9982
  "aria-hidden": "true"
9967
9983
  };
@@ -10008,7 +10024,7 @@ var PaginationEllipsis_default = /* @__PURE__ */ defineComponent({
10008
10024
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
10009
10025
  side: props.range.side,
10010
10026
  expanded: expanded.value
10011
- }, () => [createElementVNode("span", _hoisted_1$113, [createVNode(unref(MoreHorizontal), { class: normalizeClass(["hn-transition-base [grid-area:1/1]", expanded.value ? "scale-90 opacity-0" : "scale-100 opacity-100"]) }, null, 8, ["class"]), (openBlock(), createBlock(resolveDynamicComponent(props.range.side === "prev" ? unref(ChevronLeft) : unref(ChevronRight)), { class: normalizeClass([[unref(paginationArrow)({ dir: unref(direction) }), expanded.value ? "scale-100 opacity-100" : "scale-90 opacity-0"], "hn-transition-base [grid-area:1/1]"]) }, null, 8, ["class"]))])])]),
10027
+ }, () => [createElementVNode("span", _hoisted_1$114, [createVNode(unref(MoreHorizontal), { class: normalizeClass(["hn-transition-base [grid-area:1/1]", expanded.value ? "scale-90 opacity-0" : "scale-100 opacity-100"]) }, null, 8, ["class"]), (openBlock(), createBlock(resolveDynamicComponent(props.range.side === "prev" ? unref(ChevronLeft) : unref(ChevronRight)), { class: normalizeClass([[unref(paginationArrow)({ dir: unref(direction) }), expanded.value ? "scale-100 opacity-100" : "scale-90 opacity-0"], "hn-transition-base [grid-area:1/1]"]) }, null, 8, ["class"]))])])]),
10012
10028
  _: 3
10013
10029
  }, 8, [
10014
10030
  "size",
@@ -10553,8 +10569,8 @@ function usePaginationEllipsis(host, items) {
10553
10569
  }
10554
10570
  //#endregion
10555
10571
  //#region src/components/pagination/PaginationPages.vue?vue&type=script&setup=true&lang.ts
10556
- var _hoisted_1$112 = { key: 0 };
10557
- var _hoisted_2$63 = { key: 1 };
10572
+ var _hoisted_1$113 = { key: 0 };
10573
+ var _hoisted_2$64 = { key: 1 };
10558
10574
  //#endregion
10559
10575
  //#region src/components/pagination/PaginationPages.vue
10560
10576
  var PaginationPages_default = /* @__PURE__ */ defineComponent({
@@ -10570,7 +10586,7 @@ var PaginationPages_default = /* @__PURE__ */ defineComponent({
10570
10586
  const ellipsis = usePaginationEllipsis(toRef(props, "host"), () => props.items);
10571
10587
  return (_ctx, _cache) => {
10572
10588
  return openBlock(), createElementBlock(Fragment, null, [
10573
- unref(showFirstLast) ? (openBlock(), createElementBlock("li", _hoisted_1$112, [createVNode(PaginationControl_default, {
10589
+ unref(showFirstLast) ? (openBlock(), createElementBlock("li", _hoisted_1$113, [createVNode(PaginationControl_default, {
10574
10590
  action: "first",
10575
10591
  size: unref(size),
10576
10592
  dir: unref(direction)
@@ -10603,7 +10619,7 @@ var PaginationPages_default = /* @__PURE__ */ defineComponent({
10603
10619
  size: unref(size),
10604
10620
  dir: unref(direction)
10605
10621
  }, null, 8, ["size", "dir"])]),
10606
- unref(showFirstLast) ? (openBlock(), createElementBlock("li", _hoisted_2$63, [createVNode(PaginationControl_default, {
10622
+ unref(showFirstLast) ? (openBlock(), createElementBlock("li", _hoisted_2$64, [createVNode(PaginationControl_default, {
10607
10623
  action: "last",
10608
10624
  size: unref(size),
10609
10625
  dir: unref(direction)
@@ -11268,9 +11284,9 @@ var virtualListItem = tv({
11268
11284
  var virtualListStatus = tv({ base: "text-muted flex shrink-0 items-center justify-center gap-2 p-4 text-sm" });
11269
11285
  //#endregion
11270
11286
  //#region src/components/virtual-list/VirtualChoices.vue?vue&type=script&setup=true&lang.ts
11271
- var _hoisted_1$111 = ["data-index"];
11272
- var _hoisted_2$62 = ["id"];
11273
- var _hoisted_3$34 = ["id"];
11287
+ var _hoisted_1$112 = ["data-index"];
11288
+ var _hoisted_2$63 = ["id"];
11289
+ var _hoisted_3$35 = ["id"];
11274
11290
  var _hoisted_4$29 = { class: "relative" };
11275
11291
  var _hoisted_5$22 = ["data-index"];
11276
11292
  //#endregion
@@ -11328,11 +11344,11 @@ var VirtualChoices_default = /* @__PURE__ */ defineComponent({
11328
11344
  key: 1,
11329
11345
  id: unref(labelId)(entry.index),
11330
11346
  hidden: ""
11331
- }, toDisplayString(unref(rows)[entry.index].label), 9, _hoisted_2$62)) : (openBlock(), createElementBlock("div", {
11347
+ }, toDisplayString(unref(rows)[entry.index].label), 9, _hoisted_2$63)) : (openBlock(), createElementBlock("div", {
11332
11348
  key: 2,
11333
11349
  id: unref(labelId)(entry.index),
11334
11350
  class: normalizeClass(unref(selectLabel)())
11335
- }, toDisplayString(unref(rows)[entry.index].label), 11, _hoisted_3$34))], 14, _hoisted_1$111);
11351
+ }, toDisplayString(unref(rows)[entry.index].label), 11, _hoisted_3$35))], 14, _hoisted_1$112);
11336
11352
  }), 128))], 16), !unref(rows).length ? (openBlock(), createElementBlock("div", {
11337
11353
  key: 0,
11338
11354
  class: normalizeClass(unref(selectEmpty)())
@@ -11388,9 +11404,9 @@ var rekaNavigationViewportStyle = {
11388
11404
  };
11389
11405
  //#endregion
11390
11406
  //#region src/components/select/SelectList.vue?vue&type=script&setup=true&lang.ts
11391
- var _hoisted_1$110 = { class: "min-w-0 flex-1" };
11392
- var _hoisted_2$61 = { class: "block truncate" };
11393
- var _hoisted_3$33 = {
11407
+ var _hoisted_1$111 = { class: "min-w-0 flex-1" };
11408
+ var _hoisted_2$62 = { class: "block truncate" };
11409
+ var _hoisted_3$34 = {
11394
11410
  key: 0,
11395
11411
  class: "text-muted block truncate text-xs"
11396
11412
  };
@@ -11455,7 +11471,7 @@ var SelectList_default = /* @__PURE__ */ defineComponent({
11455
11471
  class: unref(selectItem)()
11456
11472
  }), {
11457
11473
  default: withCtx(() => [createVNode(unref(SelectItemText), { "as-child": "" }, {
11458
- default: withCtx(() => [createElementVNode("span", _hoisted_1$110, [renderSlot(_ctx.$slots, "option", { option }, () => [createElementVNode("span", _hoisted_2$61, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_3$33, toDisplayString(option.description), 1)) : createCommentVNode("", true)])])]),
11474
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$111, [renderSlot(_ctx.$slots, "option", { option }, () => [createElementVNode("span", _hoisted_2$62, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_3$34, toDisplayString(option.description), 1)) : createCommentVNode("", true)])])]),
11459
11475
  _: 2
11460
11476
  }, 1024), createElementVNode("span", _hoisted_4$28, [createVNode(unref(SelectItemIndicator), null, {
11461
11477
  default: withCtx(() => [createVNode(unref(Check))]),
@@ -11574,7 +11590,7 @@ function useClearTransition(visible) {
11574
11590
  }
11575
11591
  //#endregion
11576
11592
  //#region src/components/select/Select.vue?vue&type=script&setup=true&lang.ts
11577
- var _hoisted_1$109 = [
11593
+ var _hoisted_1$110 = [
11578
11594
  "dir",
11579
11595
  "data-invalid",
11580
11596
  "data-disabled"
@@ -11693,7 +11709,7 @@ var Select_default = /* @__PURE__ */ defineComponent({
11693
11709
  _: 1
11694
11710
  }, 8, ["label"])], 2)) : createCommentVNode("", true)]),
11695
11711
  _: 1
11696
- }, 16)], 10, _hoisted_1$109), createVNode(SelectList_default, {
11712
+ }, 16)], 10, _hoisted_1$110), createVNode(SelectList_default, {
11697
11713
  options: props.options,
11698
11714
  keyboard: keyboard.value,
11699
11715
  virtualize: props.virtualize
@@ -11787,12 +11803,12 @@ function focusFieldFrom(root, target) {
11787
11803
  }
11788
11804
  //#endregion
11789
11805
  //#region src/components/input/InputBase.vue?vue&type=script&setup=true&lang.ts
11790
- var _hoisted_1$108 = [
11806
+ var _hoisted_1$109 = [
11791
11807
  "data-invalid",
11792
11808
  "data-disabled",
11793
11809
  "aria-busy"
11794
11810
  ];
11795
- var _hoisted_2$60 = [
11811
+ var _hoisted_2$61 = [
11796
11812
  "id",
11797
11813
  "disabled",
11798
11814
  "aria-invalid",
@@ -11879,7 +11895,7 @@ var InputBase_default = /* @__PURE__ */ defineComponent({
11879
11895
  leading: !!unref(slots).leading,
11880
11896
  trailing: clearing.value || trailingSpinner.value || !!unref(slots).trailing
11881
11897
  })
11882
- }), null, 16, _hoisted_2$60), [[vModelDynamic, model.value]]),
11898
+ }), null, 16, _hoisted_2$61), [[vModelDynamic, model.value]]),
11883
11899
  createVNode(Transition, {
11884
11900
  "enter-active-class": "hn-transition-base",
11885
11901
  "enter-from-class": "scale-90 opacity-0",
@@ -11915,7 +11931,7 @@ var InputBase_default = /* @__PURE__ */ defineComponent({
11915
11931
  key: 1,
11916
11932
  class: normalizeClass(unref(inputAdornment)())
11917
11933
  }, [renderSlot(_ctx.$slots, "trailing")], 2)) : createCommentVNode("", true)
11918
- ], 10, _hoisted_1$108);
11934
+ ], 10, _hoisted_1$109);
11919
11935
  };
11920
11936
  }
11921
11937
  });
@@ -12116,12 +12132,12 @@ function usePagination(props, model, sizeModel, change) {
12116
12132
  }
12117
12133
  //#endregion
12118
12134
  //#region src/components/pagination/Pagination.vue?vue&type=script&setup=true&lang.ts
12119
- var _hoisted_1$107 = ["dir", "aria-busy"];
12120
- var _hoisted_2$59 = {
12135
+ var _hoisted_1$108 = ["dir", "aria-busy"];
12136
+ var _hoisted_2$60 = {
12121
12137
  key: 0,
12122
12138
  class: "relative min-h-0 flex-auto"
12123
12139
  };
12124
- var _hoisted_3$32 = ["inert"];
12140
+ var _hoisted_3$33 = ["inert"];
12125
12141
  var _hoisted_4$27 = [
12126
12142
  "aria-label",
12127
12143
  "inert",
@@ -12195,7 +12211,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
12195
12211
  dir: unref(rootDirection),
12196
12212
  "aria-busy": props.pending || void 0,
12197
12213
  class: unref(cn)("max-w-full", _ctx.$slots.list && "flex min-h-0 flex-col gap-3", props.class)
12198
- }), [_ctx.$slots.list ? (openBlock(), createElementBlock("div", _hoisted_2$59, [createElementVNode("div", { inert: props.pending || void 0 }, [renderSlot(_ctx.$slots, "list", normalizeProps(guardReactiveProps(unref(state))))], 8, _hoisted_3$32), createVNode(LoadingOverlay_default, { visible: props.pending }, null, 8, ["visible"])])) : createCommentVNode("", true), !props.hideSinglePage || unref(state).pageCount > 1 ? (openBlock(), createBlock(unref(PaginationRoot), {
12214
+ }), [_ctx.$slots.list ? (openBlock(), createElementBlock("div", _hoisted_2$60, [createElementVNode("div", { inert: props.pending || void 0 }, [renderSlot(_ctx.$slots, "list", normalizeProps(guardReactiveProps(unref(state))))], 8, _hoisted_3$33), createVNode(LoadingOverlay_default, { visible: props.pending }, null, 8, ["visible"])])) : createCommentVNode("", true), !props.hideSinglePage || unref(state).pageCount > 1 ? (openBlock(), createBlock(unref(PaginationRoot), {
12199
12215
  key: 1,
12200
12216
  page: unref(page),
12201
12217
  total: unref(total),
@@ -12233,13 +12249,13 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
12233
12249
  "show-edges",
12234
12250
  "disabled",
12235
12251
  "onUpdate:page"
12236
- ])) : createCommentVNode("", true)], 16, _hoisted_1$107);
12252
+ ])) : createCommentVNode("", true)], 16, _hoisted_1$108);
12237
12253
  };
12238
12254
  }
12239
12255
  });
12240
12256
  //#endregion
12241
12257
  //#region src/components/prev-next/PrevNext.vue?vue&type=script&setup=true&lang.ts
12242
- var _hoisted_1$106 = ["aria-label"];
12258
+ var _hoisted_1$107 = ["aria-label"];
12243
12259
  //#endregion
12244
12260
  //#region src/components/prev-next/PrevNext.vue
12245
12261
  var PrevNext_default = /* @__PURE__ */ defineComponent({
@@ -12256,7 +12272,7 @@ var PrevNext_default = /* @__PURE__ */ defineComponent({
12256
12272
  return openBlock(), createElementBlock("nav", {
12257
12273
  "aria-label": props.label ?? unref(t).pagination.navLabel,
12258
12274
  class: normalizeClass(unref(cn)("grid grid-cols-1 gap-4 sm:grid-cols-2", props.class))
12259
- }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$106);
12275
+ }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$107);
12260
12276
  };
12261
12277
  }
12262
12278
  });
@@ -12280,7 +12296,7 @@ var prevNextEyebrow = tv({
12280
12296
  });
12281
12297
  //#endregion
12282
12298
  //#region src/components/prev-next/PrevNextLink.vue?vue&type=script&setup=true&lang.ts
12283
- var _hoisted_1$105 = { class: "text-fg max-w-full font-medium" };
12299
+ var _hoisted_1$106 = { class: "text-fg max-w-full font-medium" };
12284
12300
  //#endregion
12285
12301
  //#region src/components/prev-next/PrevNextLink.vue
12286
12302
  var PrevNextLink_default = /* @__PURE__ */ defineComponent({
@@ -12316,7 +12332,7 @@ var PrevNextLink_default = /* @__PURE__ */ defineComponent({
12316
12332
  class: "size-4",
12317
12333
  "aria-hidden": "true"
12318
12334
  })), createTextVNode(" " + toDisplayString(props.label ?? (props.direction === "prev" ? unref(t).pagination.prev : unref(t).pagination.next)), 1)], 2),
12319
- createElementVNode("span", _hoisted_1$105, [renderSlot(_ctx.$slots, "default")])
12335
+ createElementVNode("span", _hoisted_1$106, [renderSlot(_ctx.$slots, "default")])
12320
12336
  ]),
12321
12337
  _: 3
12322
12338
  }, 16, [
@@ -12392,8 +12408,8 @@ var tableCell = tv({
12392
12408
  });
12393
12409
  //#endregion
12394
12410
  //#region src/components/table/Table.vue?vue&type=script&setup=true&lang.ts
12395
- var _hoisted_1$104 = { class: "hn-table" };
12396
- var _hoisted_2$58 = { key: 0 };
12411
+ var _hoisted_1$105 = { class: "hn-table" };
12412
+ var _hoisted_2$59 = { key: 0 };
12397
12413
  //#endregion
12398
12414
  //#region src/components/table/Table.vue
12399
12415
  var Table_default = /* @__PURE__ */ defineComponent({
@@ -12430,7 +12446,7 @@ var Table_default = /* @__PURE__ */ defineComponent({
12430
12446
  stickyHeader: props.stickyHeader
12431
12447
  }), props.class))
12432
12448
  }, {
12433
- default: withCtx(() => [createElementVNode("table", _hoisted_1$104, [props.caption ? (openBlock(), createElementBlock("caption", _hoisted_2$58, [createElementVNode("span", null, toDisplayString(props.caption), 1)])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")])]),
12449
+ default: withCtx(() => [createElementVNode("table", _hoisted_1$105, [props.caption ? (openBlock(), createElementBlock("caption", _hoisted_2$59, [createElementVNode("span", null, toDisplayString(props.caption), 1)])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")])]),
12434
12450
  _: 3
12435
12451
  }, 8, ["direction", "class"]);
12436
12452
  };
@@ -12477,7 +12493,7 @@ var TableRow_default = /* @__PURE__ */ defineComponent({
12477
12493
  });
12478
12494
  //#endregion
12479
12495
  //#region src/components/table/TableHead.vue?vue&type=script&setup=true&lang.ts
12480
- var _hoisted_1$103 = ["scope"];
12496
+ var _hoisted_1$104 = ["scope"];
12481
12497
  //#endregion
12482
12498
  //#region src/components/table/TableHead.vue
12483
12499
  var TableHead_default = /* @__PURE__ */ defineComponent({
@@ -12502,7 +12518,7 @@ var TableHead_default = /* @__PURE__ */ defineComponent({
12502
12518
  sticky: props.sticky,
12503
12519
  head: true
12504
12520
  }), props.class))
12505
- }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$103);
12521
+ }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$104);
12506
12522
  };
12507
12523
  }
12508
12524
  });
@@ -13778,8 +13794,8 @@ var textareaField = tv({ base: [
13778
13794
  ] });
13779
13795
  //#endregion
13780
13796
  //#region src/components/textarea/Textarea.vue?vue&type=script&setup=true&lang.ts
13781
- var _hoisted_1$102 = ["data-invalid", "data-disabled"];
13782
- var _hoisted_2$57 = [
13797
+ var _hoisted_1$103 = ["data-invalid", "data-disabled"];
13798
+ var _hoisted_2$58 = [
13783
13799
  "id",
13784
13800
  "rows",
13785
13801
  "disabled",
@@ -13852,9 +13868,9 @@ var Textarea_default = /* @__PURE__ */ defineComponent({
13852
13868
  "aria-describedby": unref(describedBy),
13853
13869
  class: unref(textareaField)(),
13854
13870
  onInput: _cache[1] || (_cache[1] = (...args) => unref(fit) && unref(fit)(...args))
13855
- }), null, 16, _hoisted_2$57), [[vModelText, model.value]])]),
13871
+ }), null, 16, _hoisted_2$58), [[vModelText, model.value]])]),
13856
13872
  _: 1
13857
- }, 512)], 14, _hoisted_1$102);
13873
+ }, 512)], 14, _hoisted_1$103);
13858
13874
  };
13859
13875
  }
13860
13876
  });
@@ -14688,7 +14704,7 @@ var NumberInput_default = /* @__PURE__ */ defineComponent({
14688
14704
  });
14689
14705
  //#endregion
14690
14706
  //#region src/components/password-input/PasswordInput.vue?vue&type=script&setup=true&lang.ts
14691
- var _hoisted_1$101 = { class: "relative inline-flex" };
14707
+ var _hoisted_1$102 = { class: "relative inline-flex" };
14692
14708
  //#endregion
14693
14709
  //#region src/components/password-input/PasswordInput.vue
14694
14710
  var PasswordInput_default = /* @__PURE__ */ defineComponent({
@@ -14740,7 +14756,7 @@ var PasswordInput_default = /* @__PURE__ */ defineComponent({
14740
14756
  disabled: props.disabled,
14741
14757
  onClick: _cache[0] || (_cache[0] = ($event) => visible.value = !visible.value)
14742
14758
  }, {
14743
- default: withCtx(() => [createElementVNode("span", _hoisted_1$101, [createVNode(Transition, {
14759
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$102, [createVNode(Transition, {
14744
14760
  "enter-active-class": "hn-transition-base",
14745
14761
  "enter-from-class": "scale-90 opacity-0",
14746
14762
  "leave-active-class": "hn-transition absolute",
@@ -14842,7 +14858,7 @@ var inputGroup = tv({
14842
14858
  var inputGroupAddon = tv({ base: "text-muted flex shrink-0 items-center gap-2 px-[var(--hn-input-px)] whitespace-nowrap [&>svg]:size-[var(--hn-input-icon)]" });
14843
14859
  //#endregion
14844
14860
  //#region src/components/input-group/InputGroup.vue?vue&type=script&setup=true&lang.ts
14845
- var _hoisted_1$100 = ["data-invalid", "data-disabled"];
14861
+ var _hoisted_1$101 = ["data-invalid", "data-disabled"];
14846
14862
  //#endregion
14847
14863
  //#region src/components/input-group/InputGroup.vue
14848
14864
  var InputGroup_default = /* @__PURE__ */ defineComponent({
@@ -14874,7 +14890,7 @@ var InputGroup_default = /* @__PURE__ */ defineComponent({
14874
14890
  size: props.size
14875
14891
  }), unref(inputGroup)({ divided: props.variant !== "bare" }), props.class)),
14876
14892
  onClick: _cache[0] || (_cache[0] = ($event) => unref(focusFieldFrom)($event.currentTarget, $event.target))
14877
- }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$100);
14893
+ }, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1$101);
14878
14894
  };
14879
14895
  }
14880
14896
  });
@@ -14904,12 +14920,12 @@ var multiSelectTrigger = tv({ base: [
14904
14920
  var multiSelectChips = tv({ base: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden" });
14905
14921
  //#endregion
14906
14922
  //#region src/components/multi-select/MultiSelect.vue?vue&type=script&setup=true&lang.ts
14907
- var _hoisted_1$99 = { class: "min-w-0 truncate" };
14908
- var _hoisted_2$56 = {
14923
+ var _hoisted_1$100 = { class: "min-w-0 truncate" };
14924
+ var _hoisted_2$57 = {
14909
14925
  key: 1,
14910
14926
  class: "min-w-0 truncate"
14911
14927
  };
14912
- var _hoisted_3$31 = [
14928
+ var _hoisted_3$32 = [
14913
14929
  "name",
14914
14930
  "required",
14915
14931
  "autocomplete",
@@ -15021,7 +15037,7 @@ var MultiSelect_default = /* @__PURE__ */ defineComponent({
15021
15037
  onClick: isolate,
15022
15038
  onRemove: ($event) => remove(option.value)
15023
15039
  }, {
15024
- default: withCtx(() => [createElementVNode("span", _hoisted_1$99, toDisplayString(option.label), 1)]),
15040
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$100, toDisplayString(option.label), 1)]),
15025
15041
  _: 2
15026
15042
  }, 1032, [
15027
15043
  "size",
@@ -15036,7 +15052,7 @@ var MultiSelect_default = /* @__PURE__ */ defineComponent({
15036
15052
  }, {
15037
15053
  default: withCtx(() => [createTextVNode(" +" + toDisplayString(overflow.value), 1)]),
15038
15054
  _: 1
15039
- }, 8, ["size", "disabled"])) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("span", _hoisted_2$56, toDisplayString(props.placeholder ?? unref(t).select.placeholder), 1))], 2),
15055
+ }, 8, ["size", "disabled"])) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("span", _hoisted_2$57, toDisplayString(props.placeholder ?? unref(t).select.placeholder), 1))], 2),
15040
15056
  createVNode(Transition, {
15041
15057
  "enter-active-class": "hn-transition-base",
15042
15058
  "enter-from-class": "scale-90 opacity-0",
@@ -15090,7 +15106,7 @@ var MultiSelect_default = /* @__PURE__ */ defineComponent({
15090
15106
  value: option.value,
15091
15107
  disabled: option.disabled
15092
15108
  }, toDisplayString(option.label), 9, _hoisted_4$26);
15093
- }), 128))], 8, _hoisted_3$31), [[vModelSelect, model.value]])]),
15109
+ }), 128))], 8, _hoisted_3$32), [[vModelSelect, model.value]])]),
15094
15110
  _: 1
15095
15111
  })) : createCommentVNode("", true),
15096
15112
  createVNode(SelectList_default, {
@@ -15189,9 +15205,9 @@ var comboboxContent = tv({ base: ["hn-anim-pop z-(--hn-z-overlay) flex w-[var(--
15189
15205
  var comboboxList = tv({ base: "max-h-[min(20rem,var(--hn-overlay-available-height,20rem))]" });
15190
15206
  //#endregion
15191
15207
  //#region src/components/combobox/ComboboxList.vue?vue&type=script&setup=true&lang.ts
15192
- var _hoisted_1$98 = { class: "min-w-0 flex-1" };
15193
- var _hoisted_2$55 = { class: "block truncate" };
15194
- var _hoisted_3$30 = {
15208
+ var _hoisted_1$99 = { class: "min-w-0 flex-1" };
15209
+ var _hoisted_2$56 = { class: "block truncate" };
15210
+ var _hoisted_3$31 = {
15195
15211
  key: 0,
15196
15212
  class: "text-muted block truncate text-xs"
15197
15213
  };
@@ -15255,7 +15271,7 @@ var ComboboxList_default = /* @__PURE__ */ defineComponent({
15255
15271
  "text-value": option.label,
15256
15272
  class: unref(selectItem)()
15257
15273
  }), {
15258
- default: withCtx(() => [createElementVNode("span", _hoisted_1$98, [renderSlot(_ctx.$slots, "option", { option }, () => [createElementVNode("span", _hoisted_2$55, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_3$30, toDisplayString(option.description), 1)) : createCommentVNode("", true)])]), createElementVNode("span", _hoisted_4$25, [createVNode(unref(ComboboxItemIndicator), null, {
15274
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$99, [renderSlot(_ctx.$slots, "option", { option }, () => [createElementVNode("span", _hoisted_2$56, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_3$31, toDisplayString(option.description), 1)) : createCommentVNode("", true)])]), createElementVNode("span", _hoisted_4$25, [createVNode(unref(ComboboxItemIndicator), null, {
15259
15275
  default: withCtx(() => [createVNode(unref(Check))]),
15260
15276
  _: 1
15261
15277
  })])]),
@@ -15340,7 +15356,7 @@ var ComboboxList_default = /* @__PURE__ */ defineComponent({
15340
15356
  });
15341
15357
  //#endregion
15342
15358
  //#region src/components/combobox/Combobox.vue?vue&type=script&setup=true&lang.ts
15343
- var _hoisted_1$97 = [
15359
+ var _hoisted_1$98 = [
15344
15360
  "data-invalid",
15345
15361
  "data-disabled",
15346
15362
  "aria-busy"
@@ -15490,7 +15506,7 @@ var Combobox_default = /* @__PURE__ */ defineComponent({
15490
15506
  "disabled",
15491
15507
  "class"
15492
15508
  ])
15493
- ], 42, _hoisted_1$97)]),
15509
+ ], 42, _hoisted_1$98)]),
15494
15510
  _: 1
15495
15511
  }), createVNode(ComboboxList_default, {
15496
15512
  options: props.options,
@@ -15815,8 +15831,8 @@ function useAutocomplete(config) {
15815
15831
  }
15816
15832
  //#endregion
15817
15833
  //#region src/components/autocomplete/Autocomplete.vue?vue&type=script&setup=true&lang.ts
15818
- var _hoisted_1$96 = ["data-invalid", "data-disabled"];
15819
- var _hoisted_2$54 = [
15834
+ var _hoisted_1$97 = ["data-invalid", "data-disabled"];
15835
+ var _hoisted_2$55 = [
15820
15836
  "id",
15821
15837
  "value",
15822
15838
  "aria-expanded",
@@ -15830,7 +15846,7 @@ var _hoisted_2$54 = [
15830
15846
  "readonly",
15831
15847
  "placeholder"
15832
15848
  ];
15833
- var _hoisted_3$29 = [
15849
+ var _hoisted_3$30 = [
15834
15850
  "id",
15835
15851
  "aria-label",
15836
15852
  "aria-labelledby",
@@ -15963,7 +15979,7 @@ var Autocomplete_default = /* @__PURE__ */ defineComponent({
15963
15979
  onKeydown: _cache[4] || (_cache[4] = (...args) => unref(onKeydown) && unref(onKeydown)(...args)),
15964
15980
  onCompositionstart: _cache[5] || (_cache[5] = ($event) => composing.value = true),
15965
15981
  onCompositionend: _cache[6] || (_cache[6] = (...args) => unref(onCompositionEnd) && unref(onCompositionEnd)(...args))
15966
- }), null, 16, _hoisted_2$54),
15982
+ }), null, 16, _hoisted_2$55),
15967
15983
  createVNode(Transition, {
15968
15984
  "enter-active-class": "hn-transition-base",
15969
15985
  "enter-from-class": "scale-90 opacity-0",
@@ -15980,7 +15996,7 @@ var Autocomplete_default = /* @__PURE__ */ defineComponent({
15980
15996
  key: 1,
15981
15997
  class: normalizeClass(unref(inputAdornment)())
15982
15998
  }, [renderSlot(_ctx.$slots, "trailing")], 2)) : createCommentVNode("", true)
15983
- ], 10, _hoisted_1$96), createVNode(Popover_default, {
15999
+ ], 10, _hoisted_1$97), createVNode(Popover_default, {
15984
16000
  open: unref(visible),
15985
16001
  "onUpdate:open": _cache[9] || (_cache[9] = ($event) => isRef(visible) ? visible.value = $event : null),
15986
16002
  anchor: unref(host),
@@ -16024,7 +16040,7 @@ var Autocomplete_default = /* @__PURE__ */ defineComponent({
16024
16040
  option,
16025
16041
  active: unref(active) === option.value
16026
16042
  }, () => [createElementVNode("span", _hoisted_5$18, [createElementVNode("span", _hoisted_6$12, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_7$8, toDisplayString(option.description), 1)) : createCommentVNode("", true)])])], 42, _hoisted_4$24);
16027
- }), 128))], 10, _hoisted_3$29), props.loading || !props.options.length ? (openBlock(), createElementBlock("div", {
16043
+ }), 128))], 10, _hoisted_3$30), props.loading || !props.options.length ? (openBlock(), createElementBlock("div", {
16028
16044
  key: 0,
16029
16045
  role: "status",
16030
16046
  class: normalizeClass(unref(selectEmpty)())
@@ -16123,9 +16139,9 @@ var Kbd_default = /* @__PURE__ */ defineComponent({
16123
16139
  });
16124
16140
  //#endregion
16125
16141
  //#region src/components/command-palette/CommandPaletteItem.vue?vue&type=script&setup=true&lang.ts
16126
- var _hoisted_1$95 = { class: "truncate" };
16127
- var _hoisted_2$53 = ["textContent"];
16128
- var _hoisted_3$28 = ["textContent"];
16142
+ var _hoisted_1$96 = { class: "truncate" };
16143
+ var _hoisted_2$54 = ["textContent"];
16144
+ var _hoisted_3$29 = ["textContent"];
16129
16145
  var _hoisted_4$23 = ["textContent"];
16130
16146
  var _hoisted_5$17 = {
16131
16147
  key: 0,
@@ -16171,13 +16187,13 @@ var CommandPaletteItem_default = /* @__PURE__ */ defineComponent({
16171
16187
  !_ctx.$slots.default ? (openBlock(), createElementBlock("span", {
16172
16188
  key: 2,
16173
16189
  class: normalizeClass(unref(commandItemBody)())
16174
- }, [createElementVNode("span", _hoisted_1$95, [
16175
- createElementVNode("span", { textContent: toDisplayString(parts.value[0]) }, null, 8, _hoisted_2$53),
16190
+ }, [createElementVNode("span", _hoisted_1$96, [
16191
+ createElementVNode("span", { textContent: toDisplayString(parts.value[0]) }, null, 8, _hoisted_2$54),
16176
16192
  parts.value[1] ? (openBlock(), createElementBlock("span", {
16177
16193
  key: 0,
16178
16194
  class: normalizeClass(unref(commandItemMatch)()),
16179
16195
  textContent: toDisplayString(parts.value[1])
16180
- }, null, 10, _hoisted_3$28)) : createCommentVNode("", true),
16196
+ }, null, 10, _hoisted_3$29)) : createCommentVNode("", true),
16181
16197
  parts.value[2] ? (openBlock(), createElementBlock("span", {
16182
16198
  key: 1,
16183
16199
  textContent: toDisplayString(parts.value[2])
@@ -16808,9 +16824,9 @@ var CommandPalette_default = /* @__PURE__ */ defineComponent({
16808
16824
  });
16809
16825
  //#endregion
16810
16826
  //#region src/components/listbox/ListboxOptionContent.vue?vue&type=script&setup=true&lang.ts
16811
- var _hoisted_1$94 = { class: "min-w-0 flex-1" };
16812
- var _hoisted_2$52 = { class: "block truncate" };
16813
- var _hoisted_3$27 = {
16827
+ var _hoisted_1$95 = { class: "min-w-0 flex-1" };
16828
+ var _hoisted_2$53 = { class: "block truncate" };
16829
+ var _hoisted_3$28 = {
16814
16830
  key: 0,
16815
16831
  class: "text-muted block truncate text-xs"
16816
16832
  };
@@ -16830,10 +16846,10 @@ var ListboxOptionContent_default = /* @__PURE__ */ defineComponent({
16830
16846
  const slots = useSlots();
16831
16847
  const { isSelected: selected } = injectListboxItemContext();
16832
16848
  return (_ctx, _cache) => {
16833
- return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", _hoisted_1$94, [renderSlot(_ctx.$slots, "option", {
16849
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", _hoisted_1$95, [renderSlot(_ctx.$slots, "option", {
16834
16850
  option: props.option,
16835
16851
  selected: unref(selected)
16836
- }, () => [createElementVNode("span", _hoisted_2$52, toDisplayString(props.option.label), 1), props.option.description ? (openBlock(), createElementBlock("span", _hoisted_3$27, toDisplayString(props.option.description), 1)) : createCommentVNode("", true)])]), slots.trailing ? renderSlot(_ctx.$slots, "trailing", {
16852
+ }, () => [createElementVNode("span", _hoisted_2$53, toDisplayString(props.option.label), 1), props.option.description ? (openBlock(), createElementBlock("span", _hoisted_3$28, toDisplayString(props.option.description), 1)) : createCommentVNode("", true)])]), slots.trailing ? renderSlot(_ctx.$slots, "trailing", {
16837
16853
  option: props.option,
16838
16854
  selected: unref(selected)
16839
16855
  }, void 0, void 0, 0) : (openBlock(), createElementBlock("span", _hoisted_4$22, [createVNode(unref(ListboxItemIndicator), null, {
@@ -17109,7 +17125,7 @@ var checkboxDescription = tv({
17109
17125
  });
17110
17126
  //#endregion
17111
17127
  //#region src/components/tree/TreeCheck.vue?vue&type=script&setup=true&lang.ts
17112
- var _hoisted_1$93 = ["data-state"];
17128
+ var _hoisted_1$94 = ["data-state"];
17113
17129
  //#endregion
17114
17130
  //#region src/components/tree/TreeCheck.vue
17115
17131
  var TreeCheck_default = /* @__PURE__ */ defineComponent({
@@ -17142,7 +17158,7 @@ var TreeCheck_default = /* @__PURE__ */ defineComponent({
17142
17158
  }, {
17143
17159
  default: withCtx(() => [props.indeterminate ? (openBlock(), createBlock(unref(Minus), { key: 0 })) : createCommentVNode("", true)]),
17144
17160
  _: 1
17145
- })], 10, _hoisted_1$93);
17161
+ })], 10, _hoisted_1$94);
17146
17162
  };
17147
17163
  }
17148
17164
  });
@@ -17269,7 +17285,7 @@ function useVirtualTree(props, viewport) {
17269
17285
  }
17270
17286
  //#endregion
17271
17287
  //#region src/components/tree/VirtualTreeWindow.vue?vue&type=script&setup=true&lang.ts
17272
- var _hoisted_1$92 = ["data-index"];
17288
+ var _hoisted_1$93 = ["data-index"];
17273
17289
  //#endregion
17274
17290
  //#region src/components/tree/VirtualTreeWindow.vue
17275
17291
  var VirtualTreeWindow_default = /* @__PURE__ */ defineComponent({
@@ -17306,7 +17322,7 @@ var VirtualTreeWindow_default = /* @__PURE__ */ defineComponent({
17306
17322
  role: "presentation",
17307
17323
  class: normalizeClass(unref(virtualListItem)({ orientation: "vertical" })),
17308
17324
  style: normalizeStyle({ marginBlockStart: `${entry.gapBefore}px` })
17309
- }, [renderSlot(_ctx.$slots, "default", { item: props.items[entry.index] })], 14, _hoisted_1$92);
17325
+ }, [renderSlot(_ctx.$slots, "default", { item: props.items[entry.index] })], 14, _hoisted_1$93);
17310
17326
  }), 128))], 6);
17311
17327
  };
17312
17328
  }
@@ -17525,13 +17541,13 @@ var treeToggle = tv({ base: "text-muted flex size-5 shrink-0 cursor-pointer item
17525
17541
  var treeEmpty = tv({ base: "text-muted px-2.5 py-2 text-sm" });
17526
17542
  //#endregion
17527
17543
  //#region src/components/tree/Tree.vue?vue&type=script&setup=true&lang.ts
17528
- var _hoisted_1$91 = [
17544
+ var _hoisted_1$92 = [
17529
17545
  "id",
17530
17546
  "aria-labelledby",
17531
17547
  "aria-describedby"
17532
17548
  ];
17533
- var _hoisted_2$51 = ["onClick"];
17534
- var _hoisted_3$26 = {
17549
+ var _hoisted_2$52 = ["onClick"];
17550
+ var _hoisted_3$27 = {
17535
17551
  key: 1,
17536
17552
  class: "size-5 shrink-0",
17537
17553
  "aria-hidden": "true"
@@ -17582,7 +17598,7 @@ var Tree_default = /* @__PURE__ */ defineComponent({
17582
17598
  "aria-describedby": unref(describedBy),
17583
17599
  "data-hn-tree": "",
17584
17600
  class: unref(cn)(unref(treeEmpty)(), props.class)
17585
- }), [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(t).tree.empty), 1)])], 16, _hoisted_1$91)) : (openBlock(), createBlock(unref(TreeRoot), mergeProps({ key: 1 }, _ctx.$attrs, {
17601
+ }), [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(t).tree.empty), 1)])], 16, _hoisted_1$92)) : (openBlock(), createBlock(unref(TreeRoot), mergeProps({ key: 1 }, _ctx.$attrs, {
17586
17602
  id: unref(id),
17587
17603
  expanded: unref(expanded),
17588
17604
  "onUpdate:expanded": _cache[0] || (_cache[0] = ($event) => isRef(expanded) ? expanded.value = $event : null),
@@ -17630,7 +17646,7 @@ var Tree_default = /* @__PURE__ */ defineComponent({
17630
17646
  }, [createVNode(DisclosureIcon_default, {
17631
17647
  direction: "end",
17632
17648
  open: isExpanded
17633
- }, null, 8, ["open"])], 10, _hoisted_2$51)) : (openBlock(), createElementBlock("span", _hoisted_3$26)),
17649
+ }, null, 8, ["open"])], 10, _hoisted_2$52)) : (openBlock(), createElementBlock("span", _hoisted_3$27)),
17634
17650
  props.multiple ? (openBlock(), createBlock(TreeCheck_default, {
17635
17651
  key: 2,
17636
17652
  selected: unref(state)(item.value).selected,
@@ -17700,8 +17716,8 @@ var treeSelectRow = tv({ base: [
17700
17716
  var treeSelectToggle = tv({ base: ["text-muted flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm", "[&>span>svg]:size-3.5"] });
17701
17717
  //#endregion
17702
17718
  //#region src/components/tree-select/TreeSelectSearch.vue?vue&type=script&setup=true&lang.ts
17703
- var _hoisted_1$90 = { class: "border-line shrink-0 border-b px-1" };
17704
- var _hoisted_2$50 = [
17719
+ var _hoisted_1$91 = { class: "border-line shrink-0 border-b px-1" };
17720
+ var _hoisted_2$51 = [
17705
17721
  "aria-label",
17706
17722
  "aria-controls",
17707
17723
  "placeholder"
@@ -17728,7 +17744,7 @@ var TreeSelectSearch_default = /* @__PURE__ */ defineComponent({
17728
17744
  const input = shallowRef(null);
17729
17745
  __expose({ focus: () => input.value?.focus() });
17730
17746
  return (_ctx, _cache) => {
17731
- return openBlock(), createElementBlock("div", _hoisted_1$90, [createElementVNode("div", { class: normalizeClass(unref(textInputHost)({
17747
+ return openBlock(), createElementBlock("div", _hoisted_1$91, [createElementVNode("div", { class: normalizeClass(unref(textInputHost)({
17732
17748
  variant: "bare",
17733
17749
  size: "sm"
17734
17750
  })) }, [
@@ -17749,7 +17765,7 @@ var TreeSelectSearch_default = /* @__PURE__ */ defineComponent({
17749
17765
  trailing: !!model.value
17750
17766
  })),
17751
17767
  onKeydown: _cache[1] || (_cache[1] = ($event) => emit("keydown", $event))
17752
- }, null, 42, _hoisted_2$50), [[vModelText, model.value]]),
17768
+ }, null, 42, _hoisted_2$51), [[vModelText, model.value]]),
17753
17769
  createVNode(Transition, {
17754
17770
  "enter-active-class": "hn-transition-base",
17755
17771
  "enter-from-class": "scale-90 opacity-0",
@@ -17909,7 +17925,7 @@ function useTreeSelect(props, model, open, search) {
17909
17925
  }
17910
17926
  //#endregion
17911
17927
  //#region src/components/tree-select/TreeSelect.vue?vue&type=script&setup=true&lang.ts
17912
- var _hoisted_1$89 = [
17928
+ var _hoisted_1$90 = [
17913
17929
  "id",
17914
17930
  "aria-describedby",
17915
17931
  "aria-expanded",
@@ -17919,8 +17935,8 @@ var _hoisted_1$89 = [
17919
17935
  "data-disabled",
17920
17936
  "aria-invalid"
17921
17937
  ];
17922
- var _hoisted_2$49 = { class: "min-w-0 flex-1 truncate" };
17923
- var _hoisted_3$25 = ["onClick"];
17938
+ var _hoisted_2$50 = { class: "min-w-0 flex-1 truncate" };
17939
+ var _hoisted_3$26 = ["onClick"];
17924
17940
  var _hoisted_4$20 = {
17925
17941
  key: 1,
17926
17942
  class: "size-5 shrink-0"
@@ -18003,7 +18019,7 @@ var TreeSelect_default = /* @__PURE__ */ defineComponent({
18003
18019
  variant: props.variant,
18004
18020
  size: props.size
18005
18021
  }), unref(selectTrigger)(), props.class)
18006
- }), [createElementVNode("span", _hoisted_2$49, toDisplayString(unref(selected) ? unref(selected).label : props.placeholder ?? unref(t).select.placeholder), 1), createElementVNode("span", { class: normalizeClass(unref(inputAdornment)()) }, [createVNode(DisclosureIcon_default)], 2)], 16, _hoisted_1$89)]),
18022
+ }), [createElementVNode("span", _hoisted_2$50, toDisplayString(unref(selected) ? unref(selected).label : props.placeholder ?? unref(t).select.placeholder), 1), createElementVNode("span", { class: normalizeClass(unref(inputAdornment)()) }, [createVNode(DisclosureIcon_default)], 2)], 16, _hoisted_1$90)]),
18007
18023
  _: 1
18008
18024
  }), createVNode(unref(PopoverPortal), null, {
18009
18025
  default: withCtx(() => [createVNode(unref(PopoverContent), {
@@ -18082,7 +18098,7 @@ var TreeSelect_default = /* @__PURE__ */ defineComponent({
18082
18098
  }, [createVNode(DisclosureIcon_default, {
18083
18099
  direction: "end",
18084
18100
  open: isExpanded
18085
- }, null, 8, ["open"])], 10, _hoisted_3$25)) : (openBlock(), createElementBlock("span", _hoisted_4$20)),
18101
+ }, null, 8, ["open"])], 10, _hoisted_3$26)) : (openBlock(), createElementBlock("span", _hoisted_4$20)),
18086
18102
  createElementVNode("span", _hoisted_5$15, [renderSlot(_ctx.$slots, "node", { node: item.value }, () => [createElementVNode("span", _hoisted_6$10, toDisplayString(item.value.label), 1), item.value.description ? (openBlock(), createElementBlock("span", _hoisted_7$7, toDisplayString(item.value.description), 1)) : createCommentVNode("", true)])]),
18087
18103
  createElementVNode("span", _hoisted_8$5, [isSelected ? (openBlock(), createBlock(unref(Check), { key: 0 })) : createCommentVNode("", true)])
18088
18104
  ]),
@@ -18413,7 +18429,7 @@ var CheckboxRoot = defineComponent({
18413
18429
  });
18414
18430
  //#endregion
18415
18431
  //#region src/components/checkbox/Checkbox.vue?vue&type=script&setup=true&lang.ts
18416
- var _hoisted_1$88 = ["data-disabled"];
18432
+ var _hoisted_1$89 = ["data-disabled"];
18417
18433
  //#endregion
18418
18434
  //#region src/components/checkbox/Checkbox.vue
18419
18435
  var Checkbox_default = /* @__PURE__ */ defineComponent({
@@ -18510,7 +18526,7 @@ var Checkbox_default = /* @__PURE__ */ defineComponent({
18510
18526
  controlPlacement: props.controlPlacement
18511
18527
  }))
18512
18528
  }, toDisplayString(props.description), 3)) : createCommentVNode("", true)
18513
- ], 10, _hoisted_1$88);
18529
+ ], 10, _hoisted_1$89);
18514
18530
  };
18515
18531
  }
18516
18532
  });
@@ -18984,7 +19000,7 @@ var RadioGroupIndicator = defineComponent({
18984
19000
  var radioDot = tv({ base: "block size-[calc(var(--hn-checkbox-size)/2)] bg-surface rounded-full" });
18985
19001
  //#endregion
18986
19002
  //#region src/components/radio-group/RadioGroup.vue?vue&type=script&setup=true&lang.ts
18987
- var _hoisted_1$87 = ["data-disabled"];
19003
+ var _hoisted_1$88 = ["data-disabled"];
18988
19004
  //#endregion
18989
19005
  //#region src/components/radio-group/RadioGroup.vue
18990
19006
  var RadioGroup_default = /* @__PURE__ */ defineComponent({
@@ -19078,7 +19094,7 @@ var RadioGroup_default = /* @__PURE__ */ defineComponent({
19078
19094
  controlPlacement: props.controlPlacement
19079
19095
  }))
19080
19096
  }, toDisplayString(option.description), 3)) : createCommentVNode("", true)
19081
- ], 10, _hoisted_1$87);
19097
+ ], 10, _hoisted_1$88);
19082
19098
  }), 128))]),
19083
19099
  _: 3
19084
19100
  }, 8, [
@@ -19230,7 +19246,7 @@ var switchThumb = tv({ base: [
19230
19246
  ] });
19231
19247
  //#endregion
19232
19248
  //#region src/components/switch/Switch.vue?vue&type=script&setup=true&lang.ts
19233
- var _hoisted_1$86 = ["data-disabled"];
19249
+ var _hoisted_1$87 = ["data-disabled"];
19234
19250
  //#endregion
19235
19251
  //#region src/components/switch/Switch.vue
19236
19252
  var Switch_default = /* @__PURE__ */ defineComponent({
@@ -19311,7 +19327,7 @@ var Switch_default = /* @__PURE__ */ defineComponent({
19311
19327
  controlPlacement: props.controlPlacement
19312
19328
  }))
19313
19329
  }, toDisplayString(props.description), 3)) : createCommentVNode("", true)
19314
- ], 10, _hoisted_1$86);
19330
+ ], 10, _hoisted_1$87);
19315
19331
  };
19316
19332
  }
19317
19333
  });
@@ -20087,7 +20103,7 @@ var SliderMarks_default = /* @__PURE__ */ defineComponent({
20087
20103
  });
20088
20104
  //#endregion
20089
20105
  //#region src/components/slider/Slider.vue?vue&type=script&setup=true&lang.ts
20090
- var _hoisted_1$85 = [
20106
+ var _hoisted_1$86 = [
20091
20107
  "dir",
20092
20108
  "data-disabled",
20093
20109
  "data-dragging"
@@ -20208,13 +20224,13 @@ var Slider_default = /* @__PURE__ */ defineComponent({
20208
20224
  "marks",
20209
20225
  "min",
20210
20226
  "max"
20211
- ])) : createCommentVNode("", true)], 16, _hoisted_1$85);
20227
+ ])) : createCommentVNode("", true)], 16, _hoisted_1$86);
20212
20228
  };
20213
20229
  }
20214
20230
  });
20215
20231
  //#endregion
20216
20232
  //#region src/components/range-slider/RangeSlider.vue?vue&type=script&setup=true&lang.ts
20217
- var _hoisted_1$84 = [
20233
+ var _hoisted_1$85 = [
20218
20234
  "aria-labelledby",
20219
20235
  "aria-describedby",
20220
20236
  "aria-invalid",
@@ -20361,7 +20377,7 @@ var RangeSlider_default = /* @__PURE__ */ defineComponent({
20361
20377
  "marks",
20362
20378
  "min",
20363
20379
  "max"
20364
- ])) : createCommentVNode("", true)], 16, _hoisted_1$84);
20380
+ ])) : createCommentVNode("", true)], 16, _hoisted_1$85);
20365
20381
  };
20366
20382
  }
20367
20383
  });
@@ -20464,15 +20480,15 @@ var toggle = tv({
20464
20480
  });
20465
20481
  //#endregion
20466
20482
  //#region src/components/toggle/Toggle.vue?vue&type=script&setup=true&lang.ts
20467
- var _hoisted_1$83 = {
20483
+ var _hoisted_1$84 = {
20468
20484
  key: "on",
20469
20485
  class: "inline-flex items-center justify-center"
20470
20486
  };
20471
- var _hoisted_2$48 = {
20487
+ var _hoisted_2$49 = {
20472
20488
  key: "off",
20473
20489
  class: "inline-flex items-center justify-center"
20474
20490
  };
20475
- var _hoisted_3$24 = {
20491
+ var _hoisted_3$25 = {
20476
20492
  key: 2,
20477
20493
  class: "inline-flex items-center"
20478
20494
  };
@@ -20549,10 +20565,10 @@ var Toggle_default = /* @__PURE__ */ defineComponent({
20549
20565
  "leave-active-class": "hn-transition absolute",
20550
20566
  "leave-to-class": "scale-90 opacity-0"
20551
20567
  }, {
20552
- default: withCtx(() => [swapped.value ? (openBlock(), createElementBlock("span", _hoisted_1$83, [renderSlot(_ctx.$slots, "pressed-icon")])) : (openBlock(), createElementBlock("span", _hoisted_2$48, [renderSlot(_ctx.$slots, "icon", { pressed: pressed.value })]))]),
20568
+ default: withCtx(() => [swapped.value ? (openBlock(), createElementBlock("span", _hoisted_1$84, [renderSlot(_ctx.$slots, "pressed-icon")])) : (openBlock(), createElementBlock("span", _hoisted_2$49, [renderSlot(_ctx.$slots, "icon", { pressed: pressed.value })]))]),
20553
20569
  _: 3
20554
20570
  })], 2)) : createCommentVNode("", true),
20555
- unref(slots).default ? (openBlock(), createElementBlock("span", _hoisted_3$24, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)
20571
+ unref(slots).default ? (openBlock(), createElementBlock("span", _hoisted_3$25, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)
20556
20572
  ]),
20557
20573
  _: 3
20558
20574
  }, 16, [
@@ -20972,7 +20988,7 @@ var toolbarSeparator = tv({
20972
20988
  });
20973
20989
  //#endregion
20974
20990
  //#region src/components/toolbar/Toolbar.vue?vue&type=script&setup=true&lang.ts
20975
- var _hoisted_1$82 = ["dir"];
20991
+ var _hoisted_1$83 = ["dir"];
20976
20992
  //#endregion
20977
20993
  //#region src/components/toolbar/Toolbar.vue
20978
20994
  var Toolbar_default = /* @__PURE__ */ defineComponent({
@@ -21020,7 +21036,7 @@ var Toolbar_default = /* @__PURE__ */ defineComponent({
21020
21036
  ref: root,
21021
21037
  dir: unref(rootDirection),
21022
21038
  "data-hn-toolbar": ""
21023
- }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_1$82)]),
21039
+ }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_1$83)]),
21024
21040
  _: 3
21025
21041
  }, 8, [
21026
21042
  "orientation",
@@ -21227,8 +21243,8 @@ var navigationMenuViewport = tv({
21227
21243
  });
21228
21244
  //#endregion
21229
21245
  //#region src/components/navigation-menu/NavigationMenu.vue?vue&type=script&setup=true&lang.ts
21230
- var _hoisted_1$81 = ["dir"];
21231
- var _hoisted_2$47 = ["data-hn-ready"];
21246
+ var _hoisted_1$82 = ["dir"];
21247
+ var _hoisted_2$48 = ["data-hn-ready"];
21232
21248
  //#endregion
21233
21249
  //#region src/components/navigation-menu/NavigationMenu.vue
21234
21250
  var NavigationMenu_default = /* @__PURE__ */ defineComponent({
@@ -21311,13 +21327,13 @@ var NavigationMenu_default = /* @__PURE__ */ defineComponent({
21311
21327
  ref: viewport,
21312
21328
  "data-hn-ready": unref(ready) ? "" : void 0,
21313
21329
  style: normalizeStyle(unref(rekaNavigationViewportStyle))
21314
- }, null, 12, _hoisted_2$47)]),
21330
+ }, null, 12, _hoisted_2$48)]),
21315
21331
  _: 1
21316
21332
  }, 8, [
21317
21333
  "align",
21318
21334
  "data-side",
21319
21335
  "class"
21320
- ])], 12, _hoisted_1$81)]),
21336
+ ])], 12, _hoisted_1$82)]),
21321
21337
  _: 3
21322
21338
  }, 8, [
21323
21339
  "modelValue",
@@ -21353,7 +21369,7 @@ var NavigationMenuItem_default = /* @__PURE__ */ defineComponent({
21353
21369
  });
21354
21370
  //#endregion
21355
21371
  //#region src/components/navigation-menu/NavigationMenuTrigger.vue?vue&type=script&setup=true&lang.ts
21356
- var _hoisted_1$80 = { class: "min-w-0 flex-1" };
21372
+ var _hoisted_1$81 = { class: "min-w-0 flex-1" };
21357
21373
  //#endregion
21358
21374
  //#region src/components/navigation-menu/NavigationMenuTrigger.vue
21359
21375
  var NavigationMenuTrigger_default = /* @__PURE__ */ defineComponent({
@@ -21382,7 +21398,7 @@ var NavigationMenuTrigger_default = /* @__PURE__ */ defineComponent({
21382
21398
  class: normalizeClass(unref(navigationMenuIcon)()),
21383
21399
  "aria-hidden": "true"
21384
21400
  }, [renderSlot(_ctx.$slots, "icon")], 2)) : createCommentVNode("", true),
21385
- createElementVNode("span", _hoisted_1$80, [renderSlot(_ctx.$slots, "default")]),
21401
+ createElementVNode("span", _hoisted_1$81, [renderSlot(_ctx.$slots, "default")]),
21386
21402
  createElementVNode("span", { class: normalizeClass(unref(navigationMenuIcon)()) }, [renderSlot(_ctx.$slots, "trailing", {}, () => [createElementVNode("span", { class: normalizeClass(unref(navigationMenuDisclosure)({ orientation: unref(menu).orientation.value })) }, [createVNode(DisclosureIcon_default, { direction: unref(menu).orientation.value === "vertical" ? "end" : "down" }, null, 8, ["direction"])], 2)])], 2)
21387
21403
  ]),
21388
21404
  _: 3
@@ -21392,8 +21408,8 @@ var NavigationMenuTrigger_default = /* @__PURE__ */ defineComponent({
21392
21408
  });
21393
21409
  //#endregion
21394
21410
  //#region src/components/navigation-menu/NavigationMenuLink.vue?vue&type=script&setup=true&lang.ts
21395
- var _hoisted_1$79 = { class: "flex min-w-0 flex-1 flex-col gap-1" };
21396
- var _hoisted_2$46 = {
21411
+ var _hoisted_1$80 = { class: "flex min-w-0 flex-1 flex-col gap-1" };
21412
+ var _hoisted_2$47 = {
21397
21413
  key: 0,
21398
21414
  class: "text-muted text-xs leading-relaxed font-normal"
21399
21415
  };
@@ -21443,7 +21459,7 @@ var NavigationMenuLink_default = /* @__PURE__ */ defineComponent({
21443
21459
  class: normalizeClass(unref(navigationMenuIcon)()),
21444
21460
  "aria-hidden": "true"
21445
21461
  }, [renderSlot(_ctx.$slots, "icon")], 2)) : createCommentVNode("", true),
21446
- createElementVNode("span", _hoisted_1$79, [createElementVNode("span", null, [renderSlot(_ctx.$slots, "default")]), props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_2$46, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])])) : createCommentVNode("", true)]),
21462
+ createElementVNode("span", _hoisted_1$80, [createElementVNode("span", null, [renderSlot(_ctx.$slots, "default")]), props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_2$47, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])])) : createCommentVNode("", true)]),
21447
21463
  _ctx.$slots.trailing ? (openBlock(), createElementBlock("span", {
21448
21464
  key: 1,
21449
21465
  class: normalizeClass(unref(navigationMenuIcon)())
@@ -21903,7 +21919,7 @@ var tagsInputControl = tv({
21903
21919
  var tagsInputChip = tv({ base: "max-w-full min-w-0 shrink data-disabled:opacity-100" });
21904
21920
  //#endregion
21905
21921
  //#region src/components/tags-input/TagsInputChip.vue?vue&type=script&setup=true&lang.ts
21906
- var _hoisted_1$78 = { class: "min-w-0 truncate" };
21922
+ var _hoisted_1$79 = { class: "min-w-0 truncate" };
21907
21923
  //#endregion
21908
21924
  //#region src/components/tags-input/TagsInputChip.vue
21909
21925
  var TagsInputChip_default = /* @__PURE__ */ defineComponent({
@@ -21930,7 +21946,7 @@ var TagsInputChip_default = /* @__PURE__ */ defineComponent({
21930
21946
  onRemove: _cache[0] || (_cache[0] = ($event) => emit("remove"))
21931
21947
  }), {
21932
21948
  default: withCtx(() => [createVNode(unref(TagsInputItemText), { "as-child": "" }, {
21933
- default: withCtx(() => [createElementVNode("span", _hoisted_1$78, toDisplayString(props.tag), 1)]),
21949
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$79, toDisplayString(props.tag), 1)]),
21934
21950
  _: 1
21935
21951
  })]),
21936
21952
  _: 1
@@ -21944,7 +21960,7 @@ var TagsInputChip_default = /* @__PURE__ */ defineComponent({
21944
21960
  });
21945
21961
  //#endregion
21946
21962
  //#region src/components/tags-input/TagsInput.vue?vue&type=script&setup=true&lang.ts
21947
- var _hoisted_1$77 = ["data-invalid", "data-disabled"];
21963
+ var _hoisted_1$78 = ["data-invalid", "data-disabled"];
21948
21964
  //#endregion
21949
21965
  //#region src/components/tags-input/TagsInput.vue
21950
21966
  var TagsInput_default = /* @__PURE__ */ defineComponent({
@@ -22095,7 +22111,7 @@ var TagsInput_default = /* @__PURE__ */ defineComponent({
22095
22111
  _: 1
22096
22112
  }, 8, ["label"])], 2)) : createCommentVNode("", true)]),
22097
22113
  _: 1
22098
- })], 10, _hoisted_1$77);
22114
+ })], 10, _hoisted_1$78);
22099
22115
  };
22100
22116
  }
22101
22117
  });
@@ -22150,12 +22166,12 @@ var multiComboboxHost = tv({
22150
22166
  var multiComboboxEnd = tv({ base: "absolute inset-y-0 end-0 flex items-stretch" });
22151
22167
  //#endregion
22152
22168
  //#region src/components/multi-combobox/MultiCombobox.vue?vue&type=script&setup=true&lang.ts
22153
- var _hoisted_1$76 = [
22169
+ var _hoisted_1$77 = [
22154
22170
  "data-invalid",
22155
22171
  "data-disabled",
22156
22172
  "aria-busy"
22157
22173
  ];
22158
- var _hoisted_2$45 = { class: "min-w-0 truncate" };
22174
+ var _hoisted_2$46 = { class: "min-w-0 truncate" };
22159
22175
  //#endregion
22160
22176
  //#region src/components/multi-combobox/MultiCombobox.vue
22161
22177
  var MultiCombobox_default = /* @__PURE__ */ defineComponent({
@@ -22251,7 +22267,7 @@ var MultiCombobox_default = /* @__PURE__ */ defineComponent({
22251
22267
  class: normalizeClass(unref(tagsInputChip)()),
22252
22268
  onRemove: ($event) => unref(remove)(option.value)
22253
22269
  }, {
22254
- default: withCtx(() => [createElementVNode("span", _hoisted_2$45, toDisplayString(option.label), 1)]),
22270
+ default: withCtx(() => [createElementVNode("span", _hoisted_2$46, toDisplayString(option.label), 1)]),
22255
22271
  _: 2
22256
22272
  }, 1032, [
22257
22273
  "size",
@@ -22318,7 +22334,7 @@ var MultiCombobox_default = /* @__PURE__ */ defineComponent({
22318
22334
  "aria-label",
22319
22335
  "disabled",
22320
22336
  "class"
22321
- ])], 2)], 10, _hoisted_1$76)]),
22337
+ ])], 2)], 10, _hoisted_1$77)]),
22322
22338
  _: 1
22323
22339
  }), createVNode(ComboboxList_default, {
22324
22340
  options: props.options,
@@ -23050,7 +23066,7 @@ var dateFieldSegment = tv({
23050
23066
  });
23051
23067
  //#endregion
23052
23068
  //#region src/components/date-field/DateField.vue?vue&type=script&setup=true&lang.ts
23053
- var _hoisted_1$75 = ["data-invalid", "data-disabled"];
23069
+ var _hoisted_1$76 = ["data-invalid", "data-disabled"];
23054
23070
  //#endregion
23055
23071
  //#region src/components/date-field/DateField.vue
23056
23072
  var DateField_default = /* @__PURE__ */ defineComponent({
@@ -23207,7 +23223,7 @@ var DateField_default = /* @__PURE__ */ defineComponent({
23207
23223
  key: 1,
23208
23224
  class: normalizeClass(unref(inputAdornment)())
23209
23225
  }, [renderSlot(_ctx.$slots, "trailing")], 2)) : createCommentVNode("", true)
23210
- ], 10, _hoisted_1$75);
23226
+ ], 10, _hoisted_1$76);
23211
23227
  };
23212
23228
  }
23213
23229
  });
@@ -23238,7 +23254,7 @@ var InputGroupScope_default = /* @__PURE__ */ defineComponent({
23238
23254
  var datePickerContent = tv({ base: "hn-anim-pop z-(--hn-z-overlay) p-2 shadow-md outline-none" });
23239
23255
  //#endregion
23240
23256
  //#region src/components/date-picker/DatePicker.vue?vue&type=script&setup=true&lang.ts
23241
- var _hoisted_1$74 = ["data-invalid", "data-disabled"];
23257
+ var _hoisted_1$75 = ["data-invalid", "data-disabled"];
23242
23258
  //#endregion
23243
23259
  //#region src/components/date-picker/DatePicker.vue
23244
23260
  var DatePicker_default = /* @__PURE__ */ defineComponent({
@@ -23355,7 +23371,7 @@ var DatePicker_default = /* @__PURE__ */ defineComponent({
23355
23371
  _: 1
23356
23372
  }, 8, ["label", "disabled"])]),
23357
23373
  _: 1
23358
- })], 10, _hoisted_1$74)]),
23374
+ })], 10, _hoisted_1$75)]),
23359
23375
  _: 3
23360
23376
  }), createVNode(unref(PopoverPortal), null, {
23361
23377
  default: withCtx(() => [createVNode(unref(PopoverContent), {
@@ -23420,7 +23436,7 @@ function isRangeInvalid({ start, end }, bounds) {
23420
23436
  }
23421
23437
  //#endregion
23422
23438
  //#region src/components/date-range-field/DateRangeField.vue?vue&type=script&setup=true&lang.ts
23423
- var _hoisted_1$73 = ["data-invalid", "data-disabled"];
23439
+ var _hoisted_1$74 = ["data-invalid", "data-disabled"];
23424
23440
  //#endregion
23425
23441
  //#region src/components/date-range-field/DateRangeField.vue
23426
23442
  var DateRangeField_default = /* @__PURE__ */ defineComponent({
@@ -23589,7 +23605,7 @@ var DateRangeField_default = /* @__PURE__ */ defineComponent({
23589
23605
  key: 1,
23590
23606
  class: normalizeClass(unref(inputAdornment)())
23591
23607
  }, [renderSlot(_ctx.$slots, "trailing")], 2)) : createCommentVNode("", true)
23592
- ], 10, _hoisted_1$73);
23608
+ ], 10, _hoisted_1$74);
23593
23609
  };
23594
23610
  }
23595
23611
  });
@@ -23837,7 +23853,7 @@ var RangeCalendar_default = /* @__PURE__ */ defineComponent({
23837
23853
  });
23838
23854
  //#endregion
23839
23855
  //#region src/components/date-range-picker/DateRangePicker.vue?vue&type=script&setup=true&lang.ts
23840
- var _hoisted_1$72 = ["data-invalid", "data-disabled"];
23856
+ var _hoisted_1$73 = ["data-invalid", "data-disabled"];
23841
23857
  //#endregion
23842
23858
  //#region src/components/date-range-picker/DateRangePicker.vue
23843
23859
  var DateRangePicker_default = /* @__PURE__ */ defineComponent({
@@ -23955,7 +23971,7 @@ var DateRangePicker_default = /* @__PURE__ */ defineComponent({
23955
23971
  _: 1
23956
23972
  }, 8, ["label", "disabled"])]),
23957
23973
  _: 1
23958
- })], 10, _hoisted_1$72)]),
23974
+ })], 10, _hoisted_1$73)]),
23959
23975
  _: 3
23960
23976
  }), createVNode(unref(PopoverPortal), null, {
23961
23977
  default: withCtx(() => [createVNode(unref(PopoverContent), {
@@ -24009,7 +24025,7 @@ var DateRangePicker_default = /* @__PURE__ */ defineComponent({
24009
24025
  });
24010
24026
  //#endregion
24011
24027
  //#region src/components/time-field/TimeField.vue?vue&type=script&setup=true&lang.ts
24012
- var _hoisted_1$71 = ["data-invalid", "data-disabled"];
24028
+ var _hoisted_1$72 = ["data-invalid", "data-disabled"];
24013
24029
  //#endregion
24014
24030
  //#region src/components/time-field/TimeField.vue
24015
24031
  var TimeField_default = /* @__PURE__ */ defineComponent({
@@ -24172,7 +24188,7 @@ var TimeField_default = /* @__PURE__ */ defineComponent({
24172
24188
  key: 1,
24173
24189
  class: normalizeClass(unref(inputAdornment)())
24174
24190
  }, [renderSlot(_ctx.$slots, "trailing")], 2)) : createCommentVNode("", true)
24175
- ], 10, _hoisted_1$71);
24191
+ ], 10, _hoisted_1$72);
24176
24192
  };
24177
24193
  }
24178
24194
  });
@@ -24181,7 +24197,7 @@ var TimeField_default = /* @__PURE__ */ defineComponent({
24181
24197
  var dateTimePickerFooter = tv({ base: "mt-2 flex items-center justify-between gap-2" });
24182
24198
  //#endregion
24183
24199
  //#region src/components/date-time-picker/DateTimePicker.vue?vue&type=script&setup=true&lang.ts
24184
- var _hoisted_1$70 = ["data-invalid", "data-disabled"];
24200
+ var _hoisted_1$71 = ["data-invalid", "data-disabled"];
24185
24201
  //#endregion
24186
24202
  //#region src/components/date-time-picker/DateTimePicker.vue
24187
24203
  var DateTimePicker_default = /* @__PURE__ */ defineComponent({
@@ -24314,7 +24330,7 @@ var DateTimePicker_default = /* @__PURE__ */ defineComponent({
24314
24330
  _: 1
24315
24331
  }, 8, ["label", "disabled"])]),
24316
24332
  _: 1
24317
- })], 10, _hoisted_1$70)]),
24333
+ })], 10, _hoisted_1$71)]),
24318
24334
  _: 3
24319
24335
  }), createVNode(unref(PopoverPortal), null, {
24320
24336
  default: withCtx(() => [createVNode(unref(PopoverContent), {
@@ -24660,8 +24676,8 @@ function useRatingScale(model, max, stars) {
24660
24676
  }
24661
24677
  //#endregion
24662
24678
  //#region src/components/rating/Rating.vue?vue&type=script&setup=true&lang.ts
24663
- var _hoisted_1$69 = ["aria-label"];
24664
- var _hoisted_2$44 = [
24679
+ var _hoisted_1$70 = ["aria-label"];
24680
+ var _hoisted_2$45 = [
24665
24681
  "name",
24666
24682
  "value",
24667
24683
  "disabled",
@@ -24712,7 +24728,7 @@ var Rating_default = /* @__PURE__ */ defineComponent({
24712
24728
  class: normalizeClass(unref(ratingFill)()),
24713
24729
  style: normalizeStyle({ width: unref(starFill)(unref(value), index) })
24714
24730
  }, [createVNode(unref(Star), { class: normalizeClass(unref(ratingStar)({ active: true })) }, null, 8, ["class"])], 6)], 2);
24715
- }), 128))], 16, _hoisted_1$69)) : (openBlock(), createBlock(unref(RatingRoot), mergeProps({ key: 1 }, _ctx.$attrs, {
24731
+ }), 128))], 16, _hoisted_1$70)) : (openBlock(), createBlock(unref(RatingRoot), mergeProps({ key: 1 }, _ctx.$attrs, {
24716
24732
  "data-hn-rating": "",
24717
24733
  "data-disabled": unref(disabled) ? "" : void 0,
24718
24734
  "data-invalid": unref(invalid) ? "" : void 0,
@@ -24761,7 +24777,7 @@ var Rating_default = /* @__PURE__ */ defineComponent({
24761
24777
  value: model.value,
24762
24778
  disabled: unref(disabled),
24763
24779
  form: _ctx.$attrs.form
24764
- }, null, 8, _hoisted_2$44)) : createCommentVNode("", true)]),
24780
+ }, null, 8, _hoisted_2$45)) : createCommentVNode("", true)]),
24765
24781
  _: 1
24766
24782
  }, 16, [
24767
24783
  "data-disabled",
@@ -24936,13 +24952,13 @@ function formatSize(tag, bytes) {
24936
24952
  }
24937
24953
  //#endregion
24938
24954
  //#region src/components/file-upload/FileUpload.vue?vue&type=script&setup=true&lang.ts
24939
- var _hoisted_1$68 = [
24955
+ var _hoisted_1$69 = [
24940
24956
  "name",
24941
24957
  "accept",
24942
24958
  "multiple",
24943
24959
  "disabled"
24944
24960
  ];
24945
- var _hoisted_2$43 = [
24961
+ var _hoisted_2$44 = [
24946
24962
  "id",
24947
24963
  "aria-describedby",
24948
24964
  "aria-invalid",
@@ -24951,7 +24967,7 @@ var _hoisted_2$43 = [
24951
24967
  "aria-busy",
24952
24968
  "disabled"
24953
24969
  ];
24954
- var _hoisted_3$23 = ["src"];
24970
+ var _hoisted_3$24 = ["src"];
24955
24971
  //#endregion
24956
24972
  //#region src/components/file-upload/FileUpload.vue
24957
24973
  var FileUpload_default = /* @__PURE__ */ defineComponent({
@@ -25031,7 +25047,7 @@ var FileUpload_default = /* @__PURE__ */ defineComponent({
25031
25047
  multiple: props.multiple,
25032
25048
  disabled: unref(disabled),
25033
25049
  onChange: _cache[0] || (_cache[0] = (...args) => unref(onChange) && unref(onChange)(...args))
25034
- }, null, 40, _hoisted_1$68),
25050
+ }, null, 40, _hoisted_1$69),
25035
25051
  props.variant === "area" ? (openBlock(), createElementBlock("button", mergeProps({ key: 0 }, _ctx.$attrs, {
25036
25052
  type: "button",
25037
25053
  "data-hn-file-upload-area": "",
@@ -25055,7 +25071,7 @@ var FileUpload_default = /* @__PURE__ */ defineComponent({
25055
25071
  }, {
25056
25072
  default: withCtx(() => [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(unref(Upload), { "aria-hidden": "true" })])]),
25057
25073
  _: 3
25058
- }, 8, ["swapped"]), renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(unref(t).upload.dropHint), 1)])], 16, _hoisted_2$43)) : (openBlock(), createBlock(Button_default, mergeProps({ key: 1 }, _ctx.$attrs, {
25074
+ }, 8, ["swapped"]), renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(unref(t).upload.dropHint), 1)])], 16, _hoisted_2$44)) : (openBlock(), createBlock(Button_default, mergeProps({ key: 1 }, _ctx.$attrs, {
25059
25075
  id: unref(fieldId),
25060
25076
  "aria-describedby": unref(describedBy),
25061
25077
  "aria-invalid": unref(invalid) || void 0,
@@ -25087,7 +25103,7 @@ var FileUpload_default = /* @__PURE__ */ defineComponent({
25087
25103
  key: 0,
25088
25104
  src: unref(urls).get(file),
25089
25105
  alt: ""
25090
- }, null, 8, _hoisted_3$23)) : (openBlock(), createBlock(unref(File), {
25106
+ }, null, 8, _hoisted_3$24)) : (openBlock(), createBlock(unref(File), {
25091
25107
  key: 1,
25092
25108
  "aria-hidden": "true"
25093
25109
  }))], 2),
@@ -25450,8 +25466,8 @@ var AlertDialog_default = /* @__PURE__ */ defineComponent({
25450
25466
  });
25451
25467
  //#endregion
25452
25468
  //#region src/components/popconfirm/Popconfirm.vue?vue&type=script&setup=true&lang.ts
25453
- var _hoisted_1$67 = { class: "flex flex-col gap-0.5" };
25454
- var _hoisted_2$42 = { class: "flex justify-end gap-2" };
25469
+ var _hoisted_1$68 = { class: "flex flex-col gap-0.5" };
25470
+ var _hoisted_2$43 = { class: "flex justify-end gap-2" };
25455
25471
  //#endregion
25456
25472
  //#region src/components/popconfirm/Popconfirm.vue
25457
25473
  var Popconfirm_default = /* @__PURE__ */ defineComponent({
@@ -25537,7 +25553,7 @@ var Popconfirm_default = /* @__PURE__ */ defineComponent({
25537
25553
  class: normalizeClass(unref(cn)("hn-anim-pop z-(--hn-z-overlay) flex w-max max-w-xs min-w-56 flex-col gap-2.5 p-3 shadow-md outline-none", props.class))
25538
25554
  }, {
25539
25555
  default: withCtx(() => [
25540
- createElementVNode("div", _hoisted_1$67, [createVNode(Text_default, {
25556
+ createElementVNode("div", _hoisted_1$68, [createVNode(Text_default, {
25541
25557
  id: unref(titleId),
25542
25558
  weight: "medium"
25543
25559
  }, {
@@ -25553,7 +25569,7 @@ var Popconfirm_default = /* @__PURE__ */ defineComponent({
25553
25569
  _: 1
25554
25570
  }, 8, ["id"])) : createCommentVNode("", true)]),
25555
25571
  renderSlot(_ctx.$slots, "content"),
25556
- createElementVNode("div", _hoisted_2$42, [createVNode(Button_default, {
25572
+ createElementVNode("div", _hoisted_2$43, [createVNode(Button_default, {
25557
25573
  size: "sm",
25558
25574
  variant: "soft",
25559
25575
  tone: "neutral",
@@ -25906,7 +25922,7 @@ var dropdownItem = tv({
25906
25922
  });
25907
25923
  //#endregion
25908
25924
  //#region src/components/context-menu/ContextMenuItem.vue?vue&type=script&setup=true&lang.ts
25909
- var _hoisted_1$66 = { class: "min-w-0 flex-1" };
25925
+ var _hoisted_1$67 = { class: "min-w-0 flex-1" };
25910
25926
  //#endregion
25911
25927
  //#region src/components/context-menu/ContextMenuItem.vue
25912
25928
  var ContextMenuItem_default = /* @__PURE__ */ defineComponent({
@@ -25932,7 +25948,7 @@ var ContextMenuItem_default = /* @__PURE__ */ defineComponent({
25932
25948
  }), {
25933
25949
  default: withCtx(() => [
25934
25950
  renderSlot(_ctx.$slots, "icon"),
25935
- createElementVNode("span", _hoisted_1$66, [renderSlot(_ctx.$slots, "default")]),
25951
+ createElementVNode("span", _hoisted_1$67, [renderSlot(_ctx.$slots, "default")]),
25936
25952
  renderSlot(_ctx.$slots, "trailing")
25937
25953
  ]),
25938
25954
  _: 3
@@ -25946,8 +25962,8 @@ var ContextMenuItem_default = /* @__PURE__ */ defineComponent({
25946
25962
  });
25947
25963
  //#endregion
25948
25964
  //#region src/components/context-menu/ContextMenuCheckboxItem.vue?vue&type=script&setup=true&lang.ts
25949
- var _hoisted_1$65 = { class: "min-w-0 flex-1" };
25950
- var _hoisted_2$41 = { class: "flex size-4 shrink-0 items-center justify-center" };
25965
+ var _hoisted_1$66 = { class: "min-w-0 flex-1" };
25966
+ var _hoisted_2$42 = { class: "flex size-4 shrink-0 items-center justify-center" };
25951
25967
  //#endregion
25952
25968
  //#region src/components/context-menu/ContextMenuCheckboxItem.vue
25953
25969
  var ContextMenuCheckboxItem_default = /* @__PURE__ */ defineComponent({
@@ -25979,9 +25995,9 @@ var ContextMenuCheckboxItem_default = /* @__PURE__ */ defineComponent({
25979
25995
  onSelect: _cache[1] || (_cache[1] = (event) => event.preventDefault())
25980
25996
  }), {
25981
25997
  default: withCtx(() => [
25982
- createElementVNode("span", _hoisted_1$65, [renderSlot(_ctx.$slots, "default")]),
25998
+ createElementVNode("span", _hoisted_1$66, [renderSlot(_ctx.$slots, "default")]),
25983
25999
  renderSlot(_ctx.$slots, "trailing"),
25984
- createElementVNode("span", _hoisted_2$41, [createVNode(unref(ContextMenuItemIndicator), null, {
26000
+ createElementVNode("span", _hoisted_2$42, [createVNode(unref(ContextMenuItemIndicator), null, {
25985
26001
  default: withCtx(() => [createVNode(unref(Check))]),
25986
26002
  _: 1
25987
26003
  })])
@@ -26014,7 +26030,7 @@ var ContextMenuGroup_default = /* @__PURE__ */ defineComponent({
26014
26030
  });
26015
26031
  //#endregion
26016
26032
  //#region src/components/context-menu/ContextMenuSub.vue?vue&type=script&setup=true&lang.ts
26017
- var _hoisted_1$64 = { class: "min-w-0 flex-1" };
26033
+ var _hoisted_1$65 = { class: "min-w-0 flex-1" };
26018
26034
  //#endregion
26019
26035
  //#region src/components/context-menu/ContextMenuSub.vue
26020
26036
  var ContextMenuSub_default = /* @__PURE__ */ defineComponent({
@@ -26045,7 +26061,7 @@ var ContextMenuSub_default = /* @__PURE__ */ defineComponent({
26045
26061
  }, {
26046
26062
  default: withCtx(() => [
26047
26063
  renderSlot(_ctx.$slots, "icon"),
26048
- createElementVNode("span", _hoisted_1$64, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(props.label), 1)])]),
26064
+ createElementVNode("span", _hoisted_1$65, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(props.label), 1)])]),
26049
26065
  createVNode(unref(ChevronRight), { class: "text-muted" })
26050
26066
  ]),
26051
26067
  _: 3
@@ -26128,8 +26144,8 @@ var ContextMenuRadioGroup_default = /* @__PURE__ */ defineComponent({
26128
26144
  });
26129
26145
  //#endregion
26130
26146
  //#region src/components/context-menu/ContextMenuRadioItem.vue?vue&type=script&setup=true&lang.ts
26131
- var _hoisted_1$63 = { class: "min-w-0 flex-1" };
26132
- var _hoisted_2$40 = { class: "flex size-4 shrink-0 items-center justify-center" };
26147
+ var _hoisted_1$64 = { class: "min-w-0 flex-1" };
26148
+ var _hoisted_2$41 = { class: "flex size-4 shrink-0 items-center justify-center" };
26133
26149
  //#endregion
26134
26150
  //#region src/components/context-menu/ContextMenuRadioItem.vue
26135
26151
  var ContextMenuRadioItem_default = /* @__PURE__ */ defineComponent({
@@ -26151,7 +26167,7 @@ var ContextMenuRadioItem_default = /* @__PURE__ */ defineComponent({
26151
26167
  "text-value": props.textValue,
26152
26168
  class: unref(cn)(unref(dropdownItem)(), props.class)
26153
26169
  }), {
26154
- default: withCtx(() => [createElementVNode("span", _hoisted_1$63, [renderSlot(_ctx.$slots, "default")]), createElementVNode("span", _hoisted_2$40, [createVNode(unref(ContextMenuItemIndicator), null, {
26170
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$64, [renderSlot(_ctx.$slots, "default")]), createElementVNode("span", _hoisted_2$41, [createVNode(unref(ContextMenuItemIndicator), null, {
26155
26171
  default: withCtx(() => [createVNode(unref(Check), { class: "size-4" })]),
26156
26172
  _: 1
26157
26173
  })])]),
@@ -26296,9 +26312,9 @@ var sheetHandle = tv({
26296
26312
  });
26297
26313
  //#endregion
26298
26314
  //#region src/components/sheet/Sheet.vue?vue&type=script&setup=true&lang.ts
26299
- var _hoisted_1$62 = ["data-dragging"];
26300
- var _hoisted_2$39 = ["data-disabled"];
26301
- var _hoisted_3$22 = {
26315
+ var _hoisted_1$63 = ["data-dragging"];
26316
+ var _hoisted_2$40 = ["data-disabled"];
26317
+ var _hoisted_3$23 = {
26302
26318
  key: 1,
26303
26319
  class: "flex items-start justify-between gap-4 px-(--hn-panel-p)"
26304
26320
  };
@@ -26426,7 +26442,7 @@ var Sheet_default = /* @__PURE__ */ defineComponent({
26426
26442
  "aria-hidden": "true",
26427
26443
  "data-disabled": locked.value ? "" : void 0,
26428
26444
  class: normalizeClass(unref(sheetHandle)({ header: props.header && !slots.body }))
26429
- }, null, 10, _hoisted_2$39)) : createCommentVNode("", true), props.header && !slots.body ? (openBlock(), createElementBlock("div", _hoisted_3$22, [createElementVNode("div", _hoisted_4$19, [createElementVNode("div", _hoisted_5$14, [slots.icon ? (openBlock(), createElementBlock("span", _hoisted_6$9, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true), createVNode(unref(DialogTitle), { "as-child": "" }, {
26445
+ }, null, 10, _hoisted_2$40)) : createCommentVNode("", true), props.header && !slots.body ? (openBlock(), createElementBlock("div", _hoisted_3$23, [createElementVNode("div", _hoisted_4$19, [createElementVNode("div", _hoisted_5$14, [slots.icon ? (openBlock(), createElementBlock("span", _hoisted_6$9, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true), createVNode(unref(DialogTitle), { "as-child": "" }, {
26430
26446
  default: withCtx(() => [createVNode(Heading_default, {
26431
26447
  level: 2,
26432
26448
  size: "lg",
@@ -26454,7 +26470,7 @@ var Sheet_default = /* @__PURE__ */ defineComponent({
26454
26470
  class: "-mt-1.5 -me-1.5 shrink-0"
26455
26471
  }, null, 8, ["disabled"])]),
26456
26472
  _: 1
26457
- })) : createCommentVNode("", true)])) : createCommentVNode("", true)], 42, _hoisted_1$62)) : createCommentVNode("", true),
26473
+ })) : createCommentVNode("", true)])) : createCommentVNode("", true)], 42, _hoisted_1$63)) : createCommentVNode("", true),
26458
26474
  slots.body ? renderSlot(_ctx.$slots, "body", {
26459
26475
  close,
26460
26476
  submitting: unref(submitting)
@@ -26505,7 +26521,7 @@ var panelBody = tv({
26505
26521
  });
26506
26522
  //#endregion
26507
26523
  //#region src/components/panel/Panel.vue?vue&type=script&setup=true&lang.ts
26508
- var _hoisted_1$61 = { class: "flex min-w-0 flex-col gap-1" };
26524
+ var _hoisted_1$62 = { class: "flex min-w-0 flex-col gap-1" };
26509
26525
  //#endregion
26510
26526
  //#region src/components/panel/Panel.vue
26511
26527
  var Panel_default = /* @__PURE__ */ defineComponent({
@@ -26531,7 +26547,7 @@ var Panel_default = /* @__PURE__ */ defineComponent({
26531
26547
  padded: false,
26532
26548
  class: normalizeClass(unref(cn)("flex flex-col", props.class))
26533
26549
  }, {
26534
- default: withCtx(() => [createElementVNode("div", { class: normalizeClass(unref(panelHeader)({ bodiless: !unref(slots).default })) }, [createElementVNode("div", _hoisted_1$61, [createElementVNode("div", { class: normalizeClass(unref(panelTitle)()) }, [
26550
+ default: withCtx(() => [createElementVNode("div", { class: normalizeClass(unref(panelHeader)({ bodiless: !unref(slots).default })) }, [createElementVNode("div", _hoisted_1$62, [createElementVNode("div", { class: normalizeClass(unref(panelTitle)()) }, [
26535
26551
  unref(slots).icon ? (openBlock(), createElementBlock("span", {
26536
26552
  key: 0,
26537
26553
  class: normalizeClass(unref(panelIcon)()),
@@ -26761,7 +26777,7 @@ var progressBar = tv({
26761
26777
  });
26762
26778
  //#endregion
26763
26779
  //#region src/components/progress/Progress.vue?vue&type=script&setup=true&lang.ts
26764
- var _hoisted_1$60 = { key: 0 };
26780
+ var _hoisted_1$61 = { key: 0 };
26765
26781
  //#endregion
26766
26782
  //#region src/components/progress/Progress.vue
26767
26783
  var Progress_default = /* @__PURE__ */ defineComponent({
@@ -26797,7 +26813,7 @@ var Progress_default = /* @__PURE__ */ defineComponent({
26797
26813
  }, [props.label || props.showValue && unref(text) ? (openBlock(), createElementBlock("div", {
26798
26814
  key: 0,
26799
26815
  class: normalizeClass(unref(progressHeader)())
26800
- }, [props.label ? (openBlock(), createElementBlock("span", _hoisted_1$60, toDisplayString(props.label), 1)) : createCommentVNode("", true), props.showValue && unref(text) ? (openBlock(), createElementBlock("span", {
26816
+ }, [props.label ? (openBlock(), createElementBlock("span", _hoisted_1$61, toDisplayString(props.label), 1)) : createCommentVNode("", true), props.showValue && unref(text) ? (openBlock(), createElementBlock("span", {
26801
26817
  key: 1,
26802
26818
  class: normalizeClass(unref(progressValue)())
26803
26819
  }, toDisplayString(unref(text)), 3)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createVNode(unref(ProgressRoot_default), mergeProps(_ctx.$attrs, {
@@ -26849,7 +26865,7 @@ var ringProgressCenter = tv({ base: "text-fg absolute inset-0 flex items-center
26849
26865
  var ringProgressLabel = tv({ base: "text-muted text-sm" });
26850
26866
  //#endregion
26851
26867
  //#region src/components/ring-progress/RingProgress.vue?vue&type=script&setup=true&lang.ts
26852
- var _hoisted_1$59 = ["stroke-dashoffset", "stroke-linecap"];
26868
+ var _hoisted_1$60 = ["stroke-dashoffset", "stroke-linecap"];
26853
26869
  //#endregion
26854
26870
  //#region src/components/ring-progress/RingProgress.vue
26855
26871
  var RingProgress_default = /* @__PURE__ */ defineComponent({
@@ -26913,7 +26929,7 @@ var RingProgress_default = /* @__PURE__ */ defineComponent({
26913
26929
  "stroke-dashoffset": offset.value,
26914
26930
  "stroke-linecap": offset.value < 100 ? "round" : void 0,
26915
26931
  class: normalizeClass(unref(ringProgressArc)({ tone: props.tone }))
26916
- }, null, 10, _hoisted_1$59)], 2)), unref(slots).default || props.showValue && unref(text) ? (openBlock(), createElementBlock("div", {
26932
+ }, null, 10, _hoisted_1$60)], 2)), unref(slots).default || props.showValue && unref(text) ? (openBlock(), createElementBlock("div", {
26917
26933
  key: 0,
26918
26934
  class: normalizeClass(unref(ringProgressCenter)())
26919
26935
  }, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(unref(text)), 1)])], 2)) : createCommentVNode("", true)]),
@@ -26965,8 +26981,8 @@ function toneAt(index) {
26965
26981
  }
26966
26982
  //#endregion
26967
26983
  //#region src/components/meter-group/MeterGroup.vue?vue&type=script&setup=true&lang.ts
26968
- var _hoisted_1$58 = ["aria-label"];
26969
- var _hoisted_2$38 = [
26984
+ var _hoisted_1$59 = ["aria-label"];
26985
+ var _hoisted_2$39 = [
26970
26986
  "aria-label",
26971
26987
  "aria-valuenow",
26972
26988
  "aria-valuemax",
@@ -27037,8 +27053,8 @@ var MeterGroup_default = /* @__PURE__ */ defineComponent({
27037
27053
  "aria-valuetext": props.format ? entry.text : void 0,
27038
27054
  class: normalizeClass(unref(meterSegment)({ tone: entry.tone })),
27039
27055
  style: normalizeStyle({ width: entry.width })
27040
- }, null, 14, _hoisted_2$38);
27041
- }), 128))], 16, _hoisted_1$58),
27056
+ }, null, 14, _hoisted_2$39);
27057
+ }), 128))], 16, _hoisted_1$59),
27042
27058
  props.legend ? (openBlock(), createElementBlock("div", {
27043
27059
  key: 1,
27044
27060
  class: normalizeClass(unref(meterLegend)())
@@ -27101,7 +27117,7 @@ var emptyDescription = tv({
27101
27117
  var emptyActions = tv({ base: "flex flex-wrap items-center justify-center gap-2" });
27102
27118
  //#endregion
27103
27119
  //#region src/components/empty/Empty.vue?vue&type=script&setup=true&lang.ts
27104
- var _hoisted_1$57 = {
27120
+ var _hoisted_1$58 = {
27105
27121
  key: 0,
27106
27122
  "aria-hidden": "true",
27107
27123
  class: "flex shrink-0 justify-center"
@@ -27129,7 +27145,7 @@ var Empty_default = /* @__PURE__ */ defineComponent({
27129
27145
  "data-hn-empty": "",
27130
27146
  class: normalizeClass(unref(cn)(unref(empty)({ size: props.size }), props.class))
27131
27147
  }, [
27132
- unref(slots).icon ? (openBlock(), createElementBlock("span", _hoisted_1$57, [renderSlot(_ctx.$slots, "icon")])) : props.icon ? (openBlock(), createElementBlock("span", {
27148
+ unref(slots).icon ? (openBlock(), createElementBlock("span", _hoisted_1$58, [renderSlot(_ctx.$slots, "icon")])) : props.icon ? (openBlock(), createElementBlock("span", {
27133
27149
  key: 1,
27134
27150
  "aria-hidden": "true",
27135
27151
  class: normalizeClass(unref(emptyIcon)({ size: props.size }))
@@ -27227,7 +27243,7 @@ var Result_default = /* @__PURE__ */ defineComponent({
27227
27243
  });
27228
27244
  //#endregion
27229
27245
  //#region src/components/number-format/NumberFormat.vue?vue&type=script&setup=true&lang.ts
27230
- var _hoisted_1$56 = ["title"];
27246
+ var _hoisted_1$57 = ["title"];
27231
27247
  //#endregion
27232
27248
  //#region src/components/number-format/NumberFormat.vue
27233
27249
  var NumberFormat_default = /* @__PURE__ */ defineComponent({
@@ -27263,7 +27279,7 @@ var NumberFormat_default = /* @__PURE__ */ defineComponent({
27263
27279
  return openBlock(), createElementBlock("span", {
27264
27280
  title: full.value,
27265
27281
  class: normalizeClass(unref(cn)(props.class))
27266
- }, toDisplayString(text.value), 11, _hoisted_1$56);
27282
+ }, toDisplayString(text.value), 11, _hoisted_1$57);
27267
27283
  };
27268
27284
  }
27269
27285
  });
@@ -27294,8 +27310,8 @@ var statisticDelta = tv({
27294
27310
  var statisticIcon = tv({ base: "bg-subtle text-muted flex size-10 shrink-0 items-center justify-center rounded-md [&_svg]:size-5" });
27295
27311
  //#endregion
27296
27312
  //#region src/components/statistic/Statistic.vue?vue&type=script&setup=true&lang.ts
27297
- var _hoisted_1$55 = { key: 2 };
27298
- var _hoisted_2$37 = {
27313
+ var _hoisted_1$56 = { key: 2 };
27314
+ var _hoisted_2$38 = {
27299
27315
  key: 2,
27300
27316
  class: "text-muted"
27301
27317
  };
@@ -27366,7 +27382,7 @@ var Statistic_default = /* @__PURE__ */ defineComponent({
27366
27382
  "format",
27367
27383
  "currency",
27368
27384
  "precision"
27369
- ])) : (openBlock(), createElementBlock("span", _hoisted_1$55, toDisplayString(props.value ?? "—"), 1)),
27385
+ ])) : (openBlock(), createElementBlock("span", _hoisted_1$56, toDisplayString(props.value ?? "—"), 1)),
27370
27386
  props.suffix ? (openBlock(), createElementBlock("span", {
27371
27387
  key: 3,
27372
27388
  class: normalizeClass(unref(statisticAffix)())
@@ -27387,7 +27403,7 @@ var Statistic_default = /* @__PURE__ */ defineComponent({
27387
27403
  "aria-hidden": "true"
27388
27404
  })) : createCommentVNode("", true),
27389
27405
  createElementVNode("span", null, toDisplayString(deltaText.value), 1),
27390
- props.deltaLabel ? (openBlock(), createElementBlock("span", _hoisted_2$37, toDisplayString(props.deltaLabel), 1)) : createCommentVNode("", true)
27406
+ props.deltaLabel ? (openBlock(), createElementBlock("span", _hoisted_2$38, toDisplayString(props.deltaLabel), 1)) : createCommentVNode("", true)
27391
27407
  ], 64))], 2)) : createCommentVNode("", true),
27392
27408
  renderSlot(_ctx.$slots, "default")
27393
27409
  ], 2), unref(slots).icon ? (openBlock(), createElementBlock("span", {
@@ -27465,13 +27481,13 @@ function stepBetween(previous, next, count) {
27465
27481
  }
27466
27482
  //#endregion
27467
27483
  //#region src/components/banner/Banner.vue?vue&type=script&setup=true&lang.ts
27468
- var _hoisted_1$54 = {
27484
+ var _hoisted_1$55 = {
27469
27485
  key: 0,
27470
27486
  "data-hn-banner": "",
27471
27487
  class: "hn-collapse w-full"
27472
27488
  };
27473
- var _hoisted_2$36 = { class: "hn-collapse-body" };
27474
- var _hoisted_3$21 = ["data-tone"];
27489
+ var _hoisted_2$37 = { class: "hn-collapse-body" };
27490
+ var _hoisted_3$22 = ["data-tone"];
27475
27491
  var _hoisted_4$18 = ["aria-live"];
27476
27492
  //#endregion
27477
27493
  //#region src/components/banner/Banner.vue
@@ -27536,7 +27552,7 @@ var Banner_default = /* @__PURE__ */ defineComponent({
27536
27552
  "leave-from-class": "hn-collapse-open",
27537
27553
  "leave-to-class": "hn-collapse-closed"
27538
27554
  }, toHandlers(unref(hooks))), {
27539
- default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", _hoisted_1$54, [createElementVNode("div", _hoisted_2$36, [createElementVNode("div", {
27555
+ default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", _hoisted_1$55, [createElementVNode("div", _hoisted_2$37, [createElementVNode("div", {
27540
27556
  "data-tone": tone.value,
27541
27557
  class: normalizeClass(unref(cn)(unref(banner)({ tone: tone.value }), props.class)),
27542
27558
  onPointerenter: _cache[2] || (_cache[2] = ($event) => unref(autoplay).hovered.value = true),
@@ -27609,7 +27625,7 @@ var Banner_default = /* @__PURE__ */ defineComponent({
27609
27625
  size: "sm",
27610
27626
  class: "text-current",
27611
27627
  onClick: close
27612
- })) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 42, _hoisted_3$21)])])) : createCommentVNode("", true)]),
27628
+ })) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 42, _hoisted_3$22)])])) : createCommentVNode("", true)]),
27613
27629
  _: 3
27614
27630
  }, 16);
27615
27631
  };
@@ -27716,7 +27732,7 @@ var MenubarMenu_default = /* @__PURE__ */ defineComponent({
27716
27732
  });
27717
27733
  //#endregion
27718
27734
  //#region src/components/menubar/MenubarItem.vue?vue&type=script&setup=true&lang.ts
27719
- var _hoisted_1$53 = { class: "min-w-0 flex-1" };
27735
+ var _hoisted_1$54 = { class: "min-w-0 flex-1" };
27720
27736
  //#endregion
27721
27737
  //#region src/components/menubar/MenubarItem.vue
27722
27738
  var MenubarItem_default = /* @__PURE__ */ defineComponent({
@@ -27742,7 +27758,7 @@ var MenubarItem_default = /* @__PURE__ */ defineComponent({
27742
27758
  }), {
27743
27759
  default: withCtx(() => [
27744
27760
  renderSlot(_ctx.$slots, "icon"),
27745
- createElementVNode("span", _hoisted_1$53, [renderSlot(_ctx.$slots, "default")]),
27761
+ createElementVNode("span", _hoisted_1$54, [renderSlot(_ctx.$slots, "default")]),
27746
27762
  renderSlot(_ctx.$slots, "trailing")
27747
27763
  ]),
27748
27764
  _: 3
@@ -27756,8 +27772,8 @@ var MenubarItem_default = /* @__PURE__ */ defineComponent({
27756
27772
  });
27757
27773
  //#endregion
27758
27774
  //#region src/components/menubar/MenubarCheckboxItem.vue?vue&type=script&setup=true&lang.ts
27759
- var _hoisted_1$52 = { class: "min-w-0 flex-1" };
27760
- var _hoisted_2$35 = { class: "flex size-4 shrink-0 items-center justify-center" };
27775
+ var _hoisted_1$53 = { class: "min-w-0 flex-1" };
27776
+ var _hoisted_2$36 = { class: "flex size-4 shrink-0 items-center justify-center" };
27761
27777
  //#endregion
27762
27778
  //#region src/components/menubar/MenubarCheckboxItem.vue
27763
27779
  var MenubarCheckboxItem_default = /* @__PURE__ */ defineComponent({
@@ -27789,9 +27805,9 @@ var MenubarCheckboxItem_default = /* @__PURE__ */ defineComponent({
27789
27805
  onSelect: _cache[1] || (_cache[1] = (event) => event.preventDefault())
27790
27806
  }), {
27791
27807
  default: withCtx(() => [
27792
- createElementVNode("span", _hoisted_1$52, [renderSlot(_ctx.$slots, "default")]),
27808
+ createElementVNode("span", _hoisted_1$53, [renderSlot(_ctx.$slots, "default")]),
27793
27809
  renderSlot(_ctx.$slots, "trailing"),
27794
- createElementVNode("span", _hoisted_2$35, [createVNode(unref(MenubarItemIndicator), null, {
27810
+ createElementVNode("span", _hoisted_2$36, [createVNode(unref(MenubarItemIndicator), null, {
27795
27811
  default: withCtx(() => [createVNode(unref(Check))]),
27796
27812
  _: 1
27797
27813
  })])
@@ -27824,7 +27840,7 @@ var MenubarGroup_default = /* @__PURE__ */ defineComponent({
27824
27840
  });
27825
27841
  //#endregion
27826
27842
  //#region src/components/menubar/MenubarSub.vue?vue&type=script&setup=true&lang.ts
27827
- var _hoisted_1$51 = { class: "min-w-0 flex-1" };
27843
+ var _hoisted_1$52 = { class: "min-w-0 flex-1" };
27828
27844
  //#endregion
27829
27845
  //#region src/components/menubar/MenubarSub.vue
27830
27846
  var MenubarSub_default = /* @__PURE__ */ defineComponent({
@@ -27855,7 +27871,7 @@ var MenubarSub_default = /* @__PURE__ */ defineComponent({
27855
27871
  }, {
27856
27872
  default: withCtx(() => [
27857
27873
  renderSlot(_ctx.$slots, "icon"),
27858
- createElementVNode("span", _hoisted_1$51, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(props.label), 1)])]),
27874
+ createElementVNode("span", _hoisted_1$52, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(props.label), 1)])]),
27859
27875
  createVNode(unref(ChevronRight), { class: "text-muted" })
27860
27876
  ]),
27861
27877
  _: 3
@@ -27938,8 +27954,8 @@ var MenubarRadioGroup_default = /* @__PURE__ */ defineComponent({
27938
27954
  });
27939
27955
  //#endregion
27940
27956
  //#region src/components/menubar/MenubarRadioItem.vue?vue&type=script&setup=true&lang.ts
27941
- var _hoisted_1$50 = { class: "min-w-0 flex-1" };
27942
- var _hoisted_2$34 = { class: "flex size-4 shrink-0 items-center justify-center" };
27957
+ var _hoisted_1$51 = { class: "min-w-0 flex-1" };
27958
+ var _hoisted_2$35 = { class: "flex size-4 shrink-0 items-center justify-center" };
27943
27959
  //#endregion
27944
27960
  //#region src/components/menubar/MenubarRadioItem.vue
27945
27961
  var MenubarRadioItem_default = /* @__PURE__ */ defineComponent({
@@ -27961,7 +27977,7 @@ var MenubarRadioItem_default = /* @__PURE__ */ defineComponent({
27961
27977
  "text-value": props.textValue,
27962
27978
  class: unref(cn)(unref(dropdownItem)(), props.class)
27963
27979
  }), {
27964
- default: withCtx(() => [createElementVNode("span", _hoisted_1$50, [renderSlot(_ctx.$slots, "default")]), createElementVNode("span", _hoisted_2$34, [createVNode(unref(MenubarItemIndicator), null, {
27980
+ default: withCtx(() => [createElementVNode("span", _hoisted_1$51, [renderSlot(_ctx.$slots, "default")]), createElementVNode("span", _hoisted_2$35, [createVNode(unref(MenubarItemIndicator), null, {
27965
27981
  default: withCtx(() => [createVNode(unref(Check), { class: "size-4" })]),
27966
27982
  _: 1
27967
27983
  })])]),
@@ -28206,7 +28222,7 @@ function focusFirstInvalid(root) {
28206
28222
  }
28207
28223
  //#endregion
28208
28224
  //#region src/components/form/Form.vue?vue&type=script&setup=true&lang.ts
28209
- var _hoisted_1$49 = ["aria-busy"];
28225
+ var _hoisted_1$50 = ["aria-busy"];
28210
28226
  //#endregion
28211
28227
  //#region src/components/form/Form.vue
28212
28228
  var Form_default = /* @__PURE__ */ defineComponent({
@@ -28268,7 +28284,7 @@ var Form_default = /* @__PURE__ */ defineComponent({
28268
28284
  invalid: unref(form).invalid.value,
28269
28285
  submitting: unref(form).submitting.value,
28270
28286
  submitted: unref(form).submitted.value
28271
- })], 42, _hoisted_1$49);
28287
+ })], 42, _hoisted_1$50);
28272
28288
  };
28273
28289
  }
28274
28290
  });
@@ -28329,13 +28345,13 @@ var formFieldDescription = tv({ base: "text-muted text-sm" });
28329
28345
  var formFieldMessage = tv({ base: "text-danger-text text-sm" });
28330
28346
  //#endregion
28331
28347
  //#region src/components/form-field/FormField.vue?vue&type=script&setup=true&lang.ts
28332
- var _hoisted_1$48 = [
28348
+ var _hoisted_1$49 = [
28333
28349
  "data-invalid",
28334
28350
  "data-disabled",
28335
28351
  "data-orientation"
28336
28352
  ];
28337
- var _hoisted_2$33 = ["id", "for"];
28338
- var _hoisted_3$20 = ["id"];
28353
+ var _hoisted_2$34 = ["id", "for"];
28354
+ var _hoisted_3$21 = ["id"];
28339
28355
  var _hoisted_4$17 = ["id"];
28340
28356
  var _hoisted_5$13 = {
28341
28357
  key: 0,
@@ -28438,11 +28454,11 @@ var FormField_default = /* @__PURE__ */ defineComponent({
28438
28454
  default: withCtx(() => [createTextVNode(toDisplayString(unref(t).form.required), 1)]),
28439
28455
  _: 1
28440
28456
  })) : createCommentVNode("", true)
28441
- ], 10, _hoisted_2$33)) : createCommentVNode("", true), descriptionWithLabel.value ? (openBlock(), createElementBlock("p", {
28457
+ ], 10, _hoisted_2$34)) : createCommentVNode("", true), descriptionWithLabel.value ? (openBlock(), createElementBlock("p", {
28442
28458
  key: 1,
28443
28459
  id: unref(descriptionId),
28444
28460
  class: normalizeClass(unref(formFieldDescription)())
28445
- }, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])], 10, _hoisted_3$20)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("div", {
28461
+ }, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])], 10, _hoisted_3$21)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("div", {
28446
28462
  ref_key: "body",
28447
28463
  ref: body,
28448
28464
  "data-hn-form-field-body": "",
@@ -28470,7 +28486,7 @@ var FormField_default = /* @__PURE__ */ defineComponent({
28470
28486
  }, toDisplayString(message.value), 11, _hoisted_7$5)])])) : createCommentVNode("", true)]),
28471
28487
  _: 1
28472
28488
  }, 16)
28473
- ], 2)], 2)], 46, _hoisted_1$48);
28489
+ ], 2)], 2)], 46, _hoisted_1$49);
28474
28490
  };
28475
28491
  }
28476
28492
  });
@@ -28494,8 +28510,8 @@ var formLayoutGrid = tv({
28494
28510
  });
28495
28511
  //#endregion
28496
28512
  //#region src/components/form-layout/FormLayout.vue?vue&type=script&setup=true&lang.ts
28497
- var _hoisted_1$47 = ["disabled", "aria-describedby"];
28498
- var _hoisted_2$32 = ["id"];
28513
+ var _hoisted_1$48 = ["disabled", "aria-describedby"];
28514
+ var _hoisted_2$33 = ["id"];
28499
28515
  //#endregion
28500
28516
  //#region src/components/form-layout/FormLayout.vue
28501
28517
  var FormLayout_default = /* @__PURE__ */ defineComponent({
@@ -28540,457 +28556,393 @@ var FormLayout_default = /* @__PURE__ */ defineComponent({
28540
28556
  key: 1,
28541
28557
  id: unref(descriptionId),
28542
28558
  class: normalizeClass(unref(formLayoutDescription)())
28543
- }, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])], 10, _hoisted_2$32)) : createCommentVNode("", true),
28559
+ }, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(props.description), 1)])], 10, _hoisted_2$33)) : createCommentVNode("", true),
28544
28560
  createElementVNode("div", { class: normalizeClass(unref(formLayoutGrid)({
28545
28561
  columns: props.columns,
28546
28562
  headed: headed.value || described.value
28547
28563
  })) }, [renderSlot(_ctx.$slots, "default")], 2)
28548
- ], 10, _hoisted_1$47);
28564
+ ], 10, _hoisted_1$48);
28549
28565
  };
28550
28566
  }
28551
28567
  });
28552
28568
  //#endregion
28553
- //#region src/primitives/pin-input/context.ts
28554
- var [injectPinInputRootContext, providePinInputRootContext] = createContext("PinInputRoot");
28555
- //#endregion
28556
- //#region ../shared/src/primitives/arrow-navigation/index.ts
28557
- var IGNORED = ["INPUT", "TEXTAREA"];
28558
- function arrowNavigation(event, currentElement, parentElement, options = {}) {
28559
- if (!currentElement || options.enableIgnoredElement && IGNORED.includes(currentElement.nodeName)) return null;
28560
- const { arrowKeyOptions = "both", attributeName = `[${COLLECTION_ITEM}]`, itemsArray = [], loop = true, dir = "ltr", preventScroll = true, focus = false } = options;
28561
- const right = event.key === "ArrowRight";
28562
- const left = event.key === "ArrowLeft";
28563
- const up = event.key === "ArrowUp";
28564
- const down = event.key === "ArrowDown";
28565
- const home = event.key === "Home";
28566
- const end = event.key === "End";
28567
- const goingVertical = up || down;
28568
- const goingHorizontal = right || left;
28569
- if (!home && !end && (!goingVertical && !goingHorizontal || arrowKeyOptions === "vertical" && goingHorizontal || arrowKeyOptions === "horizontal" && goingVertical)) return null;
28570
- const items = parentElement ? Array.from(parentElement.querySelectorAll(attributeName)) : itemsArray;
28571
- if (!items.length) return null;
28572
- if (preventScroll) event.preventDefault();
28573
- let item = null;
28574
- if (goingHorizontal || goingVertical) item = findNextFocusableElement(items, currentElement, {
28575
- goForward: goingVertical ? down : dir === "ltr" ? right : left,
28576
- loop
28577
- });
28578
- else if (home) item = items.at(0) || null;
28579
- else if (end) item = items.at(-1) || null;
28580
- if (focus) item?.focus();
28581
- return item;
28582
- }
28583
- function findNextFocusableElement(elements, currentElement, options, iterations = elements.includes(currentElement) ? elements.length : elements.length + 1) {
28584
- if (--iterations === 0) return null;
28585
- const index = elements.indexOf(currentElement);
28586
- const newIndex = index === -1 ? options.goForward ? 0 : elements.length - 1 : options.goForward ? index + 1 : index - 1;
28587
- if (!options.loop && (newIndex < 0 || newIndex >= elements.length)) return null;
28588
- const candidate = elements[(newIndex + elements.length) % elements.length];
28589
- if (!candidate) return null;
28590
- if (candidate.hasAttribute("disabled") && candidate.getAttribute("disabled") !== "false") return findNextFocusableElement(elements, candidate, options, iterations);
28591
- return candidate;
28592
- }
28593
- //#endregion
28594
28569
  //#region ../shared/src/primitives/pin-input/index.ts
28595
- var NUMBER = /^\d*$/;
28596
- var NON_NUMBER = /\D/g;
28597
- function pinInputValues(value) {
28598
- return Array.isArray(value) ? [...value] : [];
28599
- }
28600
- function isPinInputComplete(values, count, numeric) {
28601
- return values.filter((value) => !!value || numeric && value === 0).length === count;
28602
- }
28603
- function stripPinNonNumbers(value) {
28604
- return value.replace(NON_NUMBER, "");
28605
- }
28606
- function removeTrailingEmptyStrings(values) {
28607
- while (values.length && values[values.length - 1] === "") values.pop();
28608
- return values;
28609
- }
28610
- function setPinValueAt(current, index, value, numeric) {
28611
- const values = [...current];
28612
- if (numeric) {
28613
- const number = +value;
28614
- if (value === "" || Number.isNaN(number)) delete values[index];
28615
- else values[index] = number;
28616
- } else values[index] = value;
28617
- return removeTrailingEmptyStrings(values);
28618
- }
28619
- function spreadPinValue(current, characters, index, count, numeric) {
28620
- const values = [...current];
28621
- const start = characters.length >= count ? 0 : index;
28622
- const end = Math.min(start + characters.length, count);
28623
- const filled = [];
28624
- for (let at = start; at < end; at++) {
28625
- const character = characters[at - start];
28626
- if (numeric) {
28627
- const number = Number.parseInt(character);
28628
- if (Number.isNaN(number)) continue;
28629
- values[at] = number;
28630
- } else values[at] = character;
28631
- filled.push(at);
28632
- }
28570
+ var FULL_WIDTH = /[!-~]/g;
28571
+ var UNSUPPORTED = /[\s\p{C}]|[\u{10000}-\u{10FFFF}]/gu;
28572
+ var NON_DIGIT = /\D/g;
28573
+ var IDLE = {
28574
+ focused: false,
28575
+ start: 0,
28576
+ end: 0
28577
+ };
28578
+ function cleanPinText(text, numeric) {
28579
+ return text.replace(FULL_WIDTH, (character) => String.fromCharCode(character.charCodeAt(0) - 65248)).replace(numeric ? NON_DIGIT : UNSUPPORTED, "");
28580
+ }
28581
+ function pinInputValue(value, length) {
28582
+ return value.slice(0, Math.max(0, length));
28583
+ }
28584
+ function pinSelectionAt(caret, size, length, backward = false) {
28585
+ if (caret >= size) return size < length || !size ? [size, size] : [size - 1, size];
28586
+ if (backward && caret > 0) return [caret - 1, caret];
28587
+ return [caret, caret + 1];
28588
+ }
28589
+ function editPinValue(base, raw, selection, length, numeric, type = "") {
28590
+ const limit = Math.min(base.length, raw.length);
28591
+ let prefix = 0;
28592
+ while (prefix < limit && base[prefix] === raw[prefix]) prefix++;
28593
+ if (selection) prefix = Math.min(prefix, selection.start);
28594
+ let suffix = 0;
28595
+ while (suffix < limit - prefix && base[base.length - 1 - suffix] === raw[raw.length - 1 - suffix]) suffix++;
28596
+ if (selection) suffix = Math.max(0, Math.min(suffix, base.length - selection.end));
28597
+ const inserted = raw.slice(prefix, raw.length - suffix);
28598
+ const removed = base.length - suffix - prefix;
28599
+ const kept = cleanPinText(inserted, numeric);
28600
+ if (inserted && !kept) return {
28601
+ value: base,
28602
+ start: selection?.start ?? prefix,
28603
+ end: selection?.end ?? prefix + removed
28604
+ };
28605
+ const value = kept.length >= length ? kept.slice(0, length) : (base.slice(0, prefix) + kept + base.slice(prefix + Math.max(removed, kept.length))).slice(0, length);
28606
+ const [start, end] = pinSelectionAt(kept.length >= length ? length : prefix + kept.length, value.length, length, !kept && type.includes("Backward"));
28633
28607
  return {
28634
- values,
28635
- filled,
28608
+ value,
28609
+ start,
28636
28610
  end
28637
28611
  };
28638
28612
  }
28639
- function resolvePinComposition(value, numeric) {
28640
- const text = numeric ? stripPinNonNumbers(value) : value;
28641
- if (numeric && !text) return { kind: "clear" };
28642
- if (text.length > 1) return {
28643
- kind: "spread",
28644
- characters: text
28645
- };
28646
- return {
28647
- kind: "single",
28648
- character: text
28649
- };
28650
- }
28651
- function resolvePinInput(data, value, numeric) {
28652
- if ((data?.length ?? 0) > 1) return {
28653
- kind: "spread",
28654
- characters: value
28655
- };
28656
- if (numeric && !NUMBER.test(value)) return {
28657
- kind: "filter",
28658
- value: stripPinNonNumbers(value)
28659
- };
28613
+ function movePinSelection(selection, backward, size, length, target, extend) {
28614
+ const last = Math.max(0, Math.min(size, length - 1));
28615
+ const collapsed = selection.start === selection.end;
28616
+ const focus = collapsed || backward ? selection.start : selection.end - 1;
28617
+ const anchor = collapsed ? selection.start : backward ? selection.end - 1 : selection.start;
28618
+ const wide = selection.end - selection.start > 1;
28619
+ const stepped = target === "previous" ? wide && !extend ? selection.start : focus - 1 : target === "next" ? wide && !extend ? selection.end : focus + 1 : target;
28620
+ const next = Math.max(0, Math.min(stepped, last));
28621
+ if (!extend) {
28622
+ const [start, end] = pinSelectionAt(next, size, length);
28623
+ return {
28624
+ start,
28625
+ end,
28626
+ backward: false
28627
+ };
28628
+ }
28629
+ const start = Math.min(anchor, next);
28630
+ const end = Math.min(Math.max(anchor, next) + 1, size);
28660
28631
  return {
28661
- kind: "single",
28662
- character: data || value.slice(-1)
28632
+ start: Math.min(start, end),
28633
+ end,
28634
+ backward: next < anchor
28663
28635
  };
28664
28636
  }
28665
- function resolvePinPaste(text, numeric) {
28666
- return numeric ? stripPinNonNumbers(text) : text;
28667
- }
28668
- function pinFocusRedirect(values, count, index) {
28669
- for (let at = 0; at < count; at++) if (values[at] === "" || values[at] === void 0) return at < index ? at : -1;
28670
- return -1;
28671
- }
28672
- function navigatePin(event, current, inputs, dir) {
28673
- arrowNavigation(event, current, void 0, {
28674
- itemsArray: inputs,
28675
- focus: true,
28676
- loop: false,
28677
- arrowKeyOptions: "horizontal",
28678
- dir
28637
+ function pinCells(value, length, selection) {
28638
+ const collapsed = selection.start === selection.end;
28639
+ return Array.from({ length: Math.max(0, length) }, (_, index) => {
28640
+ const char = value[index] ?? "";
28641
+ const active = selection.focused && (collapsed ? index === selection.start : index >= selection.start && index < selection.end);
28642
+ return {
28643
+ char,
28644
+ active,
28645
+ caret: active && !char
28646
+ };
28679
28647
  });
28680
28648
  }
28681
- function pinPlaceholder(element, active, placeholder) {
28682
- element.placeholder = !element.value && element === active ? "" : placeholder;
28683
- }
28684
- function pinInputLabel(index, count) {
28685
- return `pin input ${index + 1} of ${count}`;
28649
+ function pinCellAt(cells, x) {
28650
+ let nearest = 0;
28651
+ let distance = Infinity;
28652
+ for (let index = 0; index < cells.length; index++) {
28653
+ const rect = cells[index].getBoundingClientRect();
28654
+ const gap = x < rect.left ? rect.left - x : x > rect.right ? x - rect.right : 0;
28655
+ if (gap < distance) {
28656
+ distance = gap;
28657
+ nearest = index;
28658
+ }
28659
+ }
28660
+ return nearest;
28686
28661
  }
28687
- //#endregion
28688
- //#region src/primitives/utils/useComposing.ts
28689
- var IME_SCRIPT = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Bopomofo}]/u;
28690
- function isAndroid() {
28691
- return typeof navigator !== "undefined" && /android/i.test(navigator.userAgent);
28662
+ function activeElement(document) {
28663
+ let active = document.activeElement;
28664
+ while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;
28665
+ return active;
28692
28666
  }
28693
- function useComposing(onEnd) {
28694
- const isComposing = ref(false);
28695
- const isImeComposition = ref(true);
28696
- const sawImeScript = ref(false);
28697
- const shouldDeferInput = computed(() => isComposing.value && isImeComposition.value);
28698
- function handleCompositionStart() {
28699
- isComposing.value = true;
28700
- isImeComposition.value = true;
28701
- sawImeScript.value = false;
28667
+ function createPinInput(input, options) {
28668
+ const document = input.ownerDocument;
28669
+ const shown = () => pinInputValue(options.value(), options.length());
28670
+ let text = shown();
28671
+ let base = null;
28672
+ let anchor = null;
28673
+ let live = null;
28674
+ let composing = false;
28675
+ let pointer = "mouse";
28676
+ let pressed = false;
28677
+ let away = false;
28678
+ let landing = false;
28679
+ let disposed = false;
28680
+ let view = IDLE;
28681
+ const focused = () => activeElement(document) === input;
28682
+ function range() {
28683
+ const start = Math.min(input.selectionStart ?? text.length, text.length);
28684
+ return {
28685
+ start,
28686
+ end: Math.max(start, Math.min(input.selectionEnd ?? start, text.length))
28687
+ };
28702
28688
  }
28703
- function handleCompositionUpdate(event) {
28704
- if (!event.data) return;
28705
- if (IME_SCRIPT.test(event.data)) {
28706
- isImeComposition.value = true;
28707
- sawImeScript.value = true;
28708
- } else if (isAndroid() && !sawImeScript.value) isImeComposition.value = false;
28689
+ function publish() {
28690
+ const next = !focused() ? IDLE : {
28691
+ focused: true,
28692
+ ...composing && live ? {
28693
+ start: live.start,
28694
+ end: live.end
28695
+ } : range()
28696
+ };
28697
+ if (next.focused === view.focused && next.start === view.start && next.end === view.end) return;
28698
+ view = next;
28699
+ options.select(next);
28709
28700
  }
28710
- function handleCompositionEnd(event) {
28711
- nextTick(() => {
28712
- isComposing.value = false;
28713
- onEnd?.(event);
28714
- });
28701
+ function place(start, end, backward = false) {
28702
+ if (!focused()) return;
28703
+ if (input.selectionStart === start && input.selectionEnd === end) return;
28704
+ input.setSelectionRange(start, end, backward ? "backward" : "forward");
28715
28705
  }
28716
- return {
28717
- isComposing,
28718
- shouldDeferInput,
28719
- handleCompositionStart,
28720
- handleCompositionUpdate,
28721
- handleCompositionEnd
28722
- };
28723
- }
28724
- //#endregion
28725
- //#region src/primitives/pin-input/PinInputInput.ts
28726
- var PinInputInput = defineComponent({
28727
- name: "PinInputInput",
28728
- props: {
28729
- index: {
28730
- type: Number,
28731
- required: true
28732
- },
28733
- disabled: {
28734
- type: Boolean,
28735
- required: false
28736
- },
28737
- asChild: {
28738
- type: Boolean,
28739
- required: false
28740
- },
28741
- as: {
28742
- type: null,
28743
- required: false,
28744
- default: "input"
28745
- }
28746
- },
28747
- setup(props, { slots }) {
28748
- const context = injectPinInputRootContext();
28749
- const inputElements = computed(() => [...context.inputElements.value]);
28750
- const currentValue = computed(() => context.currentModelValue.value[props.index]);
28751
- const disabled = computed(() => props.disabled || context.disabled.value);
28752
- const isOtpMode = computed(() => context.otp.value);
28753
- const isPasswordMode = computed(() => context.mask.value);
28754
- const { primitiveElement, currentElement } = usePrimitiveElement();
28755
- function updateModelValueAt(index, value) {
28756
- context.modelValue.value = setPinValueAt(context.currentModelValue.value, index, value, context.isNumericMode.value);
28757
- }
28758
- function handleMultipleCharacter(characters) {
28759
- const { values, filled, end } = spreadPinValue(context.currentModelValue.value, characters, props.index, inputElements.value.length, context.isNumericMode.value);
28760
- for (const at of filled) inputElements.value[at].focus();
28761
- context.modelValue.value = values;
28762
- inputElements.value[end]?.focus();
28763
- }
28764
- function apply(target, action) {
28765
- if (action.kind === "clear") target.value = "";
28766
- else if (action.kind === "filter") target.value = action.value;
28767
- else if (action.kind === "spread") handleMultipleCharacter(action.characters);
28768
- else {
28769
- target.value = action.character;
28770
- updateModelValueAt(props.index, target.value);
28771
- inputElements.value[props.index + 1]?.focus();
28772
- }
28773
- }
28774
- const { isComposing, handleCompositionStart, handleCompositionEnd } = useComposing((event) => {
28775
- const target = event.target;
28776
- apply(target, resolvePinComposition(event.data || target.value, context.isNumericMode.value));
28777
- });
28778
- function handleInput(event) {
28779
- if (isComposing.value || event.isComposing) return;
28780
- const target = event.target;
28781
- apply(target, resolvePinInput(event.data, target.value, context.isNumericMode.value));
28782
- }
28783
- function updatePlaceholder() {
28784
- nextTick(() => {
28785
- const target = currentElement.value;
28786
- if (!target) return;
28787
- pinPlaceholder(target, getActiveElement(), context.placeholder.value);
28788
- });
28789
- }
28790
- function handleKeydown(event) {
28791
- if (isComposing.value || event.isComposing) return;
28792
- navigatePin(event, getActiveElement(), inputElements.value, context.dir.value);
28793
- }
28794
- function handleBackspace(event) {
28795
- event.preventDefault();
28796
- if (event.target.value) updateModelValueAt(props.index, "");
28797
- else {
28798
- const previous = inputElements.value[props.index - 1];
28799
- if (previous) {
28800
- previous.focus();
28801
- updateModelValueAt(props.index - 1, "");
28802
- }
28803
- }
28804
- }
28805
- function handleDelete(event) {
28806
- if (event.key === "Delete") {
28807
- event.preventDefault();
28808
- updateModelValueAt(props.index, "");
28809
- }
28810
- }
28811
- function handleFocus(event) {
28812
- if (context.otp.value) {
28813
- const redirect = pinFocusRedirect(context.currentModelValue.value, inputElements.value.length, props.index);
28814
- if (redirect !== -1) {
28815
- inputElements.value[redirect].focus();
28816
- return;
28817
- }
28818
- }
28819
- event.target.setSelectionRange(1, 1);
28820
- updatePlaceholder();
28706
+ function settle() {
28707
+ const { start, end } = range();
28708
+ if (start !== end) return;
28709
+ const [from, to] = pinSelectionAt(start, text.length, options.length());
28710
+ place(from, to);
28711
+ }
28712
+ function emit(value) {
28713
+ if (value === text) return;
28714
+ text = value;
28715
+ options.change(value);
28716
+ queueMicrotask(sync);
28717
+ }
28718
+ function sync() {
28719
+ if (disposed) return;
28720
+ const next = shown();
28721
+ if (next !== text) {
28722
+ text = next;
28723
+ composing = false;
28724
+ base = anchor = live = null;
28725
+ } else if (composing || input.value === text) return;
28726
+ if (input.value !== text) {
28727
+ const caret = Math.min(input.selectionStart ?? text.length, text.length);
28728
+ input.value = text;
28729
+ const [start, end] = pinSelectionAt(caret, text.length, options.length());
28730
+ place(start, end);
28731
+ }
28732
+ publish();
28733
+ }
28734
+ function derive(type) {
28735
+ const length = options.length();
28736
+ const numeric = options.numeric();
28737
+ if (type.startsWith("history")) {
28738
+ const value = cleanPinText(input.value, numeric).slice(0, length);
28739
+ const [start, end] = pinSelectionAt(Math.min(input.selectionStart ?? value.length, value.length), value.length, length);
28740
+ return {
28741
+ value,
28742
+ start,
28743
+ end
28744
+ };
28821
28745
  }
28822
- function handlePaste(event) {
28746
+ return editPinValue(base ?? text, input.value, anchor, length, numeric, type);
28747
+ }
28748
+ function preview(type) {
28749
+ composing = true;
28750
+ base ??= text;
28751
+ live = derive(type);
28752
+ emit(live.value);
28753
+ publish();
28754
+ }
28755
+ function commit(type) {
28756
+ const edit = derive(type);
28757
+ composing = false;
28758
+ base = anchor = live = null;
28759
+ if (input.value !== edit.value) input.value = edit.value;
28760
+ emit(edit.value);
28761
+ place(edit.start, edit.end, type.includes("Backward"));
28762
+ publish();
28763
+ }
28764
+ function onBeforeInput(event) {
28765
+ landing = false;
28766
+ if (composing || event.isComposing) return;
28767
+ if (event.inputType === "insertText" && event.data && !cleanPinText(event.data, options.numeric())) {
28823
28768
  event.preventDefault();
28824
- const clipboardData = event.clipboardData;
28825
- if (!clipboardData) return;
28826
- handleMultipleCharacter(resolvePinPaste(clipboardData.getData("text"), context.isNumericMode.value));
28769
+ return;
28827
28770
  }
28828
- watch(currentValue, updatePlaceholder);
28829
- onMounted(() => {
28830
- context.onInputElementChange(currentElement.value);
28831
- });
28832
- onUnmounted(() => {
28833
- context.inputElements?.value.delete(currentElement.value);
28834
- });
28835
- const onInput = (event) => handleInput(event);
28836
- const onKeydown = [
28837
- withKeys(handleKeydown, [
28838
- "left",
28839
- "right",
28840
- "up",
28841
- "down",
28842
- "home",
28843
- "end"
28844
- ]),
28845
- withKeys(handleBackspace, ["backspace"]),
28846
- withKeys(handleDelete, ["delete"])
28847
- ];
28848
- return () => h(Primitive, {
28849
- ref: primitiveElement,
28850
- autocapitalize: "none",
28851
- as: props.as,
28852
- "as-child": props.asChild,
28853
- autocomplete: isOtpMode.value ? "one-time-code" : "false",
28854
- type: isPasswordMode.value ? "password" : "text",
28855
- inputmode: context.isNumericMode.value ? "numeric" : "text",
28856
- pattern: context.isNumericMode.value ? "[0-9]*" : void 0,
28857
- placeholder: context.placeholder.value,
28858
- value: currentValue.value,
28859
- disabled: disabled.value,
28860
- "data-disabled": disabled.value ? "" : void 0,
28861
- "data-complete": context.isCompleted.value ? "" : void 0,
28862
- "aria-label": pinInputLabel(props.index, inputElements.value.length),
28863
- onInput,
28864
- onKeydown,
28865
- onFocus: handleFocus,
28866
- onBlur: updatePlaceholder,
28867
- onPaste: handlePaste,
28868
- onCompositionstart: handleCompositionStart,
28869
- onCompositionend: handleCompositionEnd
28870
- }, { default: withCtx(() => [renderSlot(slots, "default")]) });
28771
+ base = input.value;
28772
+ anchor = range();
28871
28773
  }
28872
- });
28873
- //#endregion
28874
- //#region src/primitives/pin-input/PinInputRoot.ts
28875
- var PinInputRoot = defineComponent({
28876
- name: "PinInputRoot",
28877
- inheritAttrs: false,
28878
- props: {
28879
- modelValue: {
28880
- type: null,
28881
- required: false
28882
- },
28883
- defaultValue: {
28884
- type: null,
28885
- required: false
28886
- },
28887
- placeholder: {
28888
- type: String,
28889
- required: false,
28890
- default: ""
28891
- },
28892
- mask: {
28893
- type: Boolean,
28894
- required: false
28895
- },
28896
- otp: {
28897
- type: Boolean,
28898
- required: false
28899
- },
28900
- type: {
28901
- type: null,
28902
- required: false,
28903
- default: "text"
28904
- },
28905
- dir: {
28906
- type: String,
28907
- required: false
28908
- },
28909
- disabled: {
28910
- type: Boolean,
28911
- required: false
28912
- },
28913
- id: {
28914
- type: String,
28915
- required: false
28916
- },
28917
- asChild: {
28918
- type: Boolean,
28919
- required: false
28920
- },
28921
- as: {
28922
- type: null,
28923
- required: false
28924
- },
28925
- name: {
28926
- type: String,
28927
- required: false
28928
- },
28929
- required: {
28930
- type: Boolean,
28931
- required: false
28774
+ function onInput(event) {
28775
+ const { inputType = "", isComposing } = event;
28776
+ if (composing || isComposing) preview(inputType);
28777
+ else if (base !== null || input.value !== text) commit(inputType);
28778
+ }
28779
+ function onCompositionStart() {
28780
+ landing = false;
28781
+ composing = true;
28782
+ base = input.value;
28783
+ anchor = range();
28784
+ }
28785
+ function onCompositionEnd() {
28786
+ if (composing) commit("insertCompositionText");
28787
+ }
28788
+ function land() {
28789
+ const size = text.length;
28790
+ if (size && size >= options.length()) place(0, size);
28791
+ else place(size, size);
28792
+ }
28793
+ function onSelection() {
28794
+ if (composing) return;
28795
+ if (focused()) {
28796
+ if (landing) land();
28797
+ else settle();
28932
28798
  }
28933
- },
28934
- emits: ["update:modelValue", "complete"],
28935
- setup(props, { emit, attrs, slots }) {
28936
- const { mask, otp, placeholder, type, disabled, dir: propDir } = toRefs(props);
28937
- const { forwardRef } = useForwardExpose$1();
28938
- const dir = useDirection$1(propDir);
28939
- const modelValue = useVModel$1(props, "modelValue", (_, value) => emit("update:modelValue", value), {
28940
- defaultValue: props.defaultValue ?? [],
28941
- passive: true
28942
- });
28943
- const currentModelValue = computed(() => pinInputValues(modelValue.value));
28944
- const inputElements = ref(/* @__PURE__ */ new Set());
28945
- function onInputElementChange(element) {
28946
- inputElements.value.add(element);
28799
+ publish();
28800
+ }
28801
+ function onFocus() {
28802
+ landing = !pressed && !away && !composing;
28803
+ if (landing) land();
28804
+ away = false;
28805
+ publish();
28806
+ }
28807
+ function onBlur() {
28808
+ away = !document.hasFocus();
28809
+ pressed = false;
28810
+ landing = false;
28811
+ if (composing) commit("insertCompositionText");
28812
+ publish();
28813
+ }
28814
+ function onKeydown(event) {
28815
+ landing = false;
28816
+ if (composing || event.isComposing || event.keyCode === 229) return;
28817
+ if (event.metaKey || event.ctrlKey || event.altKey) return;
28818
+ const { key } = event;
28819
+ const forward = options.rtl() ? "ArrowLeft" : "ArrowRight";
28820
+ const back = options.rtl() ? "ArrowRight" : "ArrowLeft";
28821
+ const target = key === forward ? "next" : key === back ? "previous" : key === "Home" ? 0 : key === "End" ? options.length() : null;
28822
+ if (target === null) return;
28823
+ event.preventDefault();
28824
+ const next = movePinSelection(range(), input.selectionDirection === "backward", text.length, options.length(), target, event.shiftKey);
28825
+ place(next.start, next.end, next.backward);
28826
+ publish();
28827
+ }
28828
+ function pick(event) {
28829
+ if (composing) return;
28830
+ if (event.detail > 1 && text) place(0, text.length);
28831
+ else {
28832
+ const [start, end] = pinSelectionAt(Math.min(pinCellAt(options.cells(), event.clientX), text.length), text.length, options.length());
28833
+ place(start, end);
28947
28834
  }
28948
- const isNumericMode = computed(() => props.type === "number");
28949
- const isCompleted = computed(() => isPinInputComplete(currentModelValue.value, inputElements.value.size, isNumericMode.value));
28950
- watch(modelValue, () => {
28951
- if (isCompleted.value) emit("complete", modelValue.value);
28952
- }, { deep: true });
28953
- providePinInputRootContext({
28954
- modelValue,
28955
- currentModelValue,
28956
- mask,
28957
- otp,
28958
- placeholder,
28959
- type,
28960
- dir,
28961
- disabled,
28962
- isCompleted,
28963
- inputElements,
28964
- onInputElementChange,
28965
- isNumericMode
28966
- });
28967
- const onFocus = () => Array.from(inputElements.value)?.[0]?.focus();
28968
- return () => h(Primitive, mergeProps(attrs, {
28969
- ref: forwardRef,
28970
- dir: dir.value,
28971
- "data-complete": isCompleted.value ? "" : void 0,
28972
- "data-disabled": disabled.value ? "" : void 0
28973
- }), { default: withCtx(() => [renderSlot(slots, "default", { modelValue: modelValue.value }), h(VisuallyHiddenInput_default, {
28974
- id: props.id,
28975
- as: "input",
28976
- feature: "focusable",
28977
- tabindex: "-1",
28978
- value: currentModelValue.value.join(""),
28979
- name: props.name ?? "",
28980
- disabled: disabled.value,
28981
- required: props.required,
28982
- onFocus
28983
- })]) });
28835
+ publish();
28984
28836
  }
28985
- });
28837
+ function onPointerDown(event) {
28838
+ landing = false;
28839
+ pointer = event.pointerType;
28840
+ pressed = pointer !== "mouse";
28841
+ }
28842
+ function onMouseDown(event) {
28843
+ if (event.button !== 0 || pointer !== "mouse" || input.disabled) return;
28844
+ event.preventDefault();
28845
+ pressed = true;
28846
+ input.focus();
28847
+ pressed = false;
28848
+ pick(event);
28849
+ }
28850
+ function onClick(event) {
28851
+ const touched = pressed;
28852
+ pressed = false;
28853
+ if (touched && pointer !== "mouse") pick(event);
28854
+ }
28855
+ const listeners = [
28856
+ [
28857
+ input,
28858
+ "beforeinput",
28859
+ onBeforeInput
28860
+ ],
28861
+ [
28862
+ input,
28863
+ "input",
28864
+ onInput
28865
+ ],
28866
+ [
28867
+ input,
28868
+ "compositionstart",
28869
+ onCompositionStart
28870
+ ],
28871
+ [
28872
+ input,
28873
+ "compositionend",
28874
+ onCompositionEnd
28875
+ ],
28876
+ [
28877
+ input,
28878
+ "select",
28879
+ onSelection
28880
+ ],
28881
+ [
28882
+ input,
28883
+ "focus",
28884
+ onFocus
28885
+ ],
28886
+ [
28887
+ input,
28888
+ "blur",
28889
+ onBlur
28890
+ ],
28891
+ [
28892
+ input,
28893
+ "keydown",
28894
+ onKeydown
28895
+ ],
28896
+ [
28897
+ input,
28898
+ "pointerdown",
28899
+ onPointerDown
28900
+ ],
28901
+ [
28902
+ input,
28903
+ "mousedown",
28904
+ onMouseDown
28905
+ ],
28906
+ [
28907
+ input,
28908
+ "click",
28909
+ onClick
28910
+ ],
28911
+ [
28912
+ document,
28913
+ "selectionchange",
28914
+ onSelection
28915
+ ]
28916
+ ];
28917
+ for (const [target, type, listener] of listeners) target.addEventListener(type, listener);
28918
+ if (input.value !== text) input.value = text;
28919
+ if (focused()) settle();
28920
+ publish();
28921
+ return {
28922
+ sync,
28923
+ dispose() {
28924
+ disposed = true;
28925
+ for (const [target, type, listener] of listeners) target.removeEventListener(type, listener);
28926
+ }
28927
+ };
28928
+ }
28986
28929
  //#endregion
28987
28930
  //#region ../shared/src/variants/pin-input.ts
28988
- var pinInput = tv({ base: "inline-flex max-w-full gap-2" });
28931
+ var pinInput = tv({
28932
+ base: "relative inline-flex max-w-full gap-2",
28933
+ variants: { size: {
28934
+ sm: "[--hn-pin-size:var(--hn-control-h-sm)]",
28935
+ md: "[--hn-pin-size:var(--hn-control-h-md)]",
28936
+ lg: "[--hn-pin-size:var(--hn-control-h-lg)]"
28937
+ } },
28938
+ defaultVariants: { size: "md" }
28939
+ });
28989
28940
  var pinInputCell = tv({
28990
28941
  base: [
28991
- "hn-field text-fg shrink-0 rounded-md border text-center font-medium tabular-nums outline-none [font-family:inherit]",
28992
- "placeholder:text-faint placeholder:font-normal",
28993
- "disabled:cursor-not-allowed disabled:opacity-50"
28942
+ "hn-field text-fg inline-flex size-[var(--hn-pin-size)] shrink-0 items-center justify-center rounded-md border font-medium tabular-nums select-none",
28943
+ "not-data-filled:text-faint not-data-filled:font-normal",
28944
+ "data-active:[--hn-field-ring-w:2px] data-invalid:data-active:[--hn-field-ring-w:1px]",
28945
+ "data-disabled:opacity-50"
28994
28946
  ],
28995
28947
  variants: {
28996
28948
  variant: {
@@ -28998,9 +28950,9 @@ var pinInputCell = tv({
28998
28950
  secondary: "border-transparent [--hn-field-bg:var(--hn-bg-inset)]"
28999
28951
  },
29000
28952
  size: {
29001
- sm: "size-[var(--hn-control-h-sm)] text-sm",
29002
- md: "size-[var(--hn-control-h-md)] text-base",
29003
- lg: "size-[var(--hn-control-h-lg)] text-md"
28953
+ sm: "text-sm",
28954
+ md: "text-base",
28955
+ lg: "text-md"
29004
28956
  }
29005
28957
  },
29006
28958
  defaultVariants: {
@@ -29008,10 +28960,43 @@ var pinInputCell = tv({
29008
28960
  size: "md"
29009
28961
  }
29010
28962
  });
28963
+ var pinInputNative = tv({ base: "hn-pin-native" });
28964
+ var pinInputCaret = tv({ base: "hn-pin-caret" });
28965
+ //#endregion
28966
+ //#region src/components/pin-input/PinInput.vue?vue&type=script&setup=true&lang.ts
28967
+ var _hoisted_1$47 = [
28968
+ "dir",
28969
+ "data-complete",
28970
+ "data-disabled",
28971
+ "data-invalid"
28972
+ ];
28973
+ var _hoisted_2$32 = [
28974
+ "data-filled",
28975
+ "data-state",
28976
+ "data-disabled",
28977
+ "data-invalid"
28978
+ ];
28979
+ var _hoisted_3$20 = [
28980
+ "id",
28981
+ "type",
28982
+ "name",
28983
+ "^value",
28984
+ "inputmode",
28985
+ "pattern",
28986
+ "autocomplete",
28987
+ "autofocus",
28988
+ "disabled",
28989
+ "required",
28990
+ "aria-label",
28991
+ "aria-labelledby",
28992
+ "aria-describedby",
28993
+ "aria-invalid"
28994
+ ];
29011
28995
  //#endregion
29012
28996
  //#region src/components/pin-input/PinInput.vue
29013
28997
  var PinInput_default = /* @__PURE__ */ defineComponent({
29014
28998
  name: "HnPinInput",
28999
+ inheritAttrs: false,
29015
29000
  __name: "PinInput",
29016
29001
  props: /*@__PURE__*/ mergeModels({
29017
29002
  length: { default: 6 },
@@ -29024,6 +29009,8 @@ var PinInput_default = /* @__PURE__ */ defineComponent({
29024
29009
  size: {},
29025
29010
  disabled: { type: Boolean },
29026
29011
  invalid: { type: Boolean },
29012
+ required: { type: Boolean },
29013
+ dir: {},
29027
29014
  class: {}
29028
29015
  }, {
29029
29016
  "modelValue": { default: "" },
@@ -29034,67 +29021,96 @@ var PinInput_default = /* @__PURE__ */ defineComponent({
29034
29021
  const props = __props;
29035
29022
  const emit = __emit;
29036
29023
  const model = useModel(__props, "modelValue");
29037
- const t = useUiLocale();
29038
- const { labelledBy, invalid, disabled, describedBy } = useFieldControl({
29024
+ const attrs = useAttrs();
29025
+ const dir = useDirection$1(toRef(props, "dir"));
29026
+ const { id, labelledBy, invalid, disabled, describedBy } = useFieldControl({
29039
29027
  invalid: () => props.invalid,
29040
29028
  disabled: () => props.disabled
29041
29029
  });
29042
- const cells = computed(() => Array.from({ length: props.length }, (_, i) => model.value[i] ?? ""));
29043
- function update(value) {
29044
- const next = (value ?? []).map((cell) => cell === void 0 ? "" : String(cell)).join("");
29045
- if (next !== model.value) model.value = next;
29046
- }
29030
+ const root = shallowRef(null);
29031
+ const input = shallowRef(null);
29032
+ const selection = shallowRef({
29033
+ focused: false,
29034
+ start: 0,
29035
+ end: 0
29036
+ });
29037
+ const shown = computed(() => pinInputValue(model.value ?? "", props.length));
29038
+ const cells = computed(() => pinCells(shown.value, props.length, selection.value));
29039
+ const rest = computed(() => {
29040
+ const { id: _id, autofocus: _autofocus, "aria-label": _label, "aria-labelledby": _labelledBy, "aria-describedby": _describedBy, ...other } = attrs;
29041
+ return other;
29042
+ });
29043
+ let controller;
29044
+ onMounted(() => {
29045
+ controller = createPinInput(input.value, {
29046
+ length: () => props.length,
29047
+ numeric: () => props.type === "number",
29048
+ value: () => model.value ?? "",
29049
+ rtl: () => dir.value === "rtl",
29050
+ cells: () => root.value.querySelectorAll("[data-hn-pin-cell]"),
29051
+ change: (value) => {
29052
+ model.value = value;
29053
+ },
29054
+ select: (value) => {
29055
+ selection.value = value;
29056
+ }
29057
+ });
29058
+ });
29059
+ onBeforeUnmount(() => controller?.dispose());
29060
+ watch([shown, () => props.type], () => controller?.sync(), { flush: "post" });
29061
+ watch(model, (value) => {
29062
+ if ((value ?? "").length >= props.length) emit("complete", pinInputValue(value, props.length));
29063
+ });
29047
29064
  return (_ctx, _cache) => {
29048
- return openBlock(), createBlock(unref(PinInputRoot), {
29049
- role: "group",
29050
- "aria-labelledby": unref(labelledBy),
29051
- "aria-describedby": unref(describedBy),
29052
- "model-value": cells.value,
29053
- type: props.type,
29054
- mask: props.mask,
29055
- otp: props.otp,
29056
- placeholder: props.placeholder,
29057
- name: props.name,
29058
- disabled: unref(disabled),
29065
+ return openBlock(), createElementBlock("div", mergeProps(rest.value, {
29066
+ ref_key: "root",
29067
+ ref: root,
29068
+ dir: unref(dir),
29059
29069
  "data-hn-pin-input": "",
29070
+ "data-hn-field-group": "",
29071
+ "data-complete": shown.value.length >= props.length ? "" : void 0,
29072
+ "data-disabled": unref(disabled) ? "" : void 0,
29060
29073
  "data-invalid": unref(invalid) ? "" : void 0,
29061
- class: normalizeClass(unref(cn)(unref(pinInput)(), props.class)),
29062
- "onUpdate:modelValue": update,
29063
- onComplete: _cache[0] || (_cache[0] = (value) => emit("complete", value.map(String).join("")))
29064
- }, {
29065
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(props.length, (index) => {
29066
- return openBlock(), createBlock(unref(PinInputInput), {
29067
- key: index,
29068
- index: index - 1,
29069
- "aria-label": unref(t).pinInput.cellLabel(index, props.length),
29070
- "aria-invalid": unref(invalid) || void 0,
29071
- "data-invalid": unref(invalid) ? "" : void 0,
29072
- class: normalizeClass(unref(pinInputCell)({
29073
- variant: props.variant,
29074
- size: props.size
29075
- }))
29076
- }, null, 8, [
29077
- "index",
29078
- "aria-label",
29079
- "aria-invalid",
29080
- "data-invalid",
29081
- "class"
29082
- ]);
29083
- }), 128))]),
29084
- _: 1
29085
- }, 8, [
29086
- "aria-labelledby",
29087
- "aria-describedby",
29088
- "model-value",
29089
- "type",
29090
- "mask",
29091
- "otp",
29092
- "placeholder",
29093
- "name",
29094
- "disabled",
29095
- "data-invalid",
29096
- "class"
29097
- ]);
29074
+ class: unref(cn)(unref(pinInput)({ size: props.size }), props.class)
29075
+ }), [(openBlock(true), createElementBlock(Fragment, null, renderList(cells.value, (cell, index) => {
29076
+ return openBlock(), createElementBlock("div", {
29077
+ key: index,
29078
+ "data-hn-pin-cell": "",
29079
+ "aria-hidden": "true",
29080
+ "data-filled": cell.char ? "" : void 0,
29081
+ "data-state": cell.active ? "active" : void 0,
29082
+ "data-disabled": unref(disabled) ? "" : void 0,
29083
+ "data-invalid": unref(invalid) ? "" : void 0,
29084
+ class: normalizeClass(unref(pinInputCell)({
29085
+ variant: props.variant,
29086
+ size: props.size
29087
+ }))
29088
+ }, [cell.caret ? (openBlock(), createElementBlock("span", {
29089
+ key: 0,
29090
+ class: normalizeClass(unref(pinInputCaret)())
29091
+ }, null, 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(cell.char ? props.mask ? "•" : cell.char : props.placeholder), 1)], 64))], 10, _hoisted_2$32);
29092
+ }), 128)), createElementVNode("input", {
29093
+ id: unref(id),
29094
+ ref_key: "input",
29095
+ ref: input,
29096
+ type: props.mask ? "password" : "text",
29097
+ name: props.name,
29098
+ "^value": shown.value,
29099
+ inputmode: props.type === "number" ? "numeric" : "text",
29100
+ pattern: props.type === "number" ? "[0-9]*" : void 0,
29101
+ autocomplete: props.otp ? "one-time-code" : "off",
29102
+ autocapitalize: "none",
29103
+ autocorrect: "off",
29104
+ spellcheck: "false",
29105
+ autofocus: unref(attrs).autofocus || void 0,
29106
+ disabled: unref(disabled),
29107
+ required: props.required || void 0,
29108
+ "aria-label": unref(attrs)["aria-label"],
29109
+ "aria-labelledby": unref(labelledBy),
29110
+ "aria-describedby": unref(describedBy),
29111
+ "aria-invalid": unref(invalid) || void 0,
29112
+ class: normalizeClass(unref(pinInputNative)())
29113
+ }, null, 10, _hoisted_3$20)], 16, _hoisted_1$47);
29098
29114
  };
29099
29115
  }
29100
29116
  });
@@ -32347,6 +32363,44 @@ var AccordionHeader = defineComponent({
32347
32363
  }
32348
32364
  });
32349
32365
  //#endregion
32366
+ //#region ../shared/src/primitives/arrow-navigation/index.ts
32367
+ var IGNORED = ["INPUT", "TEXTAREA"];
32368
+ function arrowNavigation(event, currentElement, parentElement, options = {}) {
32369
+ if (!currentElement || options.enableIgnoredElement && IGNORED.includes(currentElement.nodeName)) return null;
32370
+ const { arrowKeyOptions = "both", attributeName = `[${COLLECTION_ITEM}]`, itemsArray = [], loop = true, dir = "ltr", preventScroll = true, focus = false } = options;
32371
+ const right = event.key === "ArrowRight";
32372
+ const left = event.key === "ArrowLeft";
32373
+ const up = event.key === "ArrowUp";
32374
+ const down = event.key === "ArrowDown";
32375
+ const home = event.key === "Home";
32376
+ const end = event.key === "End";
32377
+ const goingVertical = up || down;
32378
+ const goingHorizontal = right || left;
32379
+ if (!home && !end && (!goingVertical && !goingHorizontal || arrowKeyOptions === "vertical" && goingHorizontal || arrowKeyOptions === "horizontal" && goingVertical)) return null;
32380
+ const items = parentElement ? Array.from(parentElement.querySelectorAll(attributeName)) : itemsArray;
32381
+ if (!items.length) return null;
32382
+ if (preventScroll) event.preventDefault();
32383
+ let item = null;
32384
+ if (goingHorizontal || goingVertical) item = findNextFocusableElement(items, currentElement, {
32385
+ goForward: goingVertical ? down : dir === "ltr" ? right : left,
32386
+ loop
32387
+ });
32388
+ else if (home) item = items.at(0) || null;
32389
+ else if (end) item = items.at(-1) || null;
32390
+ if (focus) item?.focus();
32391
+ return item;
32392
+ }
32393
+ function findNextFocusableElement(elements, currentElement, options, iterations = elements.includes(currentElement) ? elements.length : elements.length + 1) {
32394
+ if (--iterations === 0) return null;
32395
+ const index = elements.indexOf(currentElement);
32396
+ const newIndex = index === -1 ? options.goForward ? 0 : elements.length - 1 : options.goForward ? index + 1 : index - 1;
32397
+ if (!options.loop && (newIndex < 0 || newIndex >= elements.length)) return null;
32398
+ const candidate = elements[(newIndex + elements.length) % elements.length];
32399
+ if (!candidate) return null;
32400
+ if (candidate.hasAttribute("disabled") && candidate.getAttribute("disabled") !== "false") return findNextFocusableElement(elements, candidate, options, iterations);
32401
+ return candidate;
32402
+ }
32403
+ //#endregion
32350
32404
  //#region ../shared/src/primitives/accordion/index.ts
32351
32405
  function isAccordionItemOpen(isSingle, modelValue, value) {
32352
32406
  return isSingle ? value === modelValue : Array.isArray(modelValue) && modelValue.includes(value);
@@ -35680,20 +35734,19 @@ function lineClampCount(lines) {
35680
35734
  if (lines === void 0 || !Number.isFinite(lines)) return 3;
35681
35735
  return Math.max(1, Math.floor(lines));
35682
35736
  }
35683
- function measureHeights(content) {
35684
- content.setAttribute("data-measuring", "");
35685
- const collapsed = content.clientHeight;
35686
- const full = content.scrollHeight;
35687
- content.removeAttribute("data-measuring");
35688
- return {
35689
- collapsed,
35690
- full
35737
+ function measure(content, layout) {
35738
+ content.setAttribute("data-measuring", layout);
35739
+ const size = {
35740
+ height: content.clientHeight,
35741
+ overflow: content.scrollHeight
35691
35742
  };
35743
+ content.removeAttribute("data-measuring");
35744
+ return size;
35692
35745
  }
35693
35746
  function measureLineClamp(content) {
35694
35747
  if (content.hasAttribute("data-animating")) return null;
35695
- const { collapsed, full } = measureHeights(content);
35696
- return full - collapsed > 1;
35748
+ const { height, overflow } = measure(content, "clamped");
35749
+ return overflow - height > 1;
35697
35750
  }
35698
35751
  function toMs(value) {
35699
35752
  const amount = Number.parseFloat(value);
@@ -35706,7 +35759,8 @@ function animateLineClamp(content, expanded, done) {
35706
35759
  const current = running ? content.getBoundingClientRect().height : void 0;
35707
35760
  const fade = running ? getComputedStyle(content).getPropertyValue(FADE) : "";
35708
35761
  content.style.transition = "none";
35709
- const { collapsed, full } = measureHeights(content);
35762
+ const collapsed = measure(content, "clamped").height;
35763
+ const full = measure(content, "full").height;
35710
35764
  const from = current ?? (expanded ? collapsed : full);
35711
35765
  const to = expanded ? full : collapsed;
35712
35766
  content.toggleAttribute("data-expanded", !expanded);