@mantine-vue/core 3.2.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/cjs/index.cjs +626 -200
  2. package/cjs/index.cjs.map +1 -1
  3. package/esm/index.mjs +651 -230
  4. package/esm/index.mjs.map +1 -1
  5. package/lib/components/ActionBar/ActionBar.context.d.ts +6 -0
  6. package/lib/components/ActionBar/ActionBar.d.ts +15 -0
  7. package/lib/components/ActionBar/ActionBar.types.d.ts +59 -0
  8. package/lib/components/ActionBar/ActionBar.vue.d.ts +35 -0
  9. package/lib/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.d.ts +6 -0
  10. package/lib/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.types.d.ts +3 -0
  11. package/lib/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.vue.d.ts +6 -0
  12. package/lib/components/ActionBar/ActionBarDivider/ActionBarDivider.d.ts +2 -0
  13. package/lib/components/ActionBar/ActionBarDivider/ActionBarDivider.types.d.ts +3 -0
  14. package/lib/components/ActionBar/ActionBarDivider/ActionBarDivider.vue.d.ts +3 -0
  15. package/lib/components/ActionBar/index.d.ts +3 -0
  16. package/lib/components/Autocomplete/Autocomplete.d.ts +2 -2
  17. package/lib/components/Cascader/Cascader.d.ts +2 -2
  18. package/lib/components/Cascader/Cascader.types.d.ts +6 -0
  19. package/lib/components/Checkbox/CheckboxCard/CheckboxCard.types.d.ts +4 -0
  20. package/lib/components/ColorInput/ColorInput.d.ts +2 -2
  21. package/lib/components/ColorInput/ColorInput.types.d.ts +2 -0
  22. package/lib/components/Combobox/data-utils.d.ts +4 -0
  23. package/lib/components/Combobox/index.d.ts +1 -1
  24. package/lib/components/MultiSelect/MultiSelect.d.ts +2 -2
  25. package/lib/components/Notification/Notification.types.d.ts +2 -1
  26. package/lib/components/NumberInput/number-input-utils.d.ts +2 -0
  27. package/lib/components/PasswordInput/PasswordInput.types.d.ts +2 -0
  28. package/lib/components/PasswordInput/PasswordInput.vue.d.ts +1 -0
  29. package/lib/components/RollingNumber/RollingNumber.types.d.ts +1 -1
  30. package/lib/components/Select/Select.d.ts +2 -2
  31. package/lib/components/Stepper/Stepper.context.d.ts +1 -0
  32. package/lib/components/Stepper/Stepper.types.d.ts +7 -0
  33. package/lib/components/Stepper/Stepper.vue.d.ts +1 -0
  34. package/lib/components/TagsInput/TagsInput.d.ts +2 -2
  35. package/lib/components/Tooltip/Tooltip.types.d.ts +2 -0
  36. package/lib/components/TreeSelect/TreeSelect.d.ts +2 -2
  37. package/lib/components/index.d.ts +1 -0
  38. package/package.json +3 -3
  39. package/styles.css +207 -94
  40. package/styles.layer.css +207 -94
package/cjs/index.cjs CHANGED
@@ -1738,7 +1738,7 @@ function hashStyleProps(styles, media) {
1738
1738
  return `mantine-vue-${Math.abs(hash).toString(36)}`;
1739
1739
  }
1740
1740
  function useRandomClassName() {
1741
- return `mantine-vue-${Math.random().toString(36).slice(2, 9)}`;
1741
+ return `mantine-vue-${((0, vue.getCurrentInstance)() ? (0, vue.useId)() : Math.random().toString(36).slice(2, 9)).replace(/[^A-Za-z0-9_-]/g, "-")}`;
1742
1742
  }
1743
1743
  //#endregion
1744
1744
  //#region src/core/Box/style-props/style-props-data.ts
@@ -2616,7 +2616,7 @@ var Overlay_module_default = { root: "_root_qjtu2_1" };
2616
2616
  //#endregion
2617
2617
  //#region src/components/Overlay/Overlay.vue?vue&type=script&setup=true&lang.ts
2618
2618
  /** Module scope: created once, not per component instance. */
2619
- var defaultProps$71 = { zIndex: getDefaultZIndex("modal") };
2619
+ var defaultProps$72 = { zIndex: getDefaultZIndex("modal") };
2620
2620
  var varsResolver$93 = createVarsResolver((_, { gradient, color, backgroundOpacity, blur, radius, zIndex }) => ({ root: {
2621
2621
  "--overlay-bg": gradient || (color !== void 0 || backgroundOpacity !== void 0) && rgba(color || "#000", backgroundOpacity ?? .6) || void 0,
2622
2622
  "--overlay-filter": blur ? `blur(${rem(blur)})` : void 0,
@@ -2660,7 +2660,7 @@ var Overlay = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
2660
2660
  setup(__props, { expose: __expose }) {
2661
2661
  const rawProps = __props;
2662
2662
  const attrs = (0, vue.useAttrs)();
2663
- const props = useProps("Overlay", defaultProps$71, rawProps);
2663
+ const props = useProps("Overlay", defaultProps$72, rawProps);
2664
2664
  const getStyles = useStyles({
2665
2665
  name: "Overlay",
2666
2666
  classes: Overlay_module_default,
@@ -2919,7 +2919,7 @@ var Container_module_default = { root: "_root_1nxsn_1" };
2919
2919
  //#endregion
2920
2920
  //#region src/components/Container/Container.vue?vue&type=script&setup=true&lang.ts
2921
2921
  /** Module scope: created once, not per component instance. */
2922
- var defaultProps$70 = { strategy: "block" };
2922
+ var defaultProps$71 = { strategy: "block" };
2923
2923
  var varsResolver$91 = createVarsResolver((_, { size, fluid }) => ({ root: { "--container-size": fluid ? void 0 : getSize(size, "container-size") } }));
2924
2924
  //#endregion
2925
2925
  //#region src/components/Container/Container.ts
@@ -2949,7 +2949,7 @@ var Container = factory(/* @__PURE__ */ (0, vue.defineComponent)({
2949
2949
  setup(__props, { expose: __expose }) {
2950
2950
  const rawProps = __props;
2951
2951
  const attrs = (0, vue.useAttrs)();
2952
- const props = useProps("Container", defaultProps$70, rawProps);
2952
+ const props = useProps("Container", defaultProps$71, rawProps);
2953
2953
  const getStyles = useStyles({
2954
2954
  name: "Container",
2955
2955
  classes: Container_module_default,
@@ -3052,7 +3052,7 @@ var Divider_module_default = {
3052
3052
  };
3053
3053
  //#endregion
3054
3054
  //#region src/components/Divider/Divider.vue?vue&type=script&setup=true&lang.ts
3055
- var defaultProps$69 = {
3055
+ var defaultProps$70 = {
3056
3056
  orientation: "horizontal",
3057
3057
  labelPosition: "center",
3058
3058
  variant: "solid"
@@ -3099,7 +3099,7 @@ var Divider = factory(/* @__PURE__ */ (0, vue.defineComponent)({
3099
3099
  const rawProps = __props;
3100
3100
  const attrs = (0, vue.useAttrs)();
3101
3101
  const slots = (0, vue.useSlots)();
3102
- const props = useProps("Divider", defaultProps$69, rawProps);
3102
+ const props = useProps("Divider", defaultProps$70, rawProps);
3103
3103
  const getStyles = useStyles({
3104
3104
  name: "Divider",
3105
3105
  classes: Divider_module_default,
@@ -3157,7 +3157,7 @@ var varsResolver$88 = createVarsResolver((theme, { variant, lineClamp, gradient,
3157
3157
  "--text-line-clamp": typeof lineClamp === "number" ? lineClamp.toString() : void 0,
3158
3158
  "--text-text-wrap": textWrap
3159
3159
  } }));
3160
- var defaultProps$68 = { inherit: false };
3160
+ var defaultProps$69 = { inherit: false };
3161
3161
  //#endregion
3162
3162
  //#region src/components/Text/Text.ts
3163
3163
  var Text = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -3204,7 +3204,7 @@ var Text = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
3204
3204
  setup(__props, { expose: __expose }) {
3205
3205
  const rawProps = __props;
3206
3206
  const attrs = (0, vue.useAttrs)();
3207
- const props = useProps("Text", defaultProps$68, rawProps);
3207
+ const props = useProps("Text", defaultProps$69, rawProps);
3208
3208
  const getStyles = useStyles({
3209
3209
  name: props.__staticSelector ?? "Text",
3210
3210
  classes: Text_module_default,
@@ -3259,7 +3259,7 @@ var Text = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
3259
3259
  var Anchor_module_default = { root: "_root_mirc9_1" };
3260
3260
  //#endregion
3261
3261
  //#region src/components/Anchor/Anchor.vue?vue&type=script&setup=true&lang.ts
3262
- var defaultProps$67 = { underline: "hover" };
3262
+ var defaultProps$68 = { underline: "hover" };
3263
3263
  //#endregion
3264
3264
  //#region src/components/Anchor/Anchor.ts
3265
3265
  var Anchor = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -3285,7 +3285,7 @@ var Anchor = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
3285
3285
  setup(__props, { expose: __expose }) {
3286
3286
  const rawProps = __props;
3287
3287
  const attrs = (0, vue.useAttrs)();
3288
- const props = useProps("Anchor", defaultProps$67, rawProps);
3288
+ const props = useProps("Anchor", defaultProps$68, rawProps);
3289
3289
  const rootElement = (0, vue.ref)(null);
3290
3290
  const setRootRef = (node) => {
3291
3291
  rootElement.value = node;
@@ -3354,7 +3354,7 @@ function getTitleSize(order, size) {
3354
3354
  }
3355
3355
  //#endregion
3356
3356
  //#region src/components/Title/Title.vue?vue&type=script&setup=true&lang.ts
3357
- var defaultProps$66 = { order: 1 };
3357
+ var defaultProps$67 = { order: 1 };
3358
3358
  var varsResolver$87 = createVarsResolver((_, { order, size, lineClamp, textWrap }) => {
3359
3359
  const values = getTitleSize(order || 1, size);
3360
3360
  return { root: {
@@ -3388,7 +3388,7 @@ var Title = factory(/* @__PURE__ */ (0, vue.defineComponent)({
3388
3388
  setup(__props, { expose: __expose }) {
3389
3389
  const rawProps = __props;
3390
3390
  const attrs = (0, vue.useAttrs)();
3391
- const props = useProps("Title", defaultProps$66, rawProps);
3391
+ const props = useProps("Title", defaultProps$67, rawProps);
3392
3392
  const order = (0, vue.computed)(() => props.order ?? 1);
3393
3393
  const validOrder = (0, vue.computed)(() => [
3394
3394
  1,
@@ -3575,7 +3575,7 @@ function getMarkColor({ color, theme, defaultShade }) {
3575
3575
  }
3576
3576
  //#endregion
3577
3577
  //#region src/components/Mark/Mark.vue?vue&type=script&setup=true&lang.ts
3578
- var defaultProps$65 = { color: "yellow" };
3578
+ var defaultProps$66 = { color: "yellow" };
3579
3579
  /** Module scope: created once, not per component instance. */
3580
3580
  var varsResolver$84 = createVarsResolver((theme, { color }) => ({ root: {
3581
3581
  "--mark-bg-dark": getMarkColor({
@@ -3609,7 +3609,7 @@ var Mark = factory(/* @__PURE__ */ (0, vue.defineComponent)({
3609
3609
  setup(__props, { expose: __expose }) {
3610
3610
  const rawProps = __props;
3611
3611
  const attrs = (0, vue.useAttrs)();
3612
- const props = useProps("Mark", defaultProps$65, rawProps);
3612
+ const props = useProps("Mark", defaultProps$66, rawProps);
3613
3613
  const getStyles = useStyles({
3614
3614
  name: "Mark",
3615
3615
  classes: Mark_module_default,
@@ -3790,7 +3790,7 @@ var Skeleton_module_default = {
3790
3790
  //#endregion
3791
3791
  //#region src/components/Skeleton/Skeleton.vue?vue&type=script&setup=true&lang.ts
3792
3792
  /** Module scope: created once, not per component instance. */
3793
- var defaultProps$64 = {
3793
+ var defaultProps$65 = {
3794
3794
  visible: true,
3795
3795
  animate: true
3796
3796
  };
@@ -3836,7 +3836,7 @@ var Skeleton = factory(/* @__PURE__ */ (0, vue.defineComponent)({
3836
3836
  setup(__props, { expose: __expose }) {
3837
3837
  const rawProps = __props;
3838
3838
  const attrs = (0, vue.useAttrs)();
3839
- const props = useProps("Skeleton", defaultProps$64, rawProps);
3839
+ const props = useProps("Skeleton", defaultProps$65, rawProps);
3840
3840
  const getStyles = useStyles({
3841
3841
  name: "Skeleton",
3842
3842
  classes: Skeleton_module_default,
@@ -3885,7 +3885,7 @@ var varsResolver$80 = createVarsResolver((_, { radius, size }) => ({ root: {
3885
3885
  "--cs-radius": radius === void 0 ? void 0 : getRadius(radius),
3886
3886
  "--cs-size": rem(size)
3887
3887
  } }));
3888
- var defaultProps$63 = { withShadow: true };
3888
+ var defaultProps$64 = { withShadow: true };
3889
3889
  //#endregion
3890
3890
  //#region src/components/ColorSwatch/ColorSwatch.ts
3891
3891
  var ColorSwatch = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -3915,7 +3915,7 @@ var ColorSwatch = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
3915
3915
  setup(__props, { expose: __expose }) {
3916
3916
  const rawProps = __props;
3917
3917
  const attrs = (0, vue.useAttrs)();
3918
- const props = useProps("ColorSwatch", defaultProps$63, rawProps);
3918
+ const props = useProps("ColorSwatch", defaultProps$64, rawProps);
3919
3919
  const getStyles = useStyles({
3920
3920
  name: "ColorSwatch",
3921
3921
  props,
@@ -3969,7 +3969,7 @@ var _hoisted_2$7 = [
3969
3969
  "aria-label"
3970
3970
  ];
3971
3971
  var _hoisted_3$2 = ["name", "value"];
3972
- var defaultProps$62 = {
3972
+ var defaultProps$63 = {
3973
3973
  step: 1,
3974
3974
  withLabel: true
3975
3975
  };
@@ -4025,7 +4025,7 @@ var AngleSlider = factory(/* @__PURE__ */ (0, vue.defineComponent)({
4025
4025
  const props_ = __props;
4026
4026
  const emit = __emit;
4027
4027
  const attrs = (0, vue.useAttrs)();
4028
- const props = useProps("AngleSlider", defaultProps$62, props_);
4028
+ const props = useProps("AngleSlider", defaultProps$63, props_);
4029
4029
  const rootRef = (0, vue.ref)(null);
4030
4030
  const [value, setValue] = (0, _mantine_vue_hooks.useUncontrolled)({
4031
4031
  value: () => props.modelValue,
@@ -4075,7 +4075,7 @@ var AngleSlider = factory(/* @__PURE__ */ (0, vue.defineComponent)({
4075
4075
  }
4076
4076
  function handleKeyDown(event) {
4077
4077
  if (props.disabled) return;
4078
- const step = props.step ?? defaultProps$62.step;
4078
+ const step = props.step ?? defaultProps$63.step;
4079
4079
  let nextValue = value.value;
4080
4080
  if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
4081
4081
  event.preventDefault();
@@ -4763,7 +4763,7 @@ var ActionIcon_module_default = {
4763
4763
  };
4764
4764
  //#endregion
4765
4765
  //#region src/components/ActionIcon/ActionIconGroup/ActionIconGroup.vue?vue&type=script&setup=true&lang.ts
4766
- var defaultProps$61 = { orientation: "horizontal" };
4766
+ var defaultProps$62 = { orientation: "horizontal" };
4767
4767
  var varsResolver$76 = createVarsResolver((_, { borderWidth }) => ({ group: { "--ai-border-width": rem(borderWidth) } }));
4768
4768
  //#endregion
4769
4769
  //#region src/components/ActionIcon/ActionIconGroup/ActionIconGroup.ts
@@ -4786,7 +4786,7 @@ var ActionIconGroup = factory(/* @__PURE__ */ (0, vue.defineComponent)({
4786
4786
  setup(__props, { expose: __expose }) {
4787
4787
  const rawProps = __props;
4788
4788
  const attrs = (0, vue.useAttrs)();
4789
- const props = useProps("ActionIconGroup", defaultProps$61, rawProps);
4789
+ const props = useProps("ActionIconGroup", defaultProps$62, rawProps);
4790
4790
  const getStyles = useStyles({
4791
4791
  name: "ActionIconGroup",
4792
4792
  props,
@@ -5066,7 +5066,7 @@ var CloseIcon_default = /* @__PURE__ */ (0, vue.defineComponent)({
5066
5066
  var CloseButton_module_default = { root: "_root_uv1i7_1" };
5067
5067
  //#endregion
5068
5068
  //#region src/components/CloseButton/CloseButton.vue?vue&type=script&setup=true&lang.ts
5069
- var defaultProps$60 = { variant: "subtle" };
5069
+ var defaultProps$61 = { variant: "subtle" };
5070
5070
  var varsResolver$73 = createVarsResolver((_, { size, radius, iconSize }) => ({ root: {
5071
5071
  "--cb-size": getSize(size, "cb-size"),
5072
5072
  "--cb-radius": radius === void 0 ? void 0 : getRadius(radius),
@@ -5107,7 +5107,7 @@ var CloseButton = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
5107
5107
  const rawProps = __props;
5108
5108
  const attrs = (0, vue.useAttrs)();
5109
5109
  const slots = (0, vue.useSlots)();
5110
- const props = useProps("CloseButton", defaultProps$60, rawProps);
5110
+ const props = useProps("CloseButton", defaultProps$61, rawProps);
5111
5111
  const getStyles = useStyles({
5112
5112
  name: props.__staticSelector || "CloseButton",
5113
5113
  props,
@@ -5399,7 +5399,7 @@ var Button_default = /* @__PURE__ */ (0, vue.defineComponent)({
5399
5399
  });
5400
5400
  //#endregion
5401
5401
  //#region src/components/Button/ButtonGroup/ButtonGroup.vue?vue&type=script&setup=true&lang.ts
5402
- var defaultProps$59 = { orientation: "horizontal" };
5402
+ var defaultProps$60 = { orientation: "horizontal" };
5403
5403
  var varsResolver$71 = createVarsResolver((_, { borderWidth }) => ({ group: { "--button-border-width": rem(borderWidth) } }));
5404
5404
  //#endregion
5405
5405
  //#region src/components/Button/ButtonGroup/ButtonGroup.ts
@@ -5422,7 +5422,7 @@ var ButtonGroup = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5422
5422
  setup(__props, { expose: __expose }) {
5423
5423
  const rawProps = __props;
5424
5424
  const attrs = (0, vue.useAttrs)();
5425
- const props = useProps("ButtonGroup", defaultProps$59, rawProps);
5425
+ const props = useProps("ButtonGroup", defaultProps$60, rawProps);
5426
5426
  const getStyles = useStyles({
5427
5427
  name: "ButtonGroup",
5428
5428
  props,
@@ -5631,7 +5631,7 @@ var Burger = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5631
5631
  });
5632
5632
  //#endregion
5633
5633
  //#region src/components/Collapse/Collapse.vue?vue&type=script&setup=true&lang.ts
5634
- var defaultProps$58 = {
5634
+ var defaultProps$59 = {
5635
5635
  transitionDuration: 200,
5636
5636
  transitionTimingFunction: "ease",
5637
5637
  animateOpacity: true,
@@ -5670,11 +5670,11 @@ var Collapse = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5670
5670
  const env = useMantineEnv();
5671
5671
  const theme = useMantineTheme();
5672
5672
  const shouldReduceMotion = (0, _mantine_vue_hooks.useReducedMotion)(false, { getInitialValueInEffect: false });
5673
- const transitionDuration = (0, vue.computed)(() => props.transitionDuration ?? defaultProps$58.transitionDuration);
5674
- const transitionTimingFunction = (0, vue.computed)(() => props.transitionTimingFunction ?? defaultProps$58.transitionTimingFunction);
5675
- const animateOpacity = (0, vue.computed)(() => props.animateOpacity ?? defaultProps$58.animateOpacity);
5676
- const orientation = (0, vue.computed)(() => props.orientation ?? defaultProps$58.orientation);
5677
- const keepMounted = (0, vue.computed)(() => props.keepMounted ?? defaultProps$58.keepMounted);
5673
+ const transitionDuration = (0, vue.computed)(() => props.transitionDuration ?? defaultProps$59.transitionDuration);
5674
+ const transitionTimingFunction = (0, vue.computed)(() => props.transitionTimingFunction ?? defaultProps$59.transitionTimingFunction);
5675
+ const animateOpacity = (0, vue.computed)(() => props.animateOpacity ?? defaultProps$59.animateOpacity);
5676
+ const orientation = (0, vue.computed)(() => props.orientation ?? defaultProps$59.orientation);
5677
+ const keepMounted = (0, vue.computed)(() => props.keepMounted ?? defaultProps$59.keepMounted);
5678
5678
  const duration = (0, vue.computed)(() => theme.value.respectReducedMotion && shouldReduceMotion.value ? 0 : transitionDuration.value);
5679
5679
  const collapseInput = {
5680
5680
  expanded: () => props.expanded,
@@ -5726,7 +5726,7 @@ var Collapse = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5726
5726
  }));
5727
5727
  //#endregion
5728
5728
  //#region src/components/CopyButton/CopyButton.vue?vue&type=script&setup=true&lang.ts
5729
- var defaultProps$57 = { timeout: 1e3 };
5729
+ var defaultProps$58 = { timeout: 1e3 };
5730
5730
  //#endregion
5731
5731
  //#region src/components/CopyButton/CopyButton.vue
5732
5732
  var CopyButton_default = /* @__PURE__ */ (0, vue.defineComponent)({
@@ -5740,7 +5740,7 @@ var CopyButton_default = /* @__PURE__ */ (0, vue.defineComponent)({
5740
5740
  setup(__props) {
5741
5741
  const rawProps = __props;
5742
5742
  const attrs = (0, vue.useAttrs)();
5743
- const props = useProps("CopyButton", defaultProps$57, rawProps);
5743
+ const props = useProps("CopyButton", defaultProps$58, rawProps);
5744
5744
  const clipboard = (0, _mantine_vue_hooks.useClipboard)({ timeout: props.timeout });
5745
5745
  const copy = () => clipboard.copy(props.value);
5746
5746
  return (_ctx, _cache) => {
@@ -5759,7 +5759,7 @@ var LoadingOverlay_module_default = {
5759
5759
  };
5760
5760
  //#endregion
5761
5761
  //#region src/components/LoadingOverlay/LoadingOverlay.vue?vue&type=script&setup=true&lang.ts
5762
- var defaultProps$56 = {
5762
+ var defaultProps$57 = {
5763
5763
  transitionProps: {
5764
5764
  transition: "fade",
5765
5765
  duration: 0
@@ -5802,7 +5802,7 @@ var LoadingOverlay = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5802
5802
  const rawProps = __props;
5803
5803
  const emit = __emit;
5804
5804
  const attrs = (0, vue.useAttrs)();
5805
- const props = useProps("LoadingOverlay", defaultProps$56, rawProps);
5805
+ const props = useProps("LoadingOverlay", defaultProps$57, rawProps);
5806
5806
  const theme = useMantineTheme();
5807
5807
  const getStyles = useStyles({
5808
5808
  name: "LoadingOverlay",
@@ -5817,11 +5817,11 @@ var LoadingOverlay = factory(/* @__PURE__ */ (0, vue.defineComponent)({
5817
5817
  unstyled: props.unstyled
5818
5818
  });
5819
5819
  const overlayProps = (0, vue.computed)(() => ({
5820
- ...defaultProps$56.overlayProps,
5820
+ ...defaultProps$57.overlayProps,
5821
5821
  ...props.overlayProps
5822
5822
  }));
5823
5823
  const transitionProps = (0, vue.computed)(() => ({
5824
- ...defaultProps$56.transitionProps,
5824
+ ...defaultProps$57.transitionProps,
5825
5825
  ...props.transitionProps
5826
5826
  }));
5827
5827
  const rootElement = (0, vue.ref)(null);
@@ -5947,7 +5947,7 @@ var CardSection = polymorphicFactory(CardSection_default, { classes: Card_module
5947
5947
  //#endregion
5948
5948
  //#region src/components/Card/Card.vue?vue&type=script&setup=true&lang.ts
5949
5949
  var varsResolver$67 = createVarsResolver((_, { padding }) => ({ root: { "--card-padding": getSpacing(padding) } }));
5950
- var defaultProps$55 = { orientation: "vertical" };
5950
+ var defaultProps$56 = { orientation: "vertical" };
5951
5951
  //#endregion
5952
5952
  //#region src/components/Card/Card.ts
5953
5953
  var Card = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -5980,7 +5980,7 @@ var Card = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
5980
5980
  const rawProps = __props;
5981
5981
  const attrs = (0, vue.useAttrs)();
5982
5982
  const slots = (0, vue.useSlots)();
5983
- const props = useProps("Card", defaultProps$55, rawProps);
5983
+ const props = useProps("Card", defaultProps$56, rawProps);
5984
5984
  const getStyles = useStyles({
5985
5985
  name: "Card",
5986
5986
  props,
@@ -6195,7 +6195,7 @@ var Blockquote_module_default = {
6195
6195
  };
6196
6196
  //#endregion
6197
6197
  //#region src/components/Blockquote/Blockquote.vue?vue&type=script&setup=true&lang.ts
6198
- var defaultProps$54 = { iconSize: 48 };
6198
+ var defaultProps$55 = { iconSize: 48 };
6199
6199
  var varsResolver$65 = createVarsResolver((theme, { color, iconSize, radius, textWrap }) => {
6200
6200
  const darkParsed = parseThemeColor({
6201
6201
  color: color || theme.primaryColor,
@@ -6263,7 +6263,7 @@ var Blockquote = factory(/* @__PURE__ */ (0, vue.defineComponent)({
6263
6263
  const rawProps = __props;
6264
6264
  const attrs = (0, vue.useAttrs)();
6265
6265
  const slots = (0, vue.useSlots)();
6266
- const props = useProps("Blockquote", defaultProps$54, rawProps);
6266
+ const props = useProps("Blockquote", defaultProps$55, rawProps);
6267
6267
  const getStyles = useStyles({
6268
6268
  name: "Blockquote",
6269
6269
  props,
@@ -6309,7 +6309,7 @@ var Breadcrumbs_module_default = {
6309
6309
  //#endregion
6310
6310
  //#region src/components/Breadcrumbs/Breadcrumbs.vue?vue&type=script&setup=true&lang.ts
6311
6311
  var varsResolver$64 = createVarsResolver((_, { separatorMargin }) => ({ root: { "--bc-separator-margin": getSpacing(separatorMargin) } }));
6312
- var defaultProps$53 = { separator: "/" };
6312
+ var defaultProps$54 = { separator: "/" };
6313
6313
  //#endregion
6314
6314
  //#region src/components/Breadcrumbs/Breadcrumbs.ts
6315
6315
  var Breadcrumbs = factory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -6343,7 +6343,7 @@ var Breadcrumbs = factory(/* @__PURE__ */ (0, vue.defineComponent)({
6343
6343
  const rawProps = __props;
6344
6344
  const attrs = (0, vue.useAttrs)();
6345
6345
  const slots = (0, vue.useSlots)();
6346
- const props = useProps("Breadcrumbs", defaultProps$53, rawProps);
6346
+ const props = useProps("Breadcrumbs", defaultProps$54, rawProps);
6347
6347
  const getStyles = useStyles({
6348
6348
  name: "Breadcrumbs",
6349
6349
  props,
@@ -6481,7 +6481,7 @@ var varsResolver$63 = createVarsResolver((_, { size, spacing }) => ({ root: {
6481
6481
  "--list-lh": getLineHeight(size),
6482
6482
  "--list-spacing": getSpacing(spacing)
6483
6483
  } }));
6484
- var defaultProps$52 = { type: "unordered" };
6484
+ var defaultProps$53 = { type: "unordered" };
6485
6485
  //#endregion
6486
6486
  //#region src/components/List/List.ts
6487
6487
  var List = factory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -6535,7 +6535,7 @@ var List = factory(/* @__PURE__ */ (0, vue.defineComponent)({
6535
6535
  const rawProps = __props;
6536
6536
  const attrs = (0, vue.useAttrs)();
6537
6537
  const slots = (0, vue.useSlots)();
6538
- const props = useProps("List", defaultProps$52, rawProps);
6538
+ const props = useProps("List", defaultProps$53, rawProps);
6539
6539
  const getStyles = useStyles({
6540
6540
  name: "List",
6541
6541
  props,
@@ -6640,7 +6640,7 @@ function getPositionVariables(position = "top-end", offset = 0) {
6640
6640
  }
6641
6641
  //#endregion
6642
6642
  //#region src/components/Indicator/Indicator.vue?vue&type=script&setup=true&lang.ts
6643
- var defaultProps$51 = {
6643
+ var defaultProps$52 = {
6644
6644
  position: "top-end",
6645
6645
  offset: 0,
6646
6646
  showZero: true,
@@ -6710,7 +6710,7 @@ var Indicator = factory(/* @__PURE__ */ (0, vue.defineComponent)({
6710
6710
  const rawProps = __props;
6711
6711
  const attrs = (0, vue.useAttrs)();
6712
6712
  const slots = (0, vue.useSlots)();
6713
- const props = useProps("Indicator", defaultProps$51, rawProps);
6713
+ const props = useProps("Indicator", defaultProps$52, rawProps);
6714
6714
  const getStyles = useStyles({
6715
6715
  name: "Indicator",
6716
6716
  props,
@@ -7132,7 +7132,7 @@ var SimpleGrid_module_default = {
7132
7132
  };
7133
7133
  //#endregion
7134
7134
  //#region src/components/SimpleGrid/SimpleGrid.vue?vue&type=script&setup=true&lang.ts
7135
- var defaultProps$50 = {
7135
+ var defaultProps$51 = {
7136
7136
  cols: 1,
7137
7137
  spacing: "md",
7138
7138
  type: "media"
@@ -7163,7 +7163,7 @@ var SimpleGrid = factory(/* @__PURE__ */ (0, vue.defineComponent)({
7163
7163
  setup(__props, { expose: __expose }) {
7164
7164
  const rawProps = __props;
7165
7165
  const attrs = (0, vue.useAttrs)();
7166
- const props = useProps("SimpleGrid", defaultProps$50, rawProps);
7166
+ const props = useProps("SimpleGrid", defaultProps$51, rawProps);
7167
7167
  const getStyles = useStyles({
7168
7168
  name: "SimpleGrid",
7169
7169
  props,
@@ -7320,7 +7320,7 @@ var GridColVariables_default = /* @__PURE__ */ (0, vue.defineComponent)({
7320
7320
  });
7321
7321
  //#endregion
7322
7322
  //#region src/components/Grid/GridCol/GridCol.vue?vue&type=script&setup=true&lang.ts
7323
- var defaultProps$49 = { span: 12 };
7323
+ var defaultProps$50 = { span: 12 };
7324
7324
  //#endregion
7325
7325
  //#region src/components/Grid/GridCol/GridCol.vue
7326
7326
  var GridCol_default = /* @__PURE__ */ (0, vue.defineComponent)({
@@ -7340,7 +7340,7 @@ var GridCol_default = /* @__PURE__ */ (0, vue.defineComponent)({
7340
7340
  setup(__props, { expose: __expose }) {
7341
7341
  const rawProps = __props;
7342
7342
  const attrs = (0, vue.useAttrs)();
7343
- const props = useProps("GridCol", defaultProps$49, rawProps);
7343
+ const props = useProps("GridCol", defaultProps$50, rawProps);
7344
7344
  const ctx = useGridContext();
7345
7345
  const responsiveClassName = useRandomClassName();
7346
7346
  const rootElement = (0, vue.ref)(null);
@@ -7454,7 +7454,7 @@ var varsResolver$59 = createVarsResolver((_, { justify, align, overflow }) => ({
7454
7454
  "--grid-align": align,
7455
7455
  "--grid-overflow": overflow
7456
7456
  } }));
7457
- var defaultProps$48 = {
7457
+ var defaultProps$49 = {
7458
7458
  gap: "md",
7459
7459
  columns: 12
7460
7460
  };
@@ -7490,7 +7490,7 @@ var Grid = factory(/* @__PURE__ */ (0, vue.defineComponent)({
7490
7490
  setup(__props, { expose: __expose }) {
7491
7491
  const rawProps = __props;
7492
7492
  const attrs = (0, vue.useAttrs)();
7493
- const props = useProps("Grid", defaultProps$48, rawProps);
7493
+ const props = useProps("Grid", defaultProps$49, rawProps);
7494
7494
  const responsiveClassName = useRandomClassName();
7495
7495
  const getStyles = useStyles({
7496
7496
  name: "Grid",
@@ -7623,7 +7623,7 @@ var ScrollAreaCorner = /* @__PURE__ */ (0, vue.defineComponent)({
7623
7623
  });
7624
7624
  //#endregion
7625
7625
  //#region src/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.vue?vue&type=script&setup=true&lang.ts
7626
- var defaultProps$47 = {
7626
+ var defaultProps$48 = {
7627
7627
  scrollHideDelay: 1e3,
7628
7628
  type: "hover"
7629
7629
  };
@@ -7653,7 +7653,7 @@ var ScrollAreaRoot = factory(/* @__PURE__ */ (0, vue.defineComponent)({
7653
7653
  */
7654
7654
  const rawProps = __props;
7655
7655
  const attrs = (0, vue.useAttrs)();
7656
- const props = useProps("ScrollAreaRoot", defaultProps$47, rawProps);
7656
+ const props = useProps("ScrollAreaRoot", defaultProps$48, rawProps);
7657
7657
  const viewport = (0, vue.ref)(null);
7658
7658
  const content = (0, vue.ref)(null);
7659
7659
  const scrollbarX = (0, vue.ref)(null);
@@ -7661,8 +7661,8 @@ var ScrollAreaRoot = factory(/* @__PURE__ */ (0, vue.defineComponent)({
7661
7661
  const cornerWidth = (0, vue.ref)(0);
7662
7662
  const cornerHeight = (0, vue.ref)(0);
7663
7663
  provideScrollAreaContext({
7664
- type: props.type ?? defaultProps$47.type,
7665
- scrollHideDelay: props.scrollHideDelay ?? defaultProps$47.scrollHideDelay,
7664
+ type: props.type ?? defaultProps$48.type,
7665
+ scrollHideDelay: props.scrollHideDelay ?? defaultProps$48.scrollHideDelay,
7666
7666
  scrollbars: props.scrollbars,
7667
7667
  viewport,
7668
7668
  onViewportChange: (node) => {
@@ -8344,7 +8344,7 @@ var ScrollArea_module_default = {
8344
8344
  };
8345
8345
  //#endregion
8346
8346
  //#region src/components/ScrollArea/ScrollArea.vue?vue&type=script&setup=true&lang.ts
8347
- var defaultProps$46 = {
8347
+ var defaultProps$47 = {
8348
8348
  scrollHideDelay: 1e3,
8349
8349
  type: "hover",
8350
8350
  scrollbars: "xy"
@@ -8409,7 +8409,7 @@ var ScrollArea_default = /* @__PURE__ */ (0, vue.defineComponent)({
8409
8409
  const rawProps = __props;
8410
8410
  const emit = __emit;
8411
8411
  const attrs = (0, vue.useAttrs)();
8412
- const props = useProps("ScrollArea", defaultProps$46, rawProps);
8412
+ const props = useProps("ScrollArea", defaultProps$47, rawProps);
8413
8413
  const viewport = (0, vue.ref)(null);
8414
8414
  const content = (0, vue.ref)(null);
8415
8415
  const hovered = (0, vue.ref)(false);
@@ -8744,7 +8744,7 @@ var Accordion_module_default = {
8744
8744
  //#endregion
8745
8745
  //#region src/components/Accordion/Accordion.vue?vue&type=script&setup=true&lang.ts
8746
8746
  var VALUE_ERROR$1 = "Accordion.Item component was rendered with invalid value or without value";
8747
- var defaultProps$45 = {
8747
+ var defaultProps$46 = {
8748
8748
  multiple: false,
8749
8749
  loop: true,
8750
8750
  disableChevronRotation: false,
@@ -8826,7 +8826,7 @@ var Accordion_default = /* @__PURE__ */ (0, vue.defineComponent)({
8826
8826
  const emit = __emit;
8827
8827
  const slots = (0, vue.useSlots)();
8828
8828
  const attrs = (0, vue.useAttrs)();
8829
- const props = useProps("Accordion", defaultProps$45, rawProps);
8829
+ const props = useProps("Accordion", defaultProps$46, rawProps);
8830
8830
  const uid = (0, _mantine_vue_hooks.useId)(props.id);
8831
8831
  const [currentValue, setCurrentValue] = (0, _mantine_vue_hooks.useUncontrolled)({
8832
8832
  value: () => props.value,
@@ -9224,7 +9224,7 @@ var Scroller_module_default = {
9224
9224
  //#endregion
9225
9225
  //#region src/components/Scroller/Scroller.vue?vue&type=script&setup=true&lang.ts
9226
9226
  var _hoisted_1$31 = ["data-draggable"];
9227
- var defaultProps$44 = {
9227
+ var defaultProps$45 = {
9228
9228
  scrollAmount: 200,
9229
9229
  draggable: true
9230
9230
  };
@@ -9296,7 +9296,7 @@ var Scroller = factory(/* @__PURE__ */ (0, vue.defineComponent)({
9296
9296
  const rawProps = __props;
9297
9297
  const slots = (0, vue.useSlots)();
9298
9298
  const attrs = (0, vue.useAttrs)();
9299
- const props = useProps("Scroller", defaultProps$44, rawProps);
9299
+ const props = useProps("Scroller", defaultProps$45, rawProps);
9300
9300
  const scroller = (0, _mantine_vue_hooks.useScroller)({
9301
9301
  scrollAmount: props.scrollAmount,
9302
9302
  draggable: props.draggable
@@ -9702,7 +9702,7 @@ var TableDataRenderer = (0, vue.defineComponent)({
9702
9702
  });
9703
9703
  //#endregion
9704
9704
  //#region src/components/Table/Table.vue?vue&type=script&setup=true&lang.ts
9705
- var defaultProps$43 = {
9705
+ var defaultProps$44 = {
9706
9706
  withRowBorders: true,
9707
9707
  verticalSpacing: 7
9708
9708
  };
@@ -9782,7 +9782,7 @@ var Table_default = /* @__PURE__ */ (0, vue.defineComponent)({
9782
9782
  const rawProps = __props;
9783
9783
  const slots = (0, vue.useSlots)();
9784
9784
  const attrs = (0, vue.useAttrs)();
9785
- const props = useProps("Table", defaultProps$43, rawProps);
9785
+ const props = useProps("Table", defaultProps$44, rawProps);
9786
9786
  const getStyles = useStyles({
9787
9787
  name: "Table",
9788
9788
  props,
@@ -9853,7 +9853,7 @@ var Table_default = /* @__PURE__ */ (0, vue.defineComponent)({
9853
9853
  });
9854
9854
  //#endregion
9855
9855
  //#region src/components/Table/TableScrollContainer.vue?vue&type=script&setup=true&lang.ts
9856
- var defaultProps$42 = { type: "scrollarea" };
9856
+ var defaultProps$43 = { type: "scrollarea" };
9857
9857
  var varsResolver$54 = createVarsResolver((_, { minWidth, maxHeight, type }) => ({ scrollContainer: {
9858
9858
  "--table-min-width": rem(minWidth),
9859
9859
  "--table-max-height": rem(maxHeight),
@@ -9882,7 +9882,7 @@ var TableScrollContainer = factory(/* @__PURE__ */ (0, vue.defineComponent)({
9882
9882
  setup(__props, { expose: __expose }) {
9883
9883
  const rawProps = __props;
9884
9884
  const attrs = (0, vue.useAttrs)();
9885
- const props = useProps("TableScrollContainer", defaultProps$42, rawProps);
9885
+ const props = useProps("TableScrollContainer", defaultProps$43, rawProps);
9886
9886
  const getStyles = useStyles({
9887
9887
  name: "TableScrollContainer",
9888
9888
  props,
@@ -10075,7 +10075,7 @@ var ProgressRoot = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10075
10075
  });
10076
10076
  //#endregion
10077
10077
  //#region src/components/Progress/ProgressSection/ProgressSection.vue?vue&type=script&setup=true&lang.ts
10078
- var defaultProps$41 = { withAria: true };
10078
+ var defaultProps$42 = { withAria: true };
10079
10079
  //#endregion
10080
10080
  //#region src/components/Progress/ProgressSection/ProgressSection.ts
10081
10081
  var ProgressSection = factory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -10109,7 +10109,7 @@ var ProgressSection = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10109
10109
  setup(__props, { expose: __expose }) {
10110
10110
  const rawProps = __props;
10111
10111
  const attrs = (0, vue.useAttrs)();
10112
- const props = useProps("ProgressSection", defaultProps$41, rawProps);
10112
+ const props = useProps("ProgressSection", defaultProps$42, rawProps);
10113
10113
  const ctx = useProgressContext();
10114
10114
  const theme = useMantineTheme();
10115
10115
  const ariaAttributes = (0, vue.computed)(() => props.withAria === false ? {} : {
@@ -10365,7 +10365,7 @@ var RingProgress_module_default = {
10365
10365
  //#endregion
10366
10366
  //#region src/components/RingProgress/RingProgress.vue?vue&type=script&setup=true&lang.ts
10367
10367
  var _hoisted_1$30 = ["viewBox"];
10368
- var defaultProps$40 = {
10368
+ var defaultProps$41 = {
10369
10369
  size: 120,
10370
10370
  thickness: 12,
10371
10371
  startAngle: 270
@@ -10374,7 +10374,7 @@ var defaultProps$40 = {
10374
10374
  var varsResolver$52 = createVarsResolver((_, { size, thickness, transitionDuration, startAngle }) => ({
10375
10375
  root: {
10376
10376
  "--rp-size": rem(size),
10377
- "--rp-label-offset": rem((thickness ?? defaultProps$40.thickness) * 2),
10377
+ "--rp-label-offset": rem((thickness ?? defaultProps$41.thickness) * 2),
10378
10378
  "--rp-transition-duration": transitionDuration ? `${transitionDuration}ms` : void 0
10379
10379
  },
10380
10380
  svg: { "--rp-start-angle": `${startAngle}deg` }
@@ -10435,7 +10435,7 @@ var RingProgress = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10435
10435
  const rawProps = __props;
10436
10436
  const slots = (0, vue.useSlots)();
10437
10437
  const attrs = (0, vue.useAttrs)();
10438
- const props = useProps("RingProgress", defaultProps$40, rawProps);
10438
+ const props = useProps("RingProgress", defaultProps$41, rawProps);
10439
10439
  const getStyles = useStyles({
10440
10440
  name: "RingProgress",
10441
10441
  props,
@@ -10448,8 +10448,8 @@ var RingProgress = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10448
10448
  vars: props.vars,
10449
10449
  varsResolver: varsResolver$52
10450
10450
  });
10451
- const size = (0, vue.computed)(() => props.size ?? defaultProps$40.size);
10452
- const thickness = (0, vue.computed)(() => props.thickness ?? defaultProps$40.thickness);
10451
+ const size = (0, vue.computed)(() => props.size ?? defaultProps$41.size);
10452
+ const thickness = (0, vue.computed)(() => props.thickness ?? defaultProps$41.thickness);
10453
10453
  const clampedThickness = (0, vue.computed)(() => getClampedThickness(thickness.value, size.value));
10454
10454
  const label = (0, vue.computed)(() => slots.label?.() ?? props.label);
10455
10455
  /**
@@ -10739,16 +10739,17 @@ function getRenderSlotsFromValues({ value, previousValue, prefix, suffix, decima
10739
10739
  });
10740
10740
  }
10741
10741
  var RollingNumber_module_default = {
10742
- root: "_root_ox6qq_1",
10743
- digit: "_digit_ox6qq_11",
10744
- digitColumn: "_digitColumn_ox6qq_27",
10745
- "mantine-rolling-number-roll": "_mantine-rolling-number-roll_ox6qq_1",
10746
- char: "_char_ox6qq_40"
10742
+ root: "_root_j0d70_1",
10743
+ copyValue: "_copyValue_j0d70_12",
10744
+ digit: "_digit_j0d70_22",
10745
+ digitColumn: "_digitColumn_j0d70_43",
10746
+ "mantine-rolling-number-roll": "_mantine-rolling-number-roll_j0d70_1",
10747
+ char: "_char_j0d70_56"
10747
10748
  };
10748
10749
  //#endregion
10749
10750
  //#region src/components/RollingNumber/RollingNumber.vue?vue&type=script&setup=true&lang.ts
10750
10751
  var _hoisted_1$28 = ["data-empty"];
10751
- var defaultProps$39 = {
10752
+ var defaultProps$40 = {
10752
10753
  animationDuration: 600,
10753
10754
  timingFunction: "ease",
10754
10755
  decimalSeparator: ".",
@@ -10802,7 +10803,7 @@ var RollingNumber = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10802
10803
  setup(__props, { expose: __expose }) {
10803
10804
  const rawProps = __props;
10804
10805
  const attrs = (0, vue.useAttrs)();
10805
- const props = useProps("RollingNumber", defaultProps$39, rawProps);
10806
+ const props = useProps("RollingNumber", defaultProps$40, rawProps);
10806
10807
  /** Kept so each digit knows where it is rolling from. */
10807
10808
  const previousValue = (0, vue.ref)(props.value);
10808
10809
  (0, vue.watch)(() => props.value, (_, oldValue) => {
@@ -10874,7 +10875,7 @@ var RollingNumber = factory(/* @__PURE__ */ (0, vue.defineComponent)({
10874
10875
  role: (0, vue.unref)(props).withLiveRegion ? "status" : "img",
10875
10876
  "aria-label": accessibleValue.value
10876
10877
  }), {
10877
- default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(renderSlots.value, (slot) => {
10878
+ default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", (0, vue.mergeProps)((0, vue.unref)(getStyles)("copyValue"), { "aria-hidden": "true" }), (0, vue.toDisplayString)(accessibleValue.value), 17), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(renderSlots.value, (slot) => {
10878
10879
  return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: slot.key }, [slot.type === "digit" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(DigitColumn), {
10879
10880
  key: 0,
10880
10881
  digit: slot.digit,
@@ -11101,7 +11102,7 @@ var varsResolver$50 = createVarsResolver((theme, { bulletSize, lineWidth, radius
11101
11102
  autoContrast
11102
11103
  }) : void 0
11103
11104
  } }));
11104
- var defaultProps$38 = {
11105
+ var defaultProps$39 = {
11105
11106
  active: -1,
11106
11107
  align: "left"
11107
11108
  };
@@ -11140,7 +11141,7 @@ var Timeline = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11140
11141
  const rawProps = __props;
11141
11142
  const attrs = (0, vue.useAttrs)();
11142
11143
  const slots = (0, vue.useSlots)();
11143
- const props = useProps("Timeline", defaultProps$38, rawProps);
11144
+ const props = useProps("Timeline", defaultProps$39, rawProps);
11144
11145
  const getStyles = useStyles({
11145
11146
  name: "Timeline",
11146
11147
  props,
@@ -11157,7 +11158,7 @@ var Timeline = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11157
11158
  const renderTimeline = Object.assign((slotProps) => {
11158
11159
  const children = (slotProps.nodes?.() ?? []).filter(Boolean);
11159
11160
  const hasOpposite = children.some((item) => item.props?.opposite != null || item.children?.opposite != null);
11160
- const active = props.active ?? defaultProps$38.active;
11161
+ const active = props.active ?? defaultProps$39.active;
11161
11162
  const items = children.map((item, index) => {
11162
11163
  const itemActive = props.reverseActive ? active >= children.length - index - 1 : active >= index;
11163
11164
  const lineActive = props.reverseActive ? active >= children.length - index - 1 : active - 1 >= index;
@@ -11281,7 +11282,7 @@ function highlighter(value, _highlight, options = {}) {
11281
11282
  //#endregion
11282
11283
  //#region src/components/Highlight/Highlight.vue?vue&type=script&setup=true&lang.ts
11283
11284
  var _hoisted_1$27 = { key: 1 };
11284
- var defaultProps$37 = {
11285
+ var defaultProps$38 = {
11285
11286
  color: "yellow",
11286
11287
  wholeWord: false,
11287
11288
  caseInsensitive: true,
@@ -11343,7 +11344,7 @@ var Highlight = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
11343
11344
  const rawProps = __props;
11344
11345
  const attrs = (0, vue.useAttrs)();
11345
11346
  const slots = (0, vue.useSlots)();
11346
- const props = useProps("Highlight", defaultProps$37, rawProps);
11347
+ const props = useProps("Highlight", defaultProps$38, rawProps);
11347
11348
  function getChunks() {
11348
11349
  const text = slots.default?.().map((node) => String(node.children ?? "")).join("") ?? "";
11349
11350
  const isTermArray = Array.isArray(props.highlight) && typeof props.highlight[0] === "object";
@@ -11416,7 +11417,7 @@ var Highlight = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
11416
11417
  };
11417
11418
  }
11418
11419
  }), { classes: Text.classes });
11419
- var Typography_module_default = { root: "_root_1ezfc_1" };
11420
+ var Typography_module_default = { root: "_root_whr49_1" };
11420
11421
  //#endregion
11421
11422
  //#region src/components/Typography/Typography.ts
11422
11423
  var Typography = factory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -11485,7 +11486,7 @@ var _hoisted_4 = [
11485
11486
  "stroke-width",
11486
11487
  "stroke-dasharray"
11487
11488
  ];
11488
- var defaultProps$36 = {
11489
+ var defaultProps$37 = {
11489
11490
  size: 200,
11490
11491
  thickness: 12,
11491
11492
  orientation: "up",
@@ -11547,7 +11548,7 @@ var SemiCircleProgress = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11547
11548
  const rawProps = __props;
11548
11549
  const attrs = (0, vue.useAttrs)();
11549
11550
  const slots = (0, vue.useSlots)();
11550
- const props = useProps("SemiCircleProgress", defaultProps$36, rawProps);
11551
+ const props = useProps("SemiCircleProgress", defaultProps$37, rawProps);
11551
11552
  const getStyles = useStyles({
11552
11553
  name: "SemiCircleProgress",
11553
11554
  props,
@@ -11560,8 +11561,8 @@ var SemiCircleProgress = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11560
11561
  vars: props.vars,
11561
11562
  varsResolver: varsResolver$49
11562
11563
  });
11563
- const size = (0, vue.computed)(() => props.size ?? defaultProps$36.size);
11564
- const thickness = (0, vue.computed)(() => props.thickness ?? defaultProps$36.thickness);
11564
+ const size = (0, vue.computed)(() => props.size ?? defaultProps$37.size);
11565
+ const thickness = (0, vue.computed)(() => props.thickness ?? defaultProps$37.thickness);
11565
11566
  const coordinateForCircle = (0, vue.computed)(() => size.value / 2);
11566
11567
  const radius = (0, vue.computed)(() => (size.value - 2 * thickness.value) / 2);
11567
11568
  const circumference = (0, vue.computed)(() => Math.PI * radius.value);
@@ -11625,7 +11626,7 @@ var Spoiler_module_default = {
11625
11626
  //#endregion
11626
11627
  //#region src/components/Spoiler/Spoiler.vue?vue&type=script&setup=true&lang.ts
11627
11628
  var _hoisted_1$25 = ["id"];
11628
- var defaultProps$35 = {
11629
+ var defaultProps$36 = {
11629
11630
  maxHeight: 100,
11630
11631
  defaultExpanded: false
11631
11632
  };
@@ -11690,7 +11691,7 @@ var Spoiler = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11690
11691
  const emit = __emit;
11691
11692
  const slots = (0, vue.useSlots)();
11692
11693
  const attrs = (0, vue.useAttrs)();
11693
- const props = useProps("Spoiler", defaultProps$35, rawProps);
11694
+ const props = useProps("Spoiler", defaultProps$36, rawProps);
11694
11695
  const getStyles = useStyles({
11695
11696
  name: "Spoiler",
11696
11697
  props,
@@ -11715,7 +11716,7 @@ var Spoiler = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11715
11716
  const currentLabel = (0, vue.computed)(() => show.value ? resolveNode(props.hideLabel, slots.hideLabel) : resolveNode(props.showLabel, slots.showLabel));
11716
11717
  /** Stable functional component: `MantineNode` values are arbitrary VNode children. */
11717
11718
  const renderLabel = () => currentLabel.value;
11718
- const maxHeight = (0, vue.computed)(() => props.maxHeight ?? defaultProps$35.maxHeight);
11719
+ const maxHeight = (0, vue.computed)(() => props.maxHeight ?? defaultProps$36.maxHeight);
11719
11720
  const hasSpoiler = (0, vue.computed)(() => hasNode(currentLabel.value) && maxHeight.value < height.value);
11720
11721
  const ariaLabel = (0, vue.computed)(() => show.value ? props.hideAriaLabel : props.showAriaLabel);
11721
11722
  const contentStyle = (0, vue.computed)(() => ({ maxHeight: !show.value ? rem(maxHeight.value) : height.value ? rem(height.value) : void 0 }));
@@ -11775,7 +11776,7 @@ var Fieldset_module_default = {
11775
11776
  };
11776
11777
  //#endregion
11777
11778
  //#region src/components/Fieldset/Fieldset.vue?vue&type=script&setup=true&lang.ts
11778
- var defaultProps$34 = { variant: "default" };
11779
+ var defaultProps$35 = { variant: "default" };
11779
11780
  var varsResolver$47 = createVarsResolver((_, { radius }) => ({ root: { "--fieldset-radius": radius === void 0 ? void 0 : getRadius(radius) } }));
11780
11781
  //#endregion
11781
11782
  //#region src/components/Fieldset/Fieldset.ts
@@ -11811,7 +11812,7 @@ var Fieldset = factory(/* @__PURE__ */ (0, vue.defineComponent)({
11811
11812
  const rawProps = __props;
11812
11813
  const attrs = (0, vue.useAttrs)();
11813
11814
  const slots = (0, vue.useSlots)();
11814
- const props = useProps("Fieldset", defaultProps$34, rawProps);
11815
+ const props = useProps("Fieldset", defaultProps$35, rawProps);
11815
11816
  const getStyles = useStyles({
11816
11817
  name: "Fieldset",
11817
11818
  props,
@@ -12165,7 +12166,7 @@ var varsResolver$44 = createVarsResolver((_, { size }) => ({ label: {
12165
12166
  "--input-label-size": getFontSize(size),
12166
12167
  "--input-asterisk-color": void 0
12167
12168
  } }));
12168
- var defaultProps$33 = { labelElement: "label" };
12169
+ var defaultProps$34 = { labelElement: "label" };
12169
12170
  //#endregion
12170
12171
  //#region src/components/Input/InputLabel/InputLabel.ts
12171
12172
  var InputLabel = factory(/* @__PURE__ */ (0, vue.defineComponent)({
@@ -12196,7 +12197,7 @@ var InputLabel = factory(/* @__PURE__ */ (0, vue.defineComponent)({
12196
12197
  setup(__props, { expose: __expose }) {
12197
12198
  const rawProps = __props;
12198
12199
  const attrs = (0, vue.useAttrs)();
12199
- const props = useProps("InputLabel", defaultProps$33, rawProps);
12200
+ const props = useProps("InputLabel", defaultProps$34, rawProps);
12200
12201
  const wrapperCtx = useInputWrapperContext();
12201
12202
  const ownGetStyles = useStyles({
12202
12203
  name: "InputWrapper",
@@ -12631,7 +12632,7 @@ var varsResolver$42 = createVarsResolver((_, props, ctx) => ({ wrapper: {
12631
12632
  function renderContent(content) {
12632
12633
  return typeof content === "function" ? content() : content;
12633
12634
  }
12634
- var defaultProps$32 = {
12635
+ var defaultProps$33 = {
12635
12636
  component: "input",
12636
12637
  leftSectionPointerEvents: "none",
12637
12638
  rightSectionPointerEvents: "none",
@@ -12777,7 +12778,7 @@ var Input = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
12777
12778
  const emit = __emit;
12778
12779
  const slots = (0, vue.useSlots)();
12779
12780
  const attrs = (0, vue.useAttrs)();
12780
- const props = useProps("Input", defaultProps$32, rawProps);
12781
+ const props = useProps("Input", defaultProps$33, rawProps);
12781
12782
  const [value, setValue] = (0, _mantine_vue_hooks.useUncontrolled)({
12782
12783
  value: () => props.modelValue,
12783
12784
  defaultValue: props.defaultValue,
@@ -12963,7 +12964,7 @@ var Input = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
12963
12964
  });
12964
12965
  //#endregion
12965
12966
  //#region src/components/InputBase/InputBase.vue?vue&type=script&setup=true&lang.ts
12966
- var defaultProps$31 = {
12967
+ var defaultProps$32 = {
12967
12968
  component: "input",
12968
12969
  __staticSelector: "InputBase",
12969
12970
  withAria: true,
@@ -13168,7 +13169,7 @@ var InputBase = polymorphicFactory(/* @__PURE__ */ (0, vue.defineComponent)({
13168
13169
  "Input",
13169
13170
  "InputWrapper",
13170
13171
  "InputBase"
13171
- ], defaultProps$31, rawProps);
13172
+ ], defaultProps$32, rawProps);
13172
13173
  const stylePropNames = new Set(Object.keys(STYLE_PROPS_DATA));
13173
13174
  const wrapperStyleProps = (0, vue.computed)(() => Object.fromEntries(Object.entries(attrs).filter(([key]) => stylePropNames.has(key))));
13174
13175
  const inputAttrs = (0, vue.computed)(() => Object.fromEntries(Object.entries(attrs).filter(([key]) => key !== "class" && key !== "style" && !stylePropNames.has(key))));
@@ -13586,7 +13587,7 @@ var Notification_module_default = {
13586
13587
  };
13587
13588
  //#endregion
13588
13589
  //#region src/components/Notification/Notification.vue?vue&type=script&setup=true&lang.ts
13589
- var defaultProps$30 = { withCloseButton: true };
13590
+ var defaultProps$31 = { withCloseButton: true };
13590
13591
  var varsResolver$41 = createVarsResolver((theme, { radius, color }) => ({ root: {
13591
13592
  "--notification-radius": radius === void 0 ? void 0 : getRadius(radius),
13592
13593
  "--notification-color": color ? getThemeColor(color, theme) : void 0
@@ -13648,7 +13649,7 @@ var Notification = factory(/* @__PURE__ */ (0, vue.defineComponent)({
13648
13649
  const emit = __emit;
13649
13650
  const attrs = (0, vue.useAttrs)();
13650
13651
  const slots = (0, vue.useSlots)();
13651
- const props = useProps("Notification", defaultProps$30, rawProps);
13652
+ const props = useProps("Notification", defaultProps$31, rawProps);
13652
13653
  const getStyles = useStyles({
13653
13654
  name: "Notification",
13654
13655
  props,
@@ -13851,13 +13852,21 @@ var leadingZerosPattern = /^-?0\d+(\.\d+)?\.?$/;
13851
13852
  var trailingZerosPattern = /\.\d*0$/;
13852
13853
  var trailingDecimalSeparatorPattern = /^-?\d+\.$/;
13853
13854
  function clamp$3(value, min, max) {
13854
- return Math.min(max ?? value, Math.max(min ?? value, value));
13855
+ return Math.min(max ?? Number.POSITIVE_INFINITY, Math.max(min ?? Number.NEGATIVE_INFINITY, value));
13855
13856
  }
13856
13857
  function clampBigInt(value, min, max) {
13857
13858
  if (min !== void 0 && value < min) return min;
13858
13859
  if (max !== void 0 && value > max) return max;
13859
13860
  return value;
13860
13861
  }
13862
+ function canStep(value) {
13863
+ if (typeof value === "number") return value < Number.MAX_SAFE_INTEGER;
13864
+ return value === "" || value !== "-" && !Number.isNaN(Number(value)) && Number(value) < Number.MAX_SAFE_INTEGER;
13865
+ }
13866
+ function canStepBigInt(value, allowNegative) {
13867
+ if (typeof value === "bigint") return true;
13868
+ return value === "" || value !== "-" && (allowNegative || !value.startsWith("-")) && /^-?\d+$/.test(value);
13869
+ }
13861
13870
  function stripFormatting(value, options) {
13862
13871
  let next = value;
13863
13872
  if (options.prefix && next.startsWith(options.prefix)) next = next.slice(options.prefix.length);
@@ -13887,9 +13896,19 @@ function parseNumberInputValue(rawValue, allowDecimal, allowNegative, allowLeadi
13887
13896
  return parsed;
13888
13897
  }
13889
13898
  function sanitizeNumberInputString(rawValue, allowDecimal, allowNegative, decimalScale) {
13890
- let normalized = rawValue;
13891
- if (!allowNegative) normalized = normalized.replace(/-/g, "");
13892
- if (!allowDecimal) return normalized.split(".")[0];
13899
+ let normalized = "";
13900
+ let hasDecimalSeparator = false;
13901
+ for (const character of rawValue) {
13902
+ if (character === "." && !allowDecimal) break;
13903
+ if (/\d/.test(character)) normalized += character;
13904
+ else if (character === "-" && allowNegative && normalized.length === 0) normalized = "-";
13905
+ else if (character === "." && allowDecimal && !hasDecimalSeparator) {
13906
+ normalized += character;
13907
+ hasDecimalSeparator = true;
13908
+ }
13909
+ }
13910
+ if (normalized.startsWith(".")) normalized = `0${normalized}`;
13911
+ else if (normalized.startsWith("-.")) normalized = `-0${normalized.slice(1)}`;
13893
13912
  if (typeof decimalScale === "number" && normalized.includes(".")) {
13894
13913
  const [integerPart, decimalPart = ""] = normalized.split(".");
13895
13914
  return `${integerPart}.${decimalPart.slice(0, decimalScale)}`;
@@ -14109,7 +14128,6 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14109
14128
  const slots = (0, vue.useSlots)();
14110
14129
  const attrs = (0, vue.useAttrs)();
14111
14130
  const inputRef = (0, vue.ref)(null);
14112
- const isEditing = (0, vue.ref)(false);
14113
14131
  const isBigIntMode = (0, vue.computed)(() => typeof props.modelValue === "bigint" || typeof props.defaultValue === "bigint");
14114
14132
  const [value, setValue] = (0, _mantine_vue_hooks.useUncontrolled)({
14115
14133
  value: () => props.modelValue,
@@ -14142,11 +14160,7 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14142
14160
  thousandsGroupStyle: props.thousandsGroupStyle,
14143
14161
  thousandSeparator: props.thousandSeparator
14144
14162
  }));
14145
- const getFormatterOptions = (nextValue = value.value) => ({
14146
- ...formatterOptions.value,
14147
- fixedDecimalScale: isEditing.value || typeof nextValue === "string" ? false : formatterOptions.value.fixedDecimalScale
14148
- });
14149
- const displayValue = (0, vue.computed)(() => value.value === "" || value.value === "-" ? String(value.value) : formatNumber(value.value, getFormatterOptions()));
14163
+ const displayValue = (0, vue.computed)(() => value.value === "" || value.value === "-" ? String(value.value) : formatNumber(value.value, formatterOptions.value));
14150
14164
  const clampCaretToFormatting = (input) => {
14151
14165
  const { min, max } = getCaretBoundaries(input.value, formatterOptions.value);
14152
14166
  const start = input.selectionStart;
@@ -14159,6 +14173,14 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14159
14173
  const scheduleCaretClamp = (input) => {
14160
14174
  setTimeout(() => clampCaretToFormatting(input), 0);
14161
14175
  };
14176
+ const getFormattedCaretPosition = (value, formattedValue, position) => {
14177
+ let formattedPosition = 0;
14178
+ for (const character of value.slice(0, position)) {
14179
+ const nextPosition = formattedValue.indexOf(character, formattedPosition);
14180
+ if (nextPosition !== -1) formattedPosition = nextPosition + 1;
14181
+ }
14182
+ return formattedPosition;
14183
+ };
14162
14184
  const commitValue = (nextValue, source = "event") => {
14163
14185
  if (props.clampBehavior === "strict") {
14164
14186
  const numeric = toNumeric(nextValue);
@@ -14170,18 +14192,19 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14170
14192
  const raw = typeof nextValue === "bigint" ? nextValue.toString() : String(nextValue);
14171
14193
  emit("value-change", {
14172
14194
  floatValue: typeof nextValue === "number" ? nextValue : Number.isNaN(Number(raw)) ? void 0 : Number(raw),
14173
- formattedValue: nextValue === "" ? "" : formatNumber(nextValue, getFormatterOptions(nextValue)),
14195
+ formattedValue: nextValue === "" ? "" : formatNumber(nextValue, formatterOptions.value),
14174
14196
  value: raw
14175
14197
  }, { source });
14176
14198
  };
14199
+ const canStepValue = (0, vue.computed)(() => isBigIntMode.value ? canStepBigInt(value.value, props.allowNegative) : canStep(value.value));
14177
14200
  const stepValue = (direction) => {
14178
- if (props.disabled || props.readOnly) return;
14201
+ if (props.disabled || props.readOnly || !canStepValue.value) return;
14179
14202
  if (isBigIntMode.value) {
14180
14203
  const current = typeof value.value === "bigint" ? value.value : BigInt(0);
14181
14204
  const step = typeof props.step === "bigint" ? props.step : BigInt(props.step);
14182
14205
  const start = typeof props.startValue === "bigint" ? props.startValue : BigInt(props.startValue);
14183
14206
  const next = (value.value === "" || value.value === "-" ? start : current) + step * BigInt(direction);
14184
- const min = typeof props.min === "bigint" ? props.min : props.min === void 0 ? void 0 : BigInt(props.min);
14207
+ const min = typeof props.min === "bigint" ? props.min : props.min === void 0 ? props.allowNegative ? void 0 : BigInt(0) : BigInt(props.min);
14185
14208
  const max = typeof props.max === "bigint" ? props.max : props.max === void 0 ? void 0 : BigInt(props.max);
14186
14209
  const clamped = clampBigInt(next, min, max);
14187
14210
  if (max !== void 0 && next > max) emit("max-reached");
@@ -14271,7 +14294,7 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14271
14294
  onPointercancel: clearHold
14272
14295
  }, () => (0, vue.h)(NumberInputChevron, { direction: "down" }))]);
14273
14296
  /** The step controls double as the right section unless one was supplied. */
14274
- const rightSection = (0, vue.computed)(() => props.hideControls || props.readOnly ? props.rightSection : props.rightSection !== void 0 || slots.rightSection ? props.rightSection : controls);
14297
+ const rightSection = (0, vue.computed)(() => props.hideControls || props.readOnly || !canStepValue.value ? props.rightSection : props.rightSection !== void 0 || slots.rightSection ? props.rightSection : controls);
14275
14298
  const rightSectionPointerEvents = (0, vue.computed)(() => props.rightSectionPointerEvents ?? (props.disabled ? "none" : void 0));
14276
14299
  const rightSectionWidth = (0, vue.computed)(() => props.rightSectionWidth ?? `var(--ni-right-section-width-${props.size || "sm"})`);
14277
14300
  /** `bigint` values are integers only, so the numeric keypad is the right hint. */
@@ -14288,22 +14311,52 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14288
14311
  };
14289
14312
  __expose({ rootElement });
14290
14313
  function onInput(event) {
14291
- isEditing.value = true;
14292
14314
  const input = event.currentTarget;
14293
- const rawValue = stripFormatting(input.value, formatterOptions.value);
14315
+ const inputValue = input.value;
14316
+ const selectionStart = input.selectionStart;
14317
+ const selectionEnd = input.selectionEnd;
14318
+ const rawValue = stripFormatting(inputValue, formatterOptions.value);
14294
14319
  const decimalSeparator = props.decimalSeparator || ".";
14295
- const sanitized = sanitizeNumberInputString(props.allowedDecimalSeparators.filter((separator) => separator !== decimalSeparator).reduce((acc, separator) => acc.split(separator).join("."), rawValue.replace(decimalSeparator, ".")), props.allowDecimal, props.allowNegative, props.decimalScale);
14320
+ const sanitized = sanitizeNumberInputString(props.allowedDecimalSeparators.filter((separator) => separator !== decimalSeparator).reduce((acc, separator) => acc.split(separator).join("."), rawValue.replace(decimalSeparator, ".")), isBigIntMode.value ? false : props.allowDecimal, props.allowNegative, props.decimalScale);
14296
14321
  const nextValue = isBigIntMode.value ? parseBigIntInputValue(sanitized, props.allowNegative, props.allowLeadingZeros) : parseNumberInputValue(sanitized, props.allowDecimal, props.allowNegative, props.allowLeadingZeros, props.decimalScale, props.fixedDecimalScale);
14297
14322
  if (props.clampBehavior === "strict" && !isBigIntMode.value && !isStrictAllowed(nextValue, typeof props.min === "number" ? props.min : void 0, typeof props.max === "number" ? props.max : void 0)) {
14298
14323
  restoreInputValue(input, displayValue.value);
14299
14324
  return;
14300
14325
  }
14301
- const formattedNextValue = nextValue === "" || nextValue === "-" ? String(nextValue) : formatNumber(nextValue, getFormatterOptions(nextValue));
14302
- if (input.value !== formattedNextValue) restoreInputValue(input, formattedNextValue);
14326
+ const formattedNextValue = nextValue === "" || nextValue === "-" ? String(nextValue) : formatNumber(nextValue, formatterOptions.value);
14327
+ if (input.value !== formattedNextValue) {
14328
+ restoreInputValue(input, formattedNextValue);
14329
+ if (props.fixedDecimalScale && selectionStart !== null && selectionEnd !== null) input.setSelectionRange(getFormattedCaretPosition(inputValue, formattedNextValue, selectionStart), getFormattedCaretPosition(inputValue, formattedNextValue, selectionEnd));
14330
+ }
14303
14331
  scheduleCaretClamp(input);
14304
- commitValue(nextValue);
14332
+ if (!Object.is(nextValue, value.value)) commitValue(nextValue);
14305
14333
  }
14306
14334
  function onKeydown(event) {
14335
+ const input = event.currentTarget;
14336
+ if (event.key === "Backspace" && !props.readOnly && !props.disabled && input.selectionStart !== null && input.selectionStart === input.selectionEnd) {
14337
+ if (input.selectionStart === 0) event.preventDefault();
14338
+ else if (props.fixedDecimalScale && typeof props.decimalScale === "number") {
14339
+ const decimalPosition = input.value.indexOf(props.decimalSeparator);
14340
+ const isAfterDecimalSeparator = input.value[input.selectionStart - 1] === props.decimalSeparator;
14341
+ const deletePosition = input.selectionStart - (isAfterDecimalSeparator ? 2 : 1);
14342
+ if (deletePosition >= 0 && deletePosition < decimalPosition) {
14343
+ const nextInputValue = input.value.slice(0, deletePosition) + input.value.slice(deletePosition + 1);
14344
+ const unformattedValue = stripFormatting(nextInputValue, formatterOptions.value);
14345
+ const [integerPart, decimalPart = ""] = (unformattedValue.startsWith("-") ? unformattedValue.slice(1) : unformattedValue).split(".");
14346
+ if (!/\d/.test(integerPart) && /^0*$/.test(decimalPart)) {
14347
+ event.preventDefault();
14348
+ input.value = "";
14349
+ input.setSelectionRange(0, 0);
14350
+ input.dispatchEvent(new Event("input", { bubbles: true }));
14351
+ } else if (isAfterDecimalSeparator) {
14352
+ event.preventDefault();
14353
+ input.value = nextInputValue;
14354
+ input.setSelectionRange(deletePosition, deletePosition);
14355
+ input.dispatchEvent(new Event("input", { bubbles: true }));
14356
+ }
14357
+ }
14358
+ }
14359
+ }
14307
14360
  if (!props.readOnly && props.withKeyboardEvents && event.key === "ArrowUp") {
14308
14361
  event.preventDefault();
14309
14362
  stepValue(1);
@@ -14312,7 +14365,7 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14312
14365
  event.preventDefault();
14313
14366
  stepValue(-1);
14314
14367
  }
14315
- scheduleCaretClamp(event.currentTarget);
14368
+ scheduleCaretClamp(input);
14316
14369
  }
14317
14370
  function onKeyup(event) {
14318
14371
  scheduleCaretClamp(event.currentTarget);
@@ -14321,12 +14374,10 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14321
14374
  scheduleCaretClamp(event.currentTarget);
14322
14375
  }
14323
14376
  function onFocus(event) {
14324
- isEditing.value = true;
14325
- if (props.selectAllOnFocus) setTimeout(() => event.currentTarget.select(), 0);
14377
+ if (props.selectAllOnFocus) window.setTimeout(() => inputRef.value?.select(), 0);
14326
14378
  else scheduleCaretClamp(event.currentTarget);
14327
14379
  }
14328
14380
  function onBlur() {
14329
- isEditing.value = false;
14330
14381
  let sanitizedValue = value.value;
14331
14382
  const min = typeof props.min === "number" ? props.min : void 0;
14332
14383
  const max = typeof props.max === "number" ? props.max : void 0;
@@ -14425,7 +14476,7 @@ var NumberInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14425
14476
  var Group_module_default = { root: "_root_7pazr_1" };
14426
14477
  //#endregion
14427
14478
  //#region src/components/Group/Group.vue?vue&type=script&setup=true&lang.ts
14428
- var defaultProps$29 = {
14479
+ var defaultProps$30 = {
14429
14480
  preventGrowOverflow: true,
14430
14481
  gap: "md",
14431
14482
  align: "center",
@@ -14465,7 +14516,7 @@ var Group = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14465
14516
  const rawProps = __props;
14466
14517
  const attrs = (0, vue.useAttrs)();
14467
14518
  const slots = (0, vue.useSlots)();
14468
- const props = useProps("Group", defaultProps$29, rawProps);
14519
+ const props = useProps("Group", defaultProps$30, rawProps);
14469
14520
  const rootElement = (0, vue.ref)(null);
14470
14521
  const setRootRef = (node) => {
14471
14522
  rootElement.value = node;
@@ -14544,7 +14595,7 @@ var regex = {
14544
14595
  number: /^[0-9]+$/,
14545
14596
  alphanumeric: /^[a-zA-Z0-9]+$/i
14546
14597
  };
14547
- var defaultProps$28 = {
14598
+ var defaultProps$29 = {
14548
14599
  gap: "sm",
14549
14600
  length: 4,
14550
14601
  manageFocus: true,
@@ -14637,13 +14688,13 @@ var PinInput = factory(/* @__PURE__ */ (0, vue.defineComponent)({
14637
14688
  const rawProps = __props;
14638
14689
  const emit = __emit;
14639
14690
  const attrs = (0, vue.useAttrs)();
14640
- const props = useProps("PinInput", defaultProps$28, rawProps);
14691
+ const props = useProps("PinInput", defaultProps$29, rawProps);
14641
14692
  const uuid = (0, _mantine_vue_hooks.useId)(props.id);
14642
14693
  const focusedIndex = (0, vue.ref)(-1);
14643
14694
  const inputsRef = (0, vue.ref)([]);
14644
14695
  /** Guards `onComplete` so it fires once per completion, not on every keystroke after. */
14645
14696
  const completed = (0, vue.ref)(false);
14646
- const currentLength = (0, vue.computed)(() => props.length ?? defaultProps$28.length);
14697
+ const currentLength = (0, vue.computed)(() => props.length ?? defaultProps$29.length);
14647
14698
  const getStyles = useStyles({
14648
14699
  name: "PinInput",
14649
14700
  classes: PinInput_module_default,
@@ -14961,7 +15012,7 @@ var NativeSelectChevron_default = /* @__PURE__ */ (0, vue.defineComponent)({
14961
15012
  });
14962
15013
  //#endregion
14963
15014
  //#region src/components/NativeSelect/NativeSelect.vue?vue&type=script&setup=true&lang.ts
14964
- var defaultProps$27 = {
15015
+ var defaultProps$28 = {
14965
15016
  size: "sm",
14966
15017
  rightSectionPointerEvents: "none"
14967
15018
  };
@@ -15053,7 +15104,7 @@ var NativeSelect = factory(/* @__PURE__ */ (0, vue.defineComponent)({
15053
15104
  const emit = __emit;
15054
15105
  const slots = (0, vue.useSlots)();
15055
15106
  const attrs = (0, vue.useAttrs)();
15056
- const props = useProps("NativeSelect", defaultProps$27, rawProps);
15107
+ const props = useProps("NativeSelect", defaultProps$28, rawProps);
15057
15108
  /**
15058
15109
  * `option` and `optgroup` trees are built with `h` because they are generated from
15059
15110
  * data, not written in the template.
@@ -15425,7 +15476,7 @@ var varsResolver$36 = createVarsResolver((_, { duration, gap, repeat, fadeEdgeCo
15425
15476
  "--marquee-fade-color": fadeEdgeColor,
15426
15477
  "--marquee-fade-size": fadeEdgeSize
15427
15478
  } }));
15428
- var defaultProps$26 = {
15479
+ var defaultProps$27 = {
15429
15480
  repeat: 4,
15430
15481
  duration: 1e5,
15431
15482
  orientation: "horizontal",
@@ -15472,7 +15523,7 @@ var Marquee = factory(/* @__PURE__ */ (0, vue.defineComponent)({
15472
15523
  setup(__props, { expose: __expose }) {
15473
15524
  const rawProps = __props;
15474
15525
  const attrs = (0, vue.useAttrs)();
15475
- const props = useProps("Marquee", defaultProps$26, rawProps);
15526
+ const props = useProps("Marquee", defaultProps$27, rawProps);
15476
15527
  const getStyles = useStyles({
15477
15528
  name: "Marquee",
15478
15529
  props,
@@ -15518,7 +15569,7 @@ var Marquee = factory(/* @__PURE__ */ (0, vue.defineComponent)({
15518
15569
  var Affix_module_default = { root: "_root_rcum7_1" };
15519
15570
  //#endregion
15520
15571
  //#region src/components/Affix/Affix.vue?vue&type=script&setup=true&lang.ts
15521
- var defaultProps$25 = {
15572
+ var defaultProps$26 = {
15522
15573
  position: {
15523
15574
  bottom: 0,
15524
15575
  right: 0
@@ -15559,7 +15610,7 @@ var Affix = factory(/* @__PURE__ */ (0, vue.defineComponent)({
15559
15610
  setup(__props, { expose: __expose }) {
15560
15611
  const rawProps = __props;
15561
15612
  const attrs = (0, vue.useAttrs)();
15562
- const props = useProps("Affix", defaultProps$25, rawProps);
15613
+ const props = useProps("Affix", defaultProps$26, rawProps);
15563
15614
  const getStyles = useStyles({
15564
15615
  name: "Affix",
15565
15616
  props,
@@ -15605,7 +15656,7 @@ var Dialog_module_default = {
15605
15656
  //#endregion
15606
15657
  //#region src/components/Dialog/Dialog.vue?vue&type=script&setup=true&lang.ts
15607
15658
  var varsResolver$34 = createVarsResolver((_, { size }) => ({ root: { "--dialog-size": getSize(size, "dialog-size") } }));
15608
- var defaultProps$24 = {
15659
+ var defaultProps$25 = {
15609
15660
  shadow: "md",
15610
15661
  p: "md",
15611
15662
  withBorder: true,
@@ -15663,7 +15714,7 @@ var Dialog = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
15663
15714
  const rawProps = __props;
15664
15715
  const emit = __emit;
15665
15716
  const attrs = (0, vue.useAttrs)();
15666
- const props = useProps("Dialog", defaultProps$24, rawProps);
15717
+ const props = useProps("Dialog", defaultProps$25, rawProps);
15667
15718
  const env = useMantineEnv();
15668
15719
  const getStyles = useStyles({
15669
15720
  name: "Dialog",
@@ -15918,7 +15969,7 @@ function clamp$2(value, min, max) {
15918
15969
  return Math.min(max, Math.max(min, value));
15919
15970
  }
15920
15971
  /** `getSymbolLabel` is a function default, so it is resolved by `useProps`. */
15921
- var defaultProps$23 = {
15972
+ var defaultProps$24 = {
15922
15973
  size: "sm",
15923
15974
  getSymbolLabel: (value) => `${value}`,
15924
15975
  count: 5,
@@ -16000,7 +16051,7 @@ var Rating = factory(/* @__PURE__ */ (0, vue.defineComponent)({
16000
16051
  const emit = __emit;
16001
16052
  const slots = (0, vue.useSlots)();
16002
16053
  const attrs = (0, vue.useAttrs)();
16003
- const props = useProps("Rating", defaultProps$23, rawProps);
16054
+ const props = useProps("Rating", defaultProps$24, rawProps);
16004
16055
  const rootRef = (0, vue.ref)(null);
16005
16056
  const hovered = (0, vue.ref)(-1);
16006
16057
  const isOutside = (0, vue.ref)(true);
@@ -16032,9 +16083,9 @@ var Rating = factory(/* @__PURE__ */ (0, vue.defineComponent)({
16032
16083
  /** A scoped slot is exposed to `RatingItem` as a function of the item value. The slot takes precedence over the prop. */
16033
16084
  const emptySymbol = (0, vue.computed)(() => (slots.emptySymbol ? (value) => slots.emptySymbol({ value }) : void 0) ?? props.emptySymbol);
16034
16085
  const fullSymbol = (0, vue.computed)(() => (slots.fullSymbol ? (value) => slots.fullSymbol({ value }) : void 0) ?? props.fullSymbol);
16035
- const count = (0, vue.computed)(() => Math.max(0, Math.floor(props.count ?? defaultProps$23.count)));
16086
+ const count = (0, vue.computed)(() => Math.max(0, Math.floor(props.count ?? defaultProps$24.count)));
16036
16087
  const fractions = (0, vue.computed)(() => {
16037
- const value = Math.floor(props.fractions ?? defaultProps$23.fractions);
16088
+ const value = Math.floor(props.fractions ?? defaultProps$24.fractions);
16038
16089
  if (value < 0) throw new Error("Rating fractions cannot be negative");
16039
16090
  return value;
16040
16091
  });
@@ -16185,13 +16236,15 @@ function useFloatingIndicator({ target, parent, floatingRef, displayAfterTransit
16185
16236
  if (!targetElement || !parentElement || !floatingElement || typeof window === "undefined") return;
16186
16237
  const targetRect = targetElement.getBoundingClientRect();
16187
16238
  const parentRect = parentElement.getBoundingClientRect();
16239
+ const scaleX = parentElement.offsetWidth === 0 ? 1 : parentRect.width / parentElement.offsetWidth;
16240
+ const scaleY = parentElement.offsetHeight === 0 ? 1 : parentRect.height / parentElement.offsetHeight;
16188
16241
  const targetStyle = window.getComputedStyle(targetElement);
16189
16242
  const parentStyle = window.getComputedStyle(parentElement);
16190
16243
  const borderTopWidth = toNumber(targetStyle.borderTopWidth) + toNumber(parentStyle.borderTopWidth);
16191
16244
  const borderLeftWidth = toNumber(targetStyle.borderLeftWidth) + toNumber(parentStyle.borderLeftWidth);
16192
- floatingElement.style.transform = `translateY(${targetRect.top - parentRect.top - borderTopWidth}px) translateX(${targetRect.left - parentRect.left - borderLeftWidth}px)`;
16193
- floatingElement.style.width = `${targetRect.width}px`;
16194
- floatingElement.style.height = `${targetRect.height}px`;
16245
+ floatingElement.style.transform = `translateY(${(targetRect.top - parentRect.top) / scaleY - borderTopWidth}px) translateX(${(targetRect.left - parentRect.left) / scaleX - borderLeftWidth}px)`;
16246
+ floatingElement.style.width = `${targetRect.width / scaleX}px`;
16247
+ floatingElement.style.height = `${targetRect.height / scaleY}px`;
16195
16248
  };
16196
16249
  const updatePositionWithoutAnimation = () => {
16197
16250
  if (transitionTimeout) clearTimeout(transitionTimeout);
@@ -17160,7 +17213,7 @@ var PaginationLabel = factory(/* @__PURE__ */ (0, vue.defineComponent)({
17160
17213
  }));
17161
17214
  //#endregion
17162
17215
  //#region src/components/Pagination/PaginationRoot/PaginationRoot.vue?vue&type=script&setup=true&lang.ts
17163
- var defaultProps$22 = {
17216
+ var defaultProps$23 = {
17164
17217
  siblings: 1,
17165
17218
  boundaries: 1,
17166
17219
  size: "md",
@@ -17224,7 +17277,7 @@ var PaginationRoot = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
17224
17277
  const rawProps = __props;
17225
17278
  const emit = __emit;
17226
17279
  const attrs = (0, vue.useAttrs)();
17227
- const props = useProps("PaginationRoot", defaultProps$22, rawProps);
17280
+ const props = useProps("PaginationRoot", defaultProps$23, rawProps);
17228
17281
  const pagination = (0, _mantine_vue_hooks.usePagination)({
17229
17282
  total: () => props.total,
17230
17283
  page: () => props.modelValue,
@@ -17289,7 +17342,7 @@ var PaginationRoot = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
17289
17342
  });
17290
17343
  //#endregion
17291
17344
  //#region src/components/Pagination/Pagination.vue?vue&type=script&setup=true&lang.ts
17292
- var defaultProps$21 = {
17345
+ var defaultProps$22 = {
17293
17346
  withControls: true,
17294
17347
  withPages: true,
17295
17348
  siblings: 1,
@@ -17351,7 +17404,7 @@ var Pagination = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
17351
17404
  const rawProps = __props;
17352
17405
  const emit = __emit;
17353
17406
  const attrs = (0, vue.useAttrs)();
17354
- const props = useProps("Pagination", defaultProps$21, rawProps);
17407
+ const props = useProps("Pagination", defaultProps$22, rawProps);
17355
17408
  const visible = (0, vue.computed)(() => props.total > 0 && !(props.hideWithOnePage && props.total === 1));
17356
17409
  /** The responsive layout collapses the page list into a "n of m" label. */
17357
17410
  const isResponsive = (0, vue.computed)(() => props.withPages && props.layout === "responsive");
@@ -17429,7 +17482,7 @@ var Tabs_module_default = {
17429
17482
  };
17430
17483
  //#endregion
17431
17484
  //#region src/components/Tabs/Tabs.vue?vue&type=script&setup=true&lang.ts
17432
- var defaultProps$20 = {
17485
+ var defaultProps$21 = {
17433
17486
  keepMounted: true,
17434
17487
  orientation: "horizontal",
17435
17488
  loop: true,
@@ -17511,7 +17564,7 @@ var Tabs_default = /* @__PURE__ */ (0, vue.defineComponent)({
17511
17564
  const rawProps = __props;
17512
17565
  const emit = __emit;
17513
17566
  const attrs = (0, vue.useAttrs)();
17514
- const props = useProps("Tabs", defaultProps$20, rawProps);
17567
+ const props = useProps("Tabs", defaultProps$21, rawProps);
17515
17568
  const uid = (0, _mantine_vue_hooks.useId)(props.id);
17516
17569
  const [currentTab, setCurrentTab] = (0, _mantine_vue_hooks.useUncontrolled)({
17517
17570
  value: () => props.modelValue,
@@ -17894,6 +17947,215 @@ var Tabs = Object.assign(Tabs_default, {
17894
17947
  List: TabsList
17895
17948
  });
17896
17949
  //#endregion
17950
+ //#region src/components/ActionBar/ActionBar.context.ts
17951
+ var [provideActionBarContext, useActionBarContext] = createSafeContext("ActionBar component was not found in tree");
17952
+ //#endregion
17953
+ //#region src/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.ts
17954
+ var ActionBarCloseButton = /* @__PURE__ */ (0, vue.defineComponent)({
17955
+ name: "ActionBarCloseButton",
17956
+ inheritAttrs: false,
17957
+ __name: "ActionBarCloseButton",
17958
+ props: { unstyled: { type: Boolean } },
17959
+ setup(__props) {
17960
+ const props = __props;
17961
+ const attrs = (0, vue.useAttrs)();
17962
+ const ctx = useActionBarContext();
17963
+ return (_ctx, _cache) => {
17964
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CloseButton), (0, vue.mergeProps)({
17965
+ ...(0, vue.unref)(attrs),
17966
+ ...(0, vue.unref)(ctx).getStyles("closeButton"),
17967
+ ...props
17968
+ }, {
17969
+ unstyled: props.unstyled ?? (0, vue.unref)(ctx).unstyled,
17970
+ onClick: (0, vue.unref)(ctx).close
17971
+ }), null, 16, ["unstyled", "onClick"]);
17972
+ };
17973
+ }
17974
+ });
17975
+ //#endregion
17976
+ //#region src/components/ActionBar/ActionBarDivider/ActionBarDivider.ts
17977
+ var ActionBarDivider = /* @__PURE__ */ (0, vue.defineComponent)({
17978
+ name: "ActionBarDivider",
17979
+ inheritAttrs: false,
17980
+ __name: "ActionBarDivider",
17981
+ setup(__props) {
17982
+ const attrs = (0, vue.useAttrs)();
17983
+ const ctx = useActionBarContext();
17984
+ return (_ctx, _cache) => {
17985
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(Box), (0, vue.mergeProps)({
17986
+ ...(0, vue.unref)(attrs),
17987
+ ...(0, vue.unref)(ctx).getStyles("divider")
17988
+ }, {
17989
+ role: (0, vue.unref)(attrs).role || "separator",
17990
+ "aria-orientation": (0, vue.unref)(attrs)["aria-orientation"] || "vertical"
17991
+ }), null, 16, ["role", "aria-orientation"]);
17992
+ };
17993
+ }
17994
+ });
17995
+ var ActionBar_module_default = {
17996
+ root: "_root_1wjjt_1",
17997
+ divider: "_divider_1wjjt_9"
17998
+ };
17999
+ //#endregion
18000
+ //#region src/components/ActionBar/ActionBar.vue?vue&type=script&setup=true&lang.ts
18001
+ var defaultProps$20 = {
18002
+ withBorder: true,
18003
+ py: "xs",
18004
+ px: "sm",
18005
+ position: {
18006
+ bottom: 30,
18007
+ left: 0,
18008
+ right: 0
18009
+ },
18010
+ transitionProps: {
18011
+ transition: "pop",
18012
+ duration: 200
18013
+ },
18014
+ closeOnEscape: false,
18015
+ withinPortal: true,
18016
+ zIndex: getDefaultZIndex("modal")
18017
+ };
18018
+ //#endregion
18019
+ //#region src/components/ActionBar/ActionBar.ts
18020
+ var ActionBar = factory(/* @__PURE__ */ (0, vue.defineComponent)({
18021
+ name: "ActionBar",
18022
+ inheritAttrs: false,
18023
+ __name: "ActionBar",
18024
+ props: {
18025
+ rootRef: {
18026
+ type: [Object, Function],
18027
+ default: void 0
18028
+ },
18029
+ opened: { type: Boolean },
18030
+ transitionProps: { default: void 0 },
18031
+ shadow: { default: void 0 },
18032
+ radius: { default: void 0 },
18033
+ withBorder: {
18034
+ type: Boolean,
18035
+ default: void 0
18036
+ },
18037
+ py: { default: void 0 },
18038
+ px: { default: void 0 },
18039
+ position: { default: void 0 },
18040
+ zIndex: { default: void 0 },
18041
+ withinPortal: {
18042
+ type: Boolean,
18043
+ default: void 0
18044
+ },
18045
+ portalProps: { default: void 0 },
18046
+ closeOnEscape: {
18047
+ type: Boolean,
18048
+ default: void 0
18049
+ },
18050
+ keepMounted: {
18051
+ type: Boolean,
18052
+ default: false
18053
+ },
18054
+ classNames: { default: void 0 },
18055
+ styles: { default: void 0 },
18056
+ vars: { default: void 0 },
18057
+ unstyled: {
18058
+ type: Boolean,
18059
+ default: false
18060
+ }
18061
+ },
18062
+ emits: ["close", "update:opened"],
18063
+ setup(__props, { expose: __expose, emit: __emit }) {
18064
+ const rawProps = __props;
18065
+ const emit = __emit;
18066
+ const attrs = (0, vue.useAttrs)();
18067
+ const props = useProps("ActionBar", defaultProps$20, rawProps);
18068
+ const getStyles = useStyles({
18069
+ name: "ActionBar",
18070
+ classes: ActionBar_module_default,
18071
+ props,
18072
+ className: attrs.class,
18073
+ style: attrs.style,
18074
+ classNames: props.classNames,
18075
+ styles: props.styles,
18076
+ vars: props.vars,
18077
+ unstyled: props.unstyled
18078
+ });
18079
+ provideActionBarContext({
18080
+ getStyles,
18081
+ close: handleClose,
18082
+ get unstyled() {
18083
+ return props.unstyled;
18084
+ }
18085
+ });
18086
+ function handleClose() {
18087
+ emit("update:opened", false);
18088
+ emit("close");
18089
+ }
18090
+ function handleKeydown(event) {
18091
+ if (event.key === "Escape" && !event.isComposing) handleClose();
18092
+ }
18093
+ (0, vue.watchEffect)((onCleanup) => {
18094
+ if (!props.closeOnEscape || !props.opened || typeof window === "undefined") return;
18095
+ window.addEventListener("keydown", handleKeydown, { passive: true });
18096
+ onCleanup(() => window.removeEventListener("keydown", handleKeydown));
18097
+ });
18098
+ (0, vue.onBeforeUnmount)(() => {
18099
+ if (typeof window !== "undefined") window.removeEventListener("keydown", handleKeydown);
18100
+ });
18101
+ const rootElement = (0, vue.ref)(null);
18102
+ const setRootRef = (node) => {
18103
+ rootElement.value = node;
18104
+ (0, _mantine_vue_hooks.assignRef)(props.rootRef, node);
18105
+ };
18106
+ __expose({ rootElement });
18107
+ return (_ctx, _cache) => {
18108
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(Affix), {
18109
+ "z-index": (0, vue.unref)(props).zIndex,
18110
+ position: (0, vue.unref)(props).position,
18111
+ "within-portal": (0, vue.unref)(props).withinPortal,
18112
+ "portal-props": (0, vue.unref)(props).portalProps,
18113
+ unstyled: (0, vue.unref)(props).unstyled
18114
+ }, {
18115
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Transition), (0, vue.mergeProps)((0, vue.unref)(props).transitionProps, {
18116
+ mounted: (0, vue.unref)(props).opened,
18117
+ "keep-mounted": (0, vue.unref)(props).keepMounted
18118
+ }), {
18119
+ default: (0, vue.withCtx)((transitionStyles) => [(0, vue.createVNode)((0, vue.unref)(Paper), (0, vue.mergeProps)({ "root-ref": setRootRef }, {
18120
+ ...(0, vue.unref)(attrs),
18121
+ ...(0, vue.unref)(getStyles)("root", { style: transitionStyles })
18122
+ }, {
18123
+ role: "group",
18124
+ shadow: (0, vue.unref)(props).shadow,
18125
+ radius: (0, vue.unref)(props).radius,
18126
+ "with-border": (0, vue.unref)(props).withBorder,
18127
+ py: (0, vue.unref)(props).py,
18128
+ px: (0, vue.unref)(props).px,
18129
+ unstyled: (0, vue.unref)(props).unstyled
18130
+ }), {
18131
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
18132
+ _: 3
18133
+ }, 16, [
18134
+ "shadow",
18135
+ "radius",
18136
+ "with-border",
18137
+ "py",
18138
+ "px",
18139
+ "unstyled"
18140
+ ])]),
18141
+ _: 3
18142
+ }, 16, ["mounted", "keep-mounted"])]),
18143
+ _: 3
18144
+ }, 8, [
18145
+ "z-index",
18146
+ "position",
18147
+ "within-portal",
18148
+ "portal-props",
18149
+ "unstyled"
18150
+ ]);
18151
+ };
18152
+ }
18153
+ }), {
18154
+ classes: ActionBar_module_default,
18155
+ Divider: ActionBarDivider,
18156
+ CloseButton: ActionBarCloseButton
18157
+ });
18158
+ //#endregion
17897
18159
  //#region src/components/Textarea/autosize-utils.ts
17898
18160
  /**
17899
18161
  * Uses a shared hidden <textarea> to measure row height and calculate
@@ -18505,7 +18767,8 @@ var varsResolver$28 = createVarsResolver((_, { size }) => ({ root: {
18505
18767
  } }));
18506
18768
  var defaultProps$19 = {
18507
18769
  variant: "default",
18508
- size: "sm"
18770
+ size: "sm",
18771
+ visibilityToggleFocusable: false
18509
18772
  };
18510
18773
  //#endregion
18511
18774
  //#region src/components/PasswordInput/PasswordInput.ts
@@ -18518,6 +18781,7 @@ var PasswordInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
18518
18781
  defaultValue: {},
18519
18782
  visibilityToggleIcon: {},
18520
18783
  visibilityToggleButtonProps: {},
18784
+ visibilityToggleFocusable: { type: Boolean },
18521
18785
  visible: {
18522
18786
  type: Boolean,
18523
18787
  default: void 0
@@ -18691,7 +18955,7 @@ var PasswordInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
18691
18955
  disabled: props.disabled,
18692
18956
  radius: props.radius,
18693
18957
  "aria-pressed": visible.value,
18694
- tabIndex: -1,
18958
+ tabIndex: props.visibilityToggleFocusable ? 0 : -1,
18695
18959
  "aria-label": props.visibilityToggleButtonProps?.["aria-label"] || "Toggle password visibility",
18696
18960
  variant: props.visibilityToggleButtonProps?.variant ?? "subtle",
18697
18961
  color: "gray",
@@ -18708,7 +18972,7 @@ var PasswordInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
18708
18972
  },
18709
18973
  onKeydown: (event) => {
18710
18974
  props.visibilityToggleButtonProps?.onKeydown?.(event);
18711
- if (event.key === " ") {
18975
+ if (event.key === " " || event.key === "Enter") {
18712
18976
  event.preventDefault();
18713
18977
  toggleVisibility();
18714
18978
  }
@@ -19251,6 +19515,7 @@ var CheckboxCard = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19251
19515
  type: Boolean,
19252
19516
  default: void 0
19253
19517
  },
19518
+ indeterminate: { type: Boolean },
19254
19519
  withBorder: {
19255
19520
  type: Boolean,
19256
19521
  default: true
@@ -19299,9 +19564,14 @@ var CheckboxCard = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19299
19564
  varsResolver: varsResolver$27
19300
19565
  });
19301
19566
  /** Getter keeps the provided object reactive without changing the shape consumers read. */
19302
- (0, vue.provide)(CheckboxCardContextKey, { get checked() {
19303
- return checked.value;
19304
- } });
19567
+ (0, vue.provide)(CheckboxCardContextKey, {
19568
+ get checked() {
19569
+ return checked.value;
19570
+ },
19571
+ get indeterminate() {
19572
+ return props.indeterminate;
19573
+ }
19574
+ });
19305
19575
  const cardStyles = (0, vue.computed)(() => getStyles("card", {
19306
19576
  className: attrs.class,
19307
19577
  style: attrs.style
@@ -19330,10 +19600,11 @@ var CheckboxCard = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19330
19600
  "__static-selector": "CheckboxCard",
19331
19601
  mod: [{
19332
19602
  "with-border": props.withBorder,
19333
- checked: (0, vue.unref)(checked)
19603
+ checked: (0, vue.unref)(checked),
19604
+ indeterminate: props.indeterminate
19334
19605
  }, props.mod],
19335
19606
  role: "checkbox",
19336
- "aria-checked": (0, vue.unref)(checked),
19607
+ "aria-checked": props.indeterminate ? "mixed" : (0, vue.unref)(checked),
19337
19608
  onClick
19338
19609
  }), {
19339
19610
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
@@ -19439,7 +19710,10 @@ var CheckboxIndicator = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19439
19710
  type: Boolean,
19440
19711
  default: void 0
19441
19712
  },
19442
- indeterminate: { type: Boolean },
19713
+ indeterminate: {
19714
+ type: Boolean,
19715
+ default: void 0
19716
+ },
19443
19717
  icon: { default: void 0 },
19444
19718
  checked: {
19445
19719
  type: Boolean,
@@ -19470,7 +19744,8 @@ var CheckboxIndicator = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19470
19744
  varsResolver: varsResolver$26
19471
19745
  });
19472
19746
  const iconStyles = (0, vue.computed)(() => getStyles("icon"));
19473
- const checked = (0, vue.computed)(() => typeof props.checked === "boolean" || props.indeterminate ? props.checked || props.indeterminate : cardContext?.checked || false);
19747
+ const indeterminate = (0, vue.computed)(() => typeof props.indeterminate === "boolean" ? props.indeterminate : cardContext?.indeterminate);
19748
+ const checked = (0, vue.computed)(() => typeof props.checked === "boolean" || typeof props.indeterminate === "boolean" ? props.checked || props.indeterminate : cardContext?.checked || cardContext?.indeterminate || false);
19474
19749
  const rootElement = (0, vue.ref)(null);
19475
19750
  const setRootRef = (node) => {
19476
19751
  rootElement.value = node;
@@ -19488,14 +19763,14 @@ var CheckboxIndicator = factory(/* @__PURE__ */ (0, vue.defineComponent)({
19488
19763
  variant: props.variant,
19489
19764
  mod: [{
19490
19765
  checked: checked.value,
19491
- indeterminate: props.indeterminate,
19766
+ indeterminate: indeterminate.value,
19492
19767
  disabled: props.disabled
19493
19768
  }, props.mod]
19494
19769
  }), {
19495
19770
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", (0, vue.normalizeProps)((0, vue.guardReactiveProps)({
19496
- indeterminate: props.indeterminate,
19771
+ indeterminate: indeterminate.value,
19497
19772
  ...iconStyles.value
19498
- })), () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(props.icon || (0, vue.unref)(CheckboxIcon_default)), (0, vue.mergeProps)(iconStyles.value, { indeterminate: props.indeterminate }), null, 16, ["indeterminate"]))])]),
19773
+ })), () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(props.icon || (0, vue.unref)(CheckboxIcon_default)), (0, vue.mergeProps)(iconStyles.value, { indeterminate: indeterminate.value }), null, 16, ["indeterminate"]))])]),
19499
19774
  _: 3
19500
19775
  }, 16, ["variant", "mod"]);
19501
19776
  };
@@ -22024,27 +22299,28 @@ var StepperCompleted = /* @__PURE__ */ (0, vue.defineComponent)({
22024
22299
  }
22025
22300
  });
22026
22301
  var Stepper_module_default = {
22027
- root: "_root_yawst_1",
22028
- steps: "_steps_yawst_25",
22029
- separator: "_separator_yawst_47",
22030
- content: "_content_yawst_57",
22031
- step: "_step_yawst_25",
22032
- "step--horizontal": "_step--horizontal_yawst_75",
22033
- "step--vertical": "_step--vertical_yawst_78",
22034
- verticalSeparator: "_verticalSeparator_yawst_91",
22035
- stepWrapper: "_stepWrapper_yawst_95",
22036
- stepIcon: "_stepIcon_yawst_109",
22037
- stepIconContent: "_stepIconContent_yawst_144",
22038
- stepCompletedIcon: "_stepCompletedIcon_yawst_147",
22039
- stepBody: "_stepBody_yawst_155",
22040
- stepLabel: "_stepLabel_yawst_166",
22041
- stepDescription: "_stepDescription_yawst_171"
22302
+ root: "_root_1g4m5_1",
22303
+ steps: "_steps_1g4m5_25",
22304
+ separator: "_separator_1g4m5_50",
22305
+ content: "_content_1g4m5_63",
22306
+ step: "_step_1g4m5_25",
22307
+ "step--horizontal": "_step--horizontal_1g4m5_91",
22308
+ "step--vertical": "_step--vertical_1g4m5_94",
22309
+ verticalSeparator: "_verticalSeparator_1g4m5_107",
22310
+ stepWrapper: "_stepWrapper_1g4m5_111",
22311
+ stepIcon: "_stepIcon_1g4m5_125",
22312
+ stepIconContent: "_stepIconContent_1g4m5_160",
22313
+ stepCompletedIcon: "_stepCompletedIcon_1g4m5_163",
22314
+ stepBody: "_stepBody_1g4m5_171",
22315
+ stepLabel: "_stepLabel_1g4m5_187",
22316
+ stepDescription: "_stepDescription_1g4m5_192"
22042
22317
  };
22043
22318
  //#endregion
22044
22319
  //#region src/components/Stepper/Stepper.vue?vue&type=script&setup=true&lang.ts
22045
22320
  var defaultProps$11 = {
22046
22321
  orientation: "horizontal",
22047
22322
  iconPosition: "left",
22323
+ labelPosition: "right",
22048
22324
  allowNextStepsSelect: true,
22049
22325
  wrap: true
22050
22326
  };
@@ -22127,6 +22403,7 @@ var Stepper_default = /* @__PURE__ */ (0, vue.defineComponent)({
22127
22403
  contentPadding: {},
22128
22404
  orientation: {},
22129
22405
  iconPosition: {},
22406
+ labelPosition: {},
22130
22407
  size: {},
22131
22408
  radius: {},
22132
22409
  allowNextStepsSelect: {
@@ -22180,6 +22457,9 @@ var Stepper_default = /* @__PURE__ */ (0, vue.defineComponent)({
22180
22457
  },
22181
22458
  get iconPosition() {
22182
22459
  return props.iconPosition;
22460
+ },
22461
+ get labelPosition() {
22462
+ return props.orientation === "vertical" ? void 0 : props.labelPosition;
22183
22463
  }
22184
22464
  });
22185
22465
  const rootStyles = (0, vue.computed)(() => getStyles("root", {
@@ -22189,6 +22469,7 @@ var Stepper_default = /* @__PURE__ */ (0, vue.defineComponent)({
22189
22469
  const stepsMod = (0, vue.computed)(() => ({
22190
22470
  orientation: props.orientation,
22191
22471
  iconPosition: props.iconPosition,
22472
+ labelPosition: props.orientation === "vertical" ? void 0 : props.labelPosition,
22192
22473
  wrap: props.wrap && props.orientation !== "vertical"
22193
22474
  }));
22194
22475
  /** Splits the default slot into the steps and the optional completed node. */
@@ -22448,7 +22729,8 @@ var StepperStep = factory(/* @__PURE__ */ (0, vue.defineComponent)({
22448
22729
  }, {
22449
22730
  mod: [{
22450
22731
  iconPosition: iconPosition.value,
22451
- allowClick: (0, vue.unref)(props).allowStepClick
22732
+ allowClick: (0, vue.unref)(props).allowStepClick,
22733
+ labelPosition: (0, vue.unref)(ctx).labelPosition
22452
22734
  }, (0, vue.unref)(props).mod],
22453
22735
  style: rootStyle.value,
22454
22736
  tabindex: (0, vue.unref)(props).allowStepClick ? 0 : -1
@@ -30295,8 +30577,8 @@ function useTooltip(options) {
30295
30577
  };
30296
30578
  }
30297
30579
  var Tooltip_module_default = {
30298
- tooltip: "_tooltip_117du_1",
30299
- arrow: "_arrow_117du_30"
30580
+ tooltip: "_tooltip_1mme1_1",
30581
+ arrow: "_arrow_1mme1_34"
30300
30582
  };
30301
30583
  //#endregion
30302
30584
  //#region src/components/Tooltip/Tooltip.vue?vue&type=script&setup=true&lang.ts
@@ -30381,6 +30663,7 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30381
30663
  arrowPosition: {},
30382
30664
  transitionProps: {},
30383
30665
  events: {},
30666
+ interactive: { type: Boolean },
30384
30667
  inline: {
30385
30668
  type: Boolean,
30386
30669
  default: false
@@ -30438,6 +30721,16 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30438
30721
  const slots = (0, vue.useSlots)();
30439
30722
  const attrs = (0, vue.useAttrs)();
30440
30723
  const props = useProps("Tooltip", defaults$1, rawProps);
30724
+ let interactiveCloseTimer;
30725
+ const cancelInteractiveClose = () => {
30726
+ clearTimeout(interactiveCloseTimer);
30727
+ interactiveCloseTimer = void 0;
30728
+ };
30729
+ const closeFromPointer = () => {
30730
+ cancelInteractiveClose();
30731
+ if (props.interactive) interactiveCloseTimer = setTimeout(tooltip.close, 50);
30732
+ else tooltip.close();
30733
+ };
30441
30734
  const { dir } = useDirection();
30442
30735
  const tooltip = useTooltip({
30443
30736
  position: () => getFloatingPosition(dir.value, props.position ?? "top"),
@@ -30470,10 +30763,13 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30470
30763
  });
30471
30764
  const referenceHandlers = () => ({
30472
30765
  onMouseenter: () => {
30473
- if ((props.events ?? defaults$1.events).hover) tooltip.open();
30766
+ if ((props.events ?? defaults$1.events).hover) {
30767
+ cancelInteractiveClose();
30768
+ tooltip.open();
30769
+ }
30474
30770
  },
30475
30771
  onMouseleave: () => {
30476
- if ((props.events ?? defaults$1.events).hover) tooltip.close();
30772
+ if ((props.events ?? defaults$1.events).hover) closeFromPointer();
30477
30773
  },
30478
30774
  onFocus: () => {
30479
30775
  if ((props.events ?? defaults$1.events).focus) tooltip.open();
@@ -30507,7 +30803,10 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30507
30803
  external = null;
30508
30804
  }
30509
30805
  (0, vue.onMounted)(() => props.target && bindExternal());
30510
- (0, vue.onBeforeUnmount)(unbindExternal);
30806
+ (0, vue.onBeforeUnmount)(() => {
30807
+ cancelInteractiveClose();
30808
+ unbindExternal();
30809
+ });
30511
30810
  const arrowPosition = (0, vue.computed)(() => props.arrowPosition ?? "side");
30512
30811
  /** `merge` draws the arrow as part of the tooltip body, which needs extra styles. */
30513
30812
  const mergeStyles = (0, vue.computed)(() => arrowPosition.value === "merge" && props.withArrow ? getArrowMergeDropdownStyles({
@@ -30565,7 +30864,10 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30565
30864
  }, {
30566
30865
  role: "tooltip",
30567
30866
  "data-multiline": (0, vue.unref)(props).multiline || void 0,
30568
- "data-fixed": (0, vue.unref)(props).floatingStrategy === "fixed" || void 0
30867
+ "data-fixed": (0, vue.unref)(props).floatingStrategy === "fixed" || void 0,
30868
+ "data-interactive": (0, vue.unref)(props).interactive && mounted.value ? true : void 0,
30869
+ onMouseenter: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(props).interactive && (cancelInteractiveClose(), (0, vue.unref)(tooltip).open())),
30870
+ onMouseleave: _cache[1] || (_cache[1] = ($event) => (0, vue.unref)(props).interactive && closeFromPointer())
30569
30871
  }), {
30570
30872
  default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(renderLabel))), (0, vue.createVNode)((0, vue.unref)(FloatingArrow), (0, vue.mergeProps)({ ref: setArrow }, (0, vue.unref)(getStyles)("arrow"), {
30571
30873
  visible: (0, vue.unref)(props).withArrow,
@@ -30587,7 +30889,11 @@ var Tooltip_default = /* @__PURE__ */ (0, vue.defineComponent)({
30587
30889
  "arrow-y"
30588
30890
  ])]),
30589
30891
  _: 1
30590
- }, 16, ["data-multiline", "data-fixed"])]),
30892
+ }, 16, [
30893
+ "data-multiline",
30894
+ "data-fixed",
30895
+ "data-interactive"
30896
+ ])]),
30591
30897
  _: 1
30592
30898
  }, 16, ["mounted", "keep-mounted"])]),
30593
30899
  _: 1
@@ -30705,6 +31011,7 @@ var TooltipFloating_default = /* @__PURE__ */ (0, vue.defineComponent)({
30705
31011
  varsResolver: varsResolver$3
30706
31012
  });
30707
31013
  function move(event) {
31014
+ if (!Number.isFinite(event.clientX) || !Number.isFinite(event.clientY)) return;
30708
31015
  const valueOffset = props.offset ?? 10;
30709
31016
  const horizontal = state.placement.value.includes("right") ? valueOffset : state.placement.value.includes("left") ? -valueOffset : 0;
30710
31017
  const vertical = state.placement.value.includes("bottom") ? valueOffset : state.placement.value.includes("top") ? -valueOffset : 0;
@@ -30729,8 +31036,8 @@ var TooltipFloating_default = /* @__PURE__ */ (0, vue.defineComponent)({
30729
31036
  {
30730
31037
  zIndex: props.zIndex,
30731
31038
  display: !props.disabled && opened.value ? "block" : "none",
30732
- top: state.y.value == null ? "" : `${Math.round(state.y.value)}px`,
30733
- left: state.x.value == null ? "" : `${Math.round(state.x.value)}px`
31039
+ top: Number.isFinite(state.y.value) ? `${Math.round(state.y.value)}px` : "",
31040
+ left: Number.isFinite(state.x.value) ? `${Math.round(state.x.value)}px` : ""
30734
31041
  }
30735
31042
  ]);
30736
31043
  const label = (0, vue.computed)(() => resolveNode(props.label, slots.label));
@@ -33986,6 +34293,18 @@ function getOptionsLockup(options) {
33986
34293
  options.forEach((item) => isOptionsGroup(item) ? Object.assign(result, getOptionsLockup(item.items)) : result[String(item.value)] = item);
33987
34294
  return result;
33988
34295
  }
34296
+ /** Finds one enabled option by label, ignoring casing and surrounding whitespace. */
34297
+ function getOptionByLabel(optionsLockup, label) {
34298
+ const normalized = label.trim().toLowerCase();
34299
+ if (!normalized) return void 0;
34300
+ const matches = Object.values(optionsLockup).filter((option) => !option.disabled && option.label.trim().toLowerCase() === normalized);
34301
+ return matches.length === 1 ? matches[0] : void 0;
34302
+ }
34303
+ /** Detects browser autofill and extension writes, which occur without focusing the input. */
34304
+ function isExternalInputChange(event) {
34305
+ const target = event.currentTarget;
34306
+ return !!target && target.ownerDocument.activeElement !== target;
34307
+ }
33989
34308
  function defaultOptionsFilter({ options, search, limit }) {
33990
34309
  const query = search.trim().toLowerCase();
33991
34310
  const result = [];
@@ -35389,6 +35708,16 @@ var Select = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
35389
35708
  combobox.closeDropdown();
35390
35709
  }
35391
35710
  function onInput(event) {
35711
+ if (isExternalInputChange(event)) {
35712
+ if (!readOnly.value) {
35713
+ const option = getOptionByLabel(lockup.value, event.currentTarget.value);
35714
+ if (option && String(option.value) !== String(current())) {
35715
+ changeValue(option.value, option);
35716
+ if (!controlled()) internalSearch.value = option.label;
35717
+ }
35718
+ }
35719
+ return;
35720
+ }
35392
35721
  setSearch(event.currentTarget.value);
35393
35722
  combobox.openDropdown();
35394
35723
  }
@@ -35993,6 +36322,13 @@ var MultiSelect = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
35993
36322
  else combobox.toggleDropdown();
35994
36323
  }
35995
36324
  function onFieldInput(event) {
36325
+ if (isExternalInputChange(event)) {
36326
+ if (!readOnly.value) {
36327
+ const option = getOptionByLabel(lockup.value, event.currentTarget.value);
36328
+ if (option && !values.value.includes(option.value) && values.value.length < props.maxValues) setValue([...values.value, option.value]);
36329
+ }
36330
+ return;
36331
+ }
35996
36332
  setSearch(event.target.value);
35997
36333
  combobox.openDropdown();
35998
36334
  }
@@ -36397,6 +36733,7 @@ var TagsInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
36397
36733
  submit(lockup.value[raw]?.label ?? raw);
36398
36734
  }
36399
36735
  function onFieldInput(event) {
36736
+ if (isExternalInputChange(event)) return;
36400
36737
  const input = event.target.value;
36401
36738
  if (props.splitChars.some((char) => input.includes(char))) split(input);
36402
36739
  else setSearch(input);
@@ -36658,7 +36995,8 @@ var ColorInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
36658
36995
  default: true
36659
36996
  },
36660
36997
  swatches: {},
36661
- swatchesPerRow: { default: 7 }
36998
+ swatchesPerRow: { default: 7 },
36999
+ fullWidth: { type: Boolean }
36662
37000
  },
36663
37001
  emits: [
36664
37002
  "update:modelValue",
@@ -36769,6 +37107,7 @@ var ColorInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
36769
37107
  opened: opened.value,
36770
37108
  "with-roles": false,
36771
37109
  disabled: pickerDisabled.value,
37110
+ width: props.fullWidth ? "target" : void 0,
36772
37111
  "__static-selector": "ColorInput",
36773
37112
  "onUpdate:opened": onPopoverChange
36774
37113
  }), {
@@ -36835,6 +37174,7 @@ var ColorInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
36835
37174
  "with-picker": props.withPicker,
36836
37175
  focusable: false,
36837
37176
  size: (0, vue.unref)(attrs).size,
37177
+ "full-width": props.fullWidth,
36838
37178
  onChange: onPickerChange,
36839
37179
  onChangeEnd: onPickerChangeEnd,
36840
37180
  onColorSwatchClick
@@ -36844,12 +37184,17 @@ var ColorInput = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
36844
37184
  "swatches",
36845
37185
  "swatches-per-row",
36846
37186
  "with-picker",
36847
- "size"
37187
+ "size",
37188
+ "full-width"
36848
37189
  ])]),
36849
37190
  _: 1
36850
37191
  }, 8, ["class"])]),
36851
37192
  _: 3
36852
- }, 16, ["opened", "disabled"]);
37193
+ }, 16, [
37194
+ "opened",
37195
+ "disabled",
37196
+ "width"
37197
+ ]);
36853
37198
  };
36854
37199
  }
36855
37200
  }), { classes: {
@@ -37335,6 +37680,7 @@ var TreeSelect_default = /* @__PURE__ */ (0, vue.defineComponent)({
37335
37680
  disabled,
37336
37681
  placeholder: !hasValue ? attrs.placeholder : void 0,
37337
37682
  onInput: (event) => {
37683
+ if (isExternalInputChange(event)) return;
37338
37684
  setSearch(event.target.value);
37339
37685
  combobox.openDropdown();
37340
37686
  },
@@ -37376,6 +37722,7 @@ var TreeSelect_default = /* @__PURE__ */ (0, vue.defineComponent)({
37376
37722
  rightSection,
37377
37723
  rightSectionPointerEvents: canClear ? "all" : "none",
37378
37724
  onInput: (event) => {
37725
+ if (isExternalInputChange(event)) return;
37379
37726
  setSearch(event.target.value);
37380
37727
  combobox.openDropdown();
37381
37728
  },
@@ -37561,6 +37908,10 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
37561
37908
  default: true
37562
37909
  },
37563
37910
  expandTrigger: { default: "click" },
37911
+ safeAreaPolygon: {
37912
+ type: [Boolean, Object],
37913
+ default: true
37914
+ },
37564
37915
  searchable: {
37565
37916
  type: Boolean,
37566
37917
  default: false
@@ -37740,6 +38091,55 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
37740
38091
  if (cascaderOptionHasChildren(option)) expandOption(level, option);
37741
38092
  else activePath.value = [...activePath.value.slice(0, level), option.value];
37742
38093
  };
38094
+ const columnElements = {};
38095
+ const blockedLevel = (0, vue.ref)(null);
38096
+ let pendingOption = null;
38097
+ let removeSafeAreaListener = () => {};
38098
+ const disarmSafeArea = () => {
38099
+ removeSafeAreaListener();
38100
+ removeSafeAreaListener = () => {};
38101
+ blockedLevel.value = null;
38102
+ pendingOption = null;
38103
+ };
38104
+ function pointInTriangle(point, a, b, c) {
38105
+ const sign = (p1, p2, p3) => (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
38106
+ const d1 = sign(point, a, b);
38107
+ const d2 = sign(point, b, c);
38108
+ const d3 = sign(point, c, a);
38109
+ return !((d1 < 0 || d2 < 0 || d3 < 0) && (d1 > 0 || d2 > 0 || d3 > 0));
38110
+ }
38111
+ const armSafeArea = (level, reference, floating, event) => {
38112
+ disarmSafeArea();
38113
+ const buffer = (typeof props.safeAreaPolygon === "object" ? props.safeAreaPolygon : void 0)?.buffer ?? .5;
38114
+ const rect = floating.getBoundingClientRect();
38115
+ const referenceRect = reference.getBoundingClientRect();
38116
+ const edgeX = rect.left >= referenceRect.right ? rect.left + buffer : rect.right - buffer;
38117
+ const a = {
38118
+ x: event.clientX,
38119
+ y: event.clientY
38120
+ };
38121
+ const b = {
38122
+ x: edgeX,
38123
+ y: rect.top - buffer
38124
+ };
38125
+ const c = {
38126
+ x: edgeX,
38127
+ y: rect.bottom + buffer
38128
+ };
38129
+ blockedLevel.value = level;
38130
+ const onMouseMove = (moveEvent) => {
38131
+ if (pointInTriangle({
38132
+ x: moveEvent.clientX,
38133
+ y: moveEvent.clientY
38134
+ }, a, b, c)) return;
38135
+ const pending = pendingOption;
38136
+ disarmSafeArea();
38137
+ if (pending) handleOptionMouseEnter(pending.level, pending.option);
38138
+ };
38139
+ floating.ownerDocument.addEventListener("mousemove", onMouseMove);
38140
+ removeSafeAreaListener = () => floating.ownerDocument.removeEventListener("mousemove", onMouseMove);
38141
+ };
38142
+ (0, vue.onBeforeUnmount)(disarmSafeArea);
37743
38143
  const flatPaths = (0, vue.computed)(() => flattenCascaderPaths(props.data));
37744
38144
  const isSearching = (0, vue.computed)(() => props.searchable && search.value.trim().length > 0 && search.value !== displayString.value);
37745
38145
  const showFlatList = (0, vue.computed)(() => isSearching.value || !props.withColumns);
@@ -37806,6 +38206,7 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
37806
38206
  class: Cascader_module_default.columnsList,
37807
38207
  role: "presentation",
37808
38208
  onMouseleave: () => {
38209
+ disarmSafeArea();
37809
38210
  if (props.expandTrigger === "hover") resetActivePath();
37810
38211
  },
37811
38212
  onMousemove: () => keyboardNav.value = false
@@ -37815,6 +38216,9 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
37815
38216
  const level = windowStart + index;
37816
38217
  const isLast = index === visibleColumns.length - 1 && hiddenAfter === 0;
37817
38218
  return (0, vue.h)("div", {
38219
+ ref: (element) => {
38220
+ columnElements[level] = element;
38221
+ },
37818
38222
  class: Cascader_module_default.column,
37819
38223
  "data-last": isLast || void 0,
37820
38224
  style: {
@@ -37846,7 +38250,23 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
37846
38250
  "data-disabled": option.disabled || void 0,
37847
38251
  onMousedown: (event) => event.preventDefault(),
37848
38252
  onClick: () => handleOptionClick(level, option),
37849
- onMouseenter: () => handleOptionMouseEnter(level, option)
38253
+ onMouseenter: () => {
38254
+ if (option.disabled) return;
38255
+ if (blockedLevel.value !== null && level <= blockedLevel.value) {
38256
+ pendingOption = {
38257
+ level,
38258
+ option
38259
+ };
38260
+ return;
38261
+ }
38262
+ handleOptionMouseEnter(level, option);
38263
+ },
38264
+ onMouseleave: (event) => {
38265
+ if (pendingOption?.level === level && pendingOption.option.value === option.value) pendingOption = null;
38266
+ if (props.expandTrigger !== "hover" || !props.safeAreaPolygon || option.disabled || activePath.value[level] !== option.value) return;
38267
+ const floating = columnElements[level + 1];
38268
+ if (floating) armSafeArea(level, event.currentTarget, floating, event);
38269
+ }
37850
38270
  }, () => [
37851
38271
  selected && props.withCheckIcon && props.checkIconPosition === "left" ? (0, vue.h)(CheckIcon_default, { class: Cascader_module_default.columnOptionCheck }) : null,
37852
38272
  (0, vue.h)("span", { class: Cascader_module_default.columnOptionLabel }, [props.renderOption ? props.renderOption(option, level) : slots.renderOption?.({
@@ -38007,6 +38427,7 @@ var Cascader = Object.assign(/* @__PURE__ */ (0, vue.defineComponent)({
38007
38427
  __clearSectionMode: props.clearSectionMode,
38008
38428
  rightSectionPointerEvents: attrs.rightSectionPointerEvents || "none",
38009
38429
  onInput: (event) => {
38430
+ if (isExternalInputChange(event)) return;
38010
38431
  setSearch(event.target.value);
38011
38432
  if (canInteract.value) combobox.openDropdown("keyboard");
38012
38433
  },
@@ -38059,6 +38480,9 @@ exports.AccordionChevron = AccordionChevron;
38059
38480
  exports.AccordionControl = AccordionControl;
38060
38481
  exports.AccordionItem = AccordionItem;
38061
38482
  exports.AccordionPanel = AccordionPanel;
38483
+ exports.ActionBar = ActionBar;
38484
+ exports.ActionBarCloseButton = ActionBarCloseButton;
38485
+ exports.ActionBarDivider = ActionBarDivider;
38062
38486
  exports.ActionIcon = ActionIcon;
38063
38487
  exports.ActionIconGroup = ActionIconGroup;
38064
38488
  exports.ActionIconGroupSection = ActionIconGroupSection;
@@ -38390,6 +38814,7 @@ exports.getInitialsColor = getInitialsColor;
38390
38814
  exports.getLineHeight = getLineHeight;
38391
38815
  exports.getMarkColor = getMarkColor;
38392
38816
  exports.getMergedVariables = getMergedVariables;
38817
+ exports.getOptionByLabel = getOptionByLabel;
38393
38818
  exports.getOptionsLockup = getOptionsLockup;
38394
38819
  exports.getParsedComboboxData = getParsedComboboxData;
38395
38820
  exports.getParsedNativeSelectData = getParsedNativeSelectData;
@@ -38419,6 +38844,7 @@ exports.hsvaToRgbaObject = hsvaToRgbaObject;
38419
38844
  exports.identity = identity;
38420
38845
  exports.isColorValid = isColorValid;
38421
38846
  exports.isEmptyComboboxData = isEmptyComboboxData;
38847
+ exports.isExternalInputChange = isExternalInputChange;
38422
38848
  exports.isLightColor = isLightColor;
38423
38849
  exports.isNumberLike = isNumberLike;
38424
38850
  exports.isOptionsGroup = isOptionsGroup;