@auronui/vue 1.0.23 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/ai-rules.md +884 -0
  2. package/bin/setup-ai.mjs +74 -0
  3. package/dist/cjs/index.cjs +1003 -891
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/components/checkbox/Checkbox.js.map +1 -1
  6. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +8 -0
  7. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  8. package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
  9. package/dist/components/checkbox/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +17 -2
  10. package/dist/components/checkbox/CheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  11. package/dist/components/checkbox/checkbox-group.context.js.map +1 -1
  12. package/dist/components/date-picker/DatePicker.js.map +1 -1
  13. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js +9 -3
  14. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  16. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +9 -3
  17. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  18. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
  19. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +9 -3
  20. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/components/form/validation.js +1 -1
  22. package/dist/components/form/validation.js.map +1 -1
  23. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/dist/components/popover/PopoverContent.js.map +1 -1
  25. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js +46 -34
  26. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  27. package/dist/components/radio/Radio.js.map +1 -1
  28. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -1
  29. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/radio/RadioGroup.js.map +1 -1
  31. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +14 -2
  32. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/components/radio/radio-group.context.js.map +1 -1
  34. package/dist/components/switch/Switch.js.map +1 -1
  35. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +8 -0
  36. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/switch/SwitchGroup.js.map +1 -1
  38. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js +17 -2
  39. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/switch/switch-group.context.js.map +1 -1
  41. package/dist/components/tooltip/TooltipContent.js.map +1 -1
  42. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js +46 -34
  43. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/index.d.ts +78 -20
  45. package/package.json +9 -3
@@ -381,8 +381,8 @@ var _hoisted_2$31 = {
381
381
  width: "100%",
382
382
  height: "100%"
383
383
  };
384
- var _hoisted_3$19 = { fill: "none" };
385
- var _hoisted_4$13 = ["fill"];
384
+ var _hoisted_3$21 = { fill: "none" };
385
+ var _hoisted_4$14 = ["fill"];
386
386
  var _hoisted_5$9 = ["fill"];
387
387
  //#endregion
388
388
  //#region src/components/spinner/Spinner.vue
@@ -435,13 +435,13 @@ var Spinner_default = /* @__PURE__ */ (0, vue.defineComponent)({
435
435
  offset: "100%",
436
436
  "stop-color": "currentColor",
437
437
  "stop-opacity": "0.55"
438
- }, null, -1)])])]), (0, vue.createElementVNode)("g", _hoisted_3$19, [
438
+ }, null, -1)])])]), (0, vue.createElementVNode)("g", _hoisted_3$21, [
439
439
  _cache[2] || (_cache[2] = (0, vue.createElementVNode)("path", { d: "m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" }, null, -1)),
440
440
  (0, vue.createElementVNode)("path", {
441
441
  d: "M8.749.021a1.5 1.5 0 0 1 .497 2.958A7.5 7.5 0 0 0 3 10.375a7.5 7.5 0 0 0 7.5 7.5v3c-5.799 0-10.5-4.7-10.5-10.5C0 5.23 3.726.865 8.749.021",
442
442
  fill: `url(#${gradId1})`,
443
443
  transform: "translate(1.5 1.625)"
444
- }, null, 8, _hoisted_4$13),
444
+ }, null, 8, _hoisted_4$14),
445
445
  (0, vue.createElementVNode)("path", {
446
446
  d: "M15.392 2.673a1.5 1.5 0 0 1 2.119-.115A10.48 10.48 0 0 1 21 10.375c0 5.8-4.701 10.5-10.5 10.5v-3a7.5 7.5 0 0 0 5.007-13.084a1.5 1.5 0 0 1-.115-2.118",
447
447
  fill: `url(#${gradId2})`,
@@ -1692,7 +1692,7 @@ async function runValidation(value, rules, validate, context) {
1692
1692
  if (!rules && !validate) return void 0;
1693
1693
  if (rules?.required !== void 0) {
1694
1694
  const { enabled, message } = resolveSimpleRule(rules.required);
1695
- if (enabled && isEmpty(value)) return message ?? "This field is required";
1695
+ if (enabled && isEmpty(value)) return message ?? "Enter a value";
1696
1696
  }
1697
1697
  if (isEmpty(value)) {
1698
1698
  if (validate) return await validate(value, context);
@@ -2050,11 +2050,11 @@ var _hoisted_1$55 = [
2050
2050
  "data-has-helper"
2051
2051
  ];
2052
2052
  var _hoisted_2$30 = ["for"];
2053
- var _hoisted_3$18 = {
2053
+ var _hoisted_3$20 = {
2054
2054
  key: 0,
2055
2055
  "aria-hidden": "true"
2056
2056
  };
2057
- var _hoisted_4$12 = ["data-filled"];
2057
+ var _hoisted_4$13 = ["data-filled"];
2058
2058
  var _hoisted_5$8 = ["for"];
2059
2059
  var _hoisted_6$6 = {
2060
2060
  key: 0,
@@ -2218,7 +2218,7 @@ var Input_default = /* @__PURE__ */ (0, vue.defineComponent)({
2218
2218
  key: 0,
2219
2219
  for: inputId.value,
2220
2220
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.label(), props.classNames?.label))
2221
- }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1), __props.isRequired ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$18, " *")) : (0, vue.createCommentVNode)("", true)], 10, _hoisted_2$30)) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [(0, vue.createElementVNode)("div", {
2221
+ }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1), __props.isRequired ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$20, " *")) : (0, vue.createCommentVNode)("", true)], 10, _hoisted_2$30)) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [(0, vue.createElementVNode)("div", {
2222
2222
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.inputWrapper(), props.classNames?.inputWrapper)),
2223
2223
  "data-filled": hasLabel.value ? isFilled.value || void 0 : void 0
2224
2224
  }, [
@@ -2302,7 +2302,7 @@ var Input_default = /* @__PURE__ */ (0, vue.defineComponent)({
2302
2302
  cy: "12",
2303
2303
  r: "3"
2304
2304
  }, null, -1)])]))], 10, _hoisted_8$1)) : (0, vue.createCommentVNode)("", true)
2305
- ], 10, _hoisted_4$12), hasHelper.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
2305
+ ], 10, _hoisted_4$13), hasHelper.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
2306
2306
  key: 0,
2307
2307
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.helperWrapper(), props.classNames?.helperWrapper))
2308
2308
  }, [showError.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
@@ -2328,11 +2328,11 @@ var _hoisted_1$54 = [
2328
2328
  "data-has-helper"
2329
2329
  ];
2330
2330
  var _hoisted_2$29 = ["for"];
2331
- var _hoisted_3$17 = {
2331
+ var _hoisted_3$19 = {
2332
2332
  key: 0,
2333
2333
  "aria-hidden": "true"
2334
2334
  };
2335
- var _hoisted_4$11 = ["data-filled"];
2335
+ var _hoisted_4$12 = ["data-filled"];
2336
2336
  var _hoisted_5$7 = ["for"];
2337
2337
  var _hoisted_6$5 = {
2338
2338
  key: 0,
@@ -2465,7 +2465,7 @@ var Textarea_default = /* @__PURE__ */ (0, vue.defineComponent)({
2465
2465
  key: 0,
2466
2466
  for: inputId.value,
2467
2467
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.label(), props.classNames?.label))
2468
- }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1), __props.isRequired ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$17, " *")) : (0, vue.createCommentVNode)("", true)], 10, _hoisted_2$29)) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [(0, vue.createElementVNode)("div", {
2468
+ }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1), __props.isRequired ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$19, " *")) : (0, vue.createCommentVNode)("", true)], 10, _hoisted_2$29)) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [(0, vue.createElementVNode)("div", {
2469
2469
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.inputWrapper(), props.classNames?.inputWrapper)),
2470
2470
  "data-filled": hasLabel.value ? isFilled.value || void 0 : void 0
2471
2471
  }, [
@@ -2532,7 +2532,7 @@ var Textarea_default = /* @__PURE__ */ (0, vue.defineComponent)({
2532
2532
  y2: "15"
2533
2533
  })
2534
2534
  ], -1)])], 2)) : (0, vue.createCommentVNode)("", true)
2535
- ], 10, _hoisted_4$11), hasHelper.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
2535
+ ], 10, _hoisted_4$12), hasHelper.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
2536
2536
  key: 0,
2537
2537
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(slotFns.value.helperWrapper(), props.classNames?.helperWrapper))
2538
2538
  }, [showError.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
@@ -2801,6 +2801,10 @@ var Checkbox_default = /* @__PURE__ */ (0, vue.defineComponent)({
2801
2801
  type: Boolean,
2802
2802
  default: false
2803
2803
  },
2804
+ isInvalid: {
2805
+ type: Boolean,
2806
+ default: false
2807
+ },
2804
2808
  isIndeterminate: {
2805
2809
  type: Boolean,
2806
2810
  default: false
@@ -2858,11 +2862,13 @@ var Checkbox_default = /* @__PURE__ */ (0, vue.defineComponent)({
2858
2862
  const groupCtx = useCheckboxGroupInject({
2859
2863
  variant: (0, vue.ref)("primary"),
2860
2864
  disabled: (0, vue.ref)(false),
2865
+ isInvalid: (0, vue.ref)(false),
2861
2866
  selectedValues: (0, vue.ref)([]),
2862
2867
  toggleValue: () => {},
2863
2868
  name: (0, vue.ref)(void 0)
2864
2869
  });
2865
2870
  const isDisabled = (0, vue.computed)(() => groupCtx.disabled.value || props.disabled);
2871
+ const effectiveInvalid = (0, vue.computed)(() => groupCtx.isInvalid.value || props.isInvalid);
2866
2872
  const finalVariant = (0, vue.computed)(() => props.variant ?? groupCtx.variant.value);
2867
2873
  const isInGroup = (0, vue.computed)(() => props.value !== void 0);
2868
2874
  const checkedState = (0, vue.computed)(() => {
@@ -2879,6 +2885,7 @@ var Checkbox_default = /* @__PURE__ */ (0, vue.defineComponent)({
2879
2885
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.CheckboxRoot), (0, vue.mergeProps)((0, vue.unref)(attrs), {
2880
2886
  "model-value": checkedState.value,
2881
2887
  disabled: isDisabled.value,
2888
+ "aria-invalid": effectiveInvalid.value || void 0,
2882
2889
  name: props.name ?? (0, vue.unref)(groupCtx).name.value,
2883
2890
  value: props.value,
2884
2891
  id: props.id,
@@ -2913,6 +2920,7 @@ var Checkbox_default = /* @__PURE__ */ (0, vue.defineComponent)({
2913
2920
  }, 16, [
2914
2921
  "model-value",
2915
2922
  "disabled",
2923
+ "aria-invalid",
2916
2924
  "name",
2917
2925
  "value",
2918
2926
  "id",
@@ -2928,10 +2936,18 @@ var Checkbox_default = /* @__PURE__ */ (0, vue.defineComponent)({
2928
2936
  });
2929
2937
  //#endregion
2930
2938
  //#region src/components/checkbox/CheckboxGroup.vue?vue&type=script&setup=true&lang.ts
2931
- var _hoisted_1$50 = ["aria-labelledby", "data-orientation"];
2939
+ var _hoisted_1$50 = [
2940
+ "aria-labelledby",
2941
+ "aria-invalid",
2942
+ "data-orientation"
2943
+ ];
2932
2944
  var _hoisted_2$27 = { class: "checkbox-group__wrapper" };
2933
- var _hoisted_3$16 = {
2945
+ var _hoisted_3$18 = {
2934
2946
  key: 1,
2947
+ class: "checkbox-group__error-message"
2948
+ };
2949
+ var _hoisted_4$11 = {
2950
+ key: 2,
2935
2951
  class: "checkbox-group__description"
2936
2952
  };
2937
2953
  //#endregion
@@ -2944,12 +2960,17 @@ var CheckboxGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
2944
2960
  type: Boolean,
2945
2961
  default: false
2946
2962
  },
2963
+ isInvalid: {
2964
+ type: Boolean,
2965
+ default: false
2966
+ },
2947
2967
  modelValue: { default: void 0 },
2948
2968
  defaultValue: { default: void 0 },
2949
2969
  name: { default: void 0 },
2950
2970
  orientation: { default: "vertical" },
2951
2971
  label: { default: void 0 },
2952
2972
  description: { default: void 0 },
2973
+ errorMessage: { default: void 0 },
2953
2974
  class: {},
2954
2975
  items: {}
2955
2976
  },
@@ -2967,6 +2988,7 @@ var CheckboxGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
2967
2988
  useCheckboxGroupProvide({
2968
2989
  variant: (0, vue.toRef)(props, "variant"),
2969
2990
  disabled: (0, vue.toRef)(props, "disabled"),
2991
+ isInvalid: (0, vue.toRef)(props, "isInvalid"),
2970
2992
  selectedValues: currentValues,
2971
2993
  toggleValue,
2972
2994
  name: (0, vue.toRef)(props, "name")
@@ -2977,6 +2999,7 @@ var CheckboxGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
2977
2999
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
2978
3000
  role: "group",
2979
3001
  "aria-labelledby": props.label ? labelId : void 0,
3002
+ "aria-invalid": props.isInvalid || void 0,
2980
3003
  "data-orientation": props.orientation,
2981
3004
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(groupClasses.value, props.class))
2982
3005
  }, [
@@ -2995,7 +3018,7 @@ var CheckboxGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
2995
3018
  _: 2
2996
3019
  }, 1032, ["value", "disabled"]);
2997
3020
  }), 128)) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 })]),
2998
- props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$16, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
3021
+ props.isInvalid && props.errorMessage ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$18, (0, vue.toDisplayString)(props.errorMessage), 1)) : props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4$11, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
2999
3022
  ], 10, _hoisted_1$50);
3000
3023
  };
3001
3024
  }
@@ -3015,6 +3038,10 @@ var Radio_default = /* @__PURE__ */ (0, vue.defineComponent)({
3015
3038
  type: Boolean,
3016
3039
  default: false
3017
3040
  },
3041
+ isInvalid: {
3042
+ type: Boolean,
3043
+ default: false
3044
+ },
3018
3045
  id: { default: void 0 },
3019
3046
  asChild: {
3020
3047
  type: Boolean,
@@ -3054,15 +3081,18 @@ var Radio_default = /* @__PURE__ */ (0, vue.defineComponent)({
3054
3081
  const attrs = (0, vue.useAttrs)();
3055
3082
  const groupCtx = useRadioGroupInject({
3056
3083
  variant: (0, vue.ref)(void 0),
3057
- disabled: (0, vue.ref)(false)
3084
+ disabled: (0, vue.ref)(false),
3085
+ isInvalid: (0, vue.ref)(false)
3058
3086
  });
3059
3087
  const isDisabled = (0, vue.computed)(() => groupCtx.disabled.value || props.disabled);
3088
+ const effectiveInvalid = (0, vue.computed)(() => groupCtx.isInvalid.value || props.isInvalid);
3060
3089
  const finalVariant = (0, vue.computed)(() => props.variant ?? groupCtx.variant.value);
3061
3090
  const slotFns = (0, vue.computed)(() => (0, _auronui_styles.radioVariants)());
3062
3091
  return (_ctx, _cache) => {
3063
3092
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.RadioGroupItem), (0, vue.mergeProps)((0, vue.unref)(attrs), {
3064
3093
  value: props.value,
3065
3094
  disabled: isDisabled.value,
3095
+ "aria-invalid": effectiveInvalid.value || void 0,
3066
3096
  id: props.id,
3067
3097
  "as-child": props.asChild,
3068
3098
  as: props.as,
@@ -3087,6 +3117,7 @@ var Radio_default = /* @__PURE__ */ (0, vue.defineComponent)({
3087
3117
  }, 16, [
3088
3118
  "value",
3089
3119
  "disabled",
3120
+ "aria-invalid",
3090
3121
  "id",
3091
3122
  "as-child",
3092
3123
  "as",
@@ -3103,6 +3134,10 @@ var Radio_default = /* @__PURE__ */ (0, vue.defineComponent)({
3103
3134
  var _hoisted_1$49 = { class: "radio-group__wrapper" };
3104
3135
  var _hoisted_2$26 = {
3105
3136
  key: 1,
3137
+ class: "radio-group__error-message"
3138
+ };
3139
+ var _hoisted_3$17 = {
3140
+ key: 2,
3106
3141
  class: "radio-group__description"
3107
3142
  };
3108
3143
  //#endregion
@@ -3115,12 +3150,17 @@ var RadioGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3115
3150
  type: Boolean,
3116
3151
  default: false
3117
3152
  },
3153
+ isInvalid: {
3154
+ type: Boolean,
3155
+ default: false
3156
+ },
3118
3157
  modelValue: { default: void 0 },
3119
3158
  defaultValue: { default: void 0 },
3120
3159
  name: { default: void 0 },
3121
3160
  orientation: { default: "vertical" },
3122
3161
  label: { default: void 0 },
3123
3162
  description: { default: void 0 },
3163
+ errorMessage: { default: void 0 },
3124
3164
  dir: { default: void 0 },
3125
3165
  loop: {
3126
3166
  type: Boolean,
@@ -3144,7 +3184,8 @@ var RadioGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3144
3184
  const emit = __emit;
3145
3185
  useRadioGroupProvide({
3146
3186
  variant: (0, vue.toRef)(props, "variant"),
3147
- disabled: (0, vue.toRef)(props, "disabled")
3187
+ disabled: (0, vue.toRef)(props, "disabled"),
3188
+ isInvalid: (0, vue.toRef)(props, "isInvalid")
3148
3189
  });
3149
3190
  const labelId = `radio-group-label-${Math.random().toString(36).slice(2, 8)}`;
3150
3191
  const groupClasses = (0, vue.computed)(() => (0, _auronui_styles.radioGroupVariants)({ variant: props.variant }));
@@ -3153,6 +3194,7 @@ var RadioGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3153
3194
  "model-value": props.modelValue,
3154
3195
  "default-value": props.defaultValue,
3155
3196
  disabled: props.disabled,
3197
+ "aria-invalid": props.isInvalid || void 0,
3156
3198
  name: props.name,
3157
3199
  orientation: props.orientation,
3158
3200
  dir: props.dir,
@@ -3180,13 +3222,14 @@ var RadioGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3180
3222
  _: 2
3181
3223
  }, 1032, ["value", "disabled"]);
3182
3224
  }), 128)) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 })]),
3183
- props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$26, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
3225
+ props.isInvalid && props.errorMessage ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$26, (0, vue.toDisplayString)(props.errorMessage), 1)) : props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$17, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
3184
3226
  ]),
3185
3227
  _: 3
3186
3228
  }, 8, [
3187
3229
  "model-value",
3188
3230
  "default-value",
3189
3231
  "disabled",
3232
+ "aria-invalid",
3190
3233
  "name",
3191
3234
  "orientation",
3192
3235
  "dir",
@@ -3210,6 +3253,10 @@ var Switch_default = /* @__PURE__ */ (0, vue.defineComponent)({
3210
3253
  __name: "Switch",
3211
3254
  props: {
3212
3255
  size: { default: void 0 },
3256
+ isInvalid: {
3257
+ type: Boolean,
3258
+ default: false
3259
+ },
3213
3260
  value: { default: void 0 },
3214
3261
  modelValue: {
3215
3262
  type: Boolean,
@@ -3272,11 +3319,13 @@ var Switch_default = /* @__PURE__ */ (0, vue.defineComponent)({
3272
3319
  const groupCtx = useSwitchGroupInject({
3273
3320
  size: (0, vue.ref)("md"),
3274
3321
  disabled: (0, vue.ref)(false),
3322
+ isInvalid: (0, vue.ref)(false),
3275
3323
  selectedValues: (0, vue.ref)([]),
3276
3324
  toggleValue: () => {},
3277
3325
  name: (0, vue.ref)(void 0)
3278
3326
  });
3279
3327
  const isDisabled = (0, vue.computed)(() => groupCtx.disabled.value || props.disabled);
3328
+ const effectiveInvalid = (0, vue.computed)(() => groupCtx.isInvalid.value || props.isInvalid);
3280
3329
  const finalSize = (0, vue.computed)(() => props.size ?? groupCtx.size.value);
3281
3330
  const isInGroup = (0, vue.computed)(() => props.value !== void 0);
3282
3331
  const checked = (0, vue.computed)(() => {
@@ -3292,6 +3341,7 @@ var Switch_default = /* @__PURE__ */ (0, vue.defineComponent)({
3292
3341
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.SwitchRoot), (0, vue.mergeProps)((0, vue.unref)(attrs), {
3293
3342
  "model-value": checked.value,
3294
3343
  disabled: isDisabled.value,
3344
+ "aria-invalid": effectiveInvalid.value || void 0,
3295
3345
  name: props.name ?? (0, vue.unref)(groupCtx).name.value,
3296
3346
  value: props.value,
3297
3347
  id: props.id,
@@ -3319,6 +3369,7 @@ var Switch_default = /* @__PURE__ */ (0, vue.defineComponent)({
3319
3369
  }, 16, [
3320
3370
  "model-value",
3321
3371
  "disabled",
3372
+ "aria-invalid",
3322
3373
  "name",
3323
3374
  "value",
3324
3375
  "id",
@@ -3334,9 +3385,17 @@ var Switch_default = /* @__PURE__ */ (0, vue.defineComponent)({
3334
3385
  });
3335
3386
  //#endregion
3336
3387
  //#region src/components/switch/SwitchGroup.vue?vue&type=script&setup=true&lang.ts
3337
- var _hoisted_1$48 = ["aria-labelledby", "data-orientation"];
3388
+ var _hoisted_1$48 = [
3389
+ "aria-labelledby",
3390
+ "aria-invalid",
3391
+ "data-orientation"
3392
+ ];
3338
3393
  var _hoisted_2$25 = {
3339
3394
  key: 1,
3395
+ class: "switch-group__error-message"
3396
+ };
3397
+ var _hoisted_3$16 = {
3398
+ key: 2,
3340
3399
  class: "switch-group__description"
3341
3400
  };
3342
3401
  //#endregion
@@ -3353,6 +3412,11 @@ var SwitchGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3353
3412
  defaultValue: { default: void 0 },
3354
3413
  name: { default: void 0 },
3355
3414
  orientation: { default: "vertical" },
3415
+ isInvalid: {
3416
+ type: Boolean,
3417
+ default: false
3418
+ },
3419
+ errorMessage: { default: void 0 },
3356
3420
  label: { default: void 0 },
3357
3421
  description: { default: void 0 },
3358
3422
  class: {},
@@ -3372,6 +3436,7 @@ var SwitchGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3372
3436
  useSwitchGroupProvide({
3373
3437
  size: (0, vue.toRef)(props, "size"),
3374
3438
  disabled: (0, vue.toRef)(props, "disabled"),
3439
+ isInvalid: (0, vue.toRef)(props, "isInvalid"),
3375
3440
  selectedValues: currentValues,
3376
3441
  toggleValue,
3377
3442
  name: (0, vue.toRef)(props, "name")
@@ -3382,6 +3447,7 @@ var SwitchGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3382
3447
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
3383
3448
  role: "group",
3384
3449
  "aria-labelledby": props.label ? labelId : void 0,
3450
+ "aria-invalid": props.isInvalid || void 0,
3385
3451
  "data-orientation": props.orientation,
3386
3452
  class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)(groupSlots.value.base(), props.class))
3387
3453
  }, [
@@ -3400,7 +3466,7 @@ var SwitchGroup_default = /* @__PURE__ */ (0, vue.defineComponent)({
3400
3466
  _: 2
3401
3467
  }, 1032, ["value", "disabled"]);
3402
3468
  }), 128)) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 })], 2),
3403
- props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$25, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
3469
+ props.isInvalid && props.errorMessage ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$25, (0, vue.toDisplayString)(props.errorMessage), 1)) : props.description ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$16, (0, vue.toDisplayString)(props.description), 1)) : (0, vue.createCommentVNode)("", true)
3404
3470
  ], 10, _hoisted_1$48);
3405
3471
  };
3406
3472
  }
@@ -3570,227 +3636,751 @@ var PopoverTrigger_default = /* @__PURE__ */ (0, vue.defineComponent)({
3570
3636
  }
3571
3637
  });
3572
3638
  //#endregion
3573
- //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/utils/createContext.mjs
3574
- function createContext$1(providerComponentName, contextName) {
3575
- const symbolDescription = typeof providerComponentName === "string" && !contextName ? `${providerComponentName}Context` : contextName;
3576
- const injectionKey = Symbol(symbolDescription);
3577
- const injectContext = (fallback) => {
3578
- const context = (0, vue.inject)(injectionKey, fallback);
3579
- if (context === void 0) throw new Error(`Injection \`${injectionKey.toString()}\` not found. Component must be used within ${Array.isArray(providerComponentName) ? `one of the following components: ${providerComponentName.join(", ")}` : `\`${providerComponentName}\``}`);
3580
- return context;
3581
- };
3582
- const provideContext = (contextValue) => {
3583
- (0, vue.provide)(injectionKey, contextValue);
3584
- return contextValue;
3585
- };
3586
- return [
3587
- injectContext,
3588
- provideContext,
3589
- injectionKey
3590
- ];
3591
- }
3592
- //#endregion
3593
- //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/utils/resolve-motion-props.mjs
3594
- function resolveMotionProps(props, context) {
3595
- const { layoutGroup, presenceContext, config } = context;
3596
- const layoutId = layoutGroup.id && props.layoutId ? `${layoutGroup.id}-${props.layoutId}` : props.layoutId || void 0;
3597
- return {
3598
- ...props,
3599
- layoutId,
3600
- transition: props.transition ?? config.transition,
3601
- layoutGroup,
3602
- motionConfig: config,
3603
- inViewOptions: props.inViewOptions ?? config.inViewOptions,
3604
- presenceContext,
3605
- initial: presenceContext.initial === false ? presenceContext.initial : props.initial === true ? void 0 : props.initial
3606
- };
3607
- }
3608
- //#endregion
3609
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/array.mjs
3610
- function addUniqueItem(arr, item) {
3611
- if (arr.indexOf(item) === -1) arr.push(item);
3612
- }
3613
- function removeItem(arr, item) {
3614
- const index = arr.indexOf(item);
3615
- if (index > -1) arr.splice(index, 1);
3616
- }
3617
- //#endregion
3618
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/clamp.mjs
3619
- var clamp = (min, max, v) => {
3620
- if (v > max) return max;
3621
- if (v < min) return min;
3622
- return v;
3623
- };
3639
+ //#region ../styles/src/components/popover/popover.styles.ts
3640
+ var popoverVariants = (0, tailwind_variants.tv)({ slots: {
3641
+ base: "popover",
3642
+ dialog: "popover__dialog",
3643
+ heading: "popover__heading",
3644
+ trigger: "popover__trigger"
3645
+ } });
3624
3646
  //#endregion
3625
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/format-error-message.mjs
3626
- function formatErrorMessage(message, errorCode) {
3627
- return errorCode ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}` : message;
3628
- }
3647
+ //#region src/components/popover/PopoverContent.vue
3648
+ var PopoverContent_default = /* @__PURE__ */ (0, vue.defineComponent)({
3649
+ __name: "PopoverContent",
3650
+ props: {
3651
+ side: { default: "bottom" },
3652
+ sideOffset: { default: 8 },
3653
+ sideFlip: { type: Boolean },
3654
+ align: { default: "center" },
3655
+ alignOffset: { default: 0 },
3656
+ alignFlip: { type: Boolean },
3657
+ avoidCollisions: {
3658
+ type: Boolean,
3659
+ default: true
3660
+ },
3661
+ collisionBoundary: {},
3662
+ collisionPadding: { default: 8 },
3663
+ arrowPadding: {},
3664
+ hideShiftedArrow: { type: Boolean },
3665
+ sticky: {},
3666
+ hideWhenDetached: { type: Boolean },
3667
+ positionStrategy: {},
3668
+ updatePositionStrategy: {},
3669
+ disableUpdateOnLayoutShift: { type: Boolean },
3670
+ prioritizePosition: {
3671
+ type: Boolean,
3672
+ default: true
3673
+ },
3674
+ class: {}
3675
+ },
3676
+ emits: [
3677
+ "escape-key-down",
3678
+ "pointer-down-outside",
3679
+ "focus-outside",
3680
+ "interact-outside",
3681
+ "open-auto-focus",
3682
+ "close-auto-focus"
3683
+ ],
3684
+ setup(__props, { emit: __emit }) {
3685
+ const props = __props;
3686
+ const emit = __emit;
3687
+ const styles = popoverVariants();
3688
+ return (_ctx, _cache) => {
3689
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverPortal), null, {
3690
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.PopoverContent), (0, vue.mergeProps)({
3691
+ side: props.side,
3692
+ "side-offset": props.sideOffset,
3693
+ align: props.align,
3694
+ "align-offset": props.alignOffset,
3695
+ "side-flip": props.sideFlip,
3696
+ "align-flip": props.alignFlip,
3697
+ "avoid-collisions": props.avoidCollisions,
3698
+ "collision-boundary": props.collisionBoundary,
3699
+ "collision-padding": props.collisionPadding,
3700
+ "arrow-padding": props.arrowPadding,
3701
+ "hide-shifted-arrow": props.hideShiftedArrow,
3702
+ sticky: props.sticky,
3703
+ "hide-when-detached": props.hideWhenDetached,
3704
+ "position-strategy": props.positionStrategy,
3705
+ "update-position-strategy": props.updatePositionStrategy,
3706
+ "disable-update-on-layout-shift": props.disableUpdateOnLayoutShift,
3707
+ "prioritize-position": props.prioritizePosition,
3708
+ class: (0, vue.unref)(composeClassName)((0, vue.unref)(styles).base(), props.class)
3709
+ }, _ctx.$attrs, {
3710
+ onEscapeKeyDown: _cache[0] || (_cache[0] = ($event) => emit("escape-key-down", $event)),
3711
+ onPointerDownOutside: _cache[1] || (_cache[1] = ($event) => emit("pointer-down-outside", $event)),
3712
+ onFocusOutside: _cache[2] || (_cache[2] = ($event) => emit("focus-outside", $event)),
3713
+ onInteractOutside: _cache[3] || (_cache[3] = ($event) => emit("interact-outside", $event)),
3714
+ onOpenAutoFocus: _cache[4] || (_cache[4] = ($event) => emit("open-auto-focus", $event)),
3715
+ onCloseAutoFocus: _cache[5] || (_cache[5] = ($event) => emit("close-auto-focus", $event))
3716
+ }), {
3717
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
3718
+ _: 3
3719
+ }, 16, [
3720
+ "side",
3721
+ "side-offset",
3722
+ "align",
3723
+ "align-offset",
3724
+ "side-flip",
3725
+ "align-flip",
3726
+ "avoid-collisions",
3727
+ "collision-boundary",
3728
+ "collision-padding",
3729
+ "arrow-padding",
3730
+ "hide-shifted-arrow",
3731
+ "sticky",
3732
+ "hide-when-detached",
3733
+ "position-strategy",
3734
+ "update-position-strategy",
3735
+ "disable-update-on-layout-shift",
3736
+ "prioritize-position",
3737
+ "class"
3738
+ ])]),
3739
+ _: 3
3740
+ });
3741
+ };
3742
+ }
3743
+ });
3629
3744
  //#endregion
3630
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/errors.mjs
3631
- var warning$1 = () => {};
3632
- var invariant$1 = () => {};
3633
- if (typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
3634
- warning$1 = (check, message, errorCode) => {
3635
- if (!check && typeof console !== "undefined") console.warn(formatErrorMessage(message, errorCode));
3636
- };
3637
- invariant$1 = (check, message, errorCode) => {
3638
- if (!check) throw new Error(formatErrorMessage(message, errorCode));
3639
- };
3640
- }
3745
+ //#region src/components/popover/PopoverArrow.vue
3746
+ var PopoverArrow_default = /* @__PURE__ */ (0, vue.defineComponent)({
3747
+ __name: "PopoverArrow",
3748
+ props: {
3749
+ as: {},
3750
+ asChild: { type: Boolean },
3751
+ width: {},
3752
+ height: {},
3753
+ class: {}
3754
+ },
3755
+ setup(__props) {
3756
+ const props = __props;
3757
+ return (_ctx, _cache) => {
3758
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverArrow), (0, vue.mergeProps)({
3759
+ as: props.as,
3760
+ "as-child": props.asChild,
3761
+ width: props.width,
3762
+ height: props.height,
3763
+ class: props.class
3764
+ }, _ctx.$attrs), null, 16, [
3765
+ "as",
3766
+ "as-child",
3767
+ "width",
3768
+ "height",
3769
+ "class"
3770
+ ]);
3771
+ };
3772
+ }
3773
+ });
3641
3774
  //#endregion
3642
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/global-config.mjs
3643
- var MotionGlobalConfig = {};
3644
- //#endregion
3645
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-numerical-string.mjs
3646
- /**
3647
- * Check if value is a numerical string, ie a string that is purely a number eg "100" or "-100.1"
3648
- */
3649
- var isNumericalString = (v) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v);
3650
- //#endregion
3651
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-object.mjs
3652
- function isObject(value) {
3653
- return typeof value === "object" && value !== null;
3654
- }
3655
- //#endregion
3656
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-zero-value-string.mjs
3657
- /**
3658
- * Check if the value is a zero value string like "0px" or "0%"
3659
- */
3660
- var isZeroValueString = (v) => /^0[^.\s]+$/u.test(v);
3661
- //#endregion
3662
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/memo.mjs
3663
- /* @__NO_SIDE_EFFECTS__ */
3664
- function memo$2(callback) {
3665
- let result;
3666
- return () => {
3667
- if (result === void 0) result = callback();
3668
- return result;
3669
- };
3670
- }
3671
- //#endregion
3672
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/noop.mjs
3673
- var noop = /* @__NO_SIDE_EFFECTS__ */ (any) => any;
3674
- //#endregion
3675
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/pipe.mjs
3676
- /**
3677
- * Pipe
3678
- * Compose other transformers to run linearily
3679
- * pipe(min(20), max(40))
3680
- * @param {...functions} transformers
3681
- * @return {function}
3682
- */
3683
- var combineFunctions = (a, b) => (v) => b(a(v));
3684
- var pipe = (...transformers) => transformers.reduce(combineFunctions);
3685
- //#endregion
3686
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/progress.mjs
3687
- var progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
3688
- const toFromDifference = to - from;
3689
- return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
3690
- };
3691
- //#endregion
3692
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/subscription-manager.mjs
3693
- var SubscriptionManager = class {
3694
- constructor() {
3695
- this.subscriptions = [];
3775
+ //#region src/components/popover/PopoverAnchor.vue
3776
+ var PopoverAnchor_default = /* @__PURE__ */ (0, vue.defineComponent)({
3777
+ __name: "PopoverAnchor",
3778
+ props: {
3779
+ as: {},
3780
+ asChild: { type: Boolean }
3781
+ },
3782
+ setup(__props) {
3783
+ const props = __props;
3784
+ return (_ctx, _cache) => {
3785
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverAnchor), (0, vue.mergeProps)({
3786
+ as: props.as,
3787
+ "as-child": props.asChild
3788
+ }, _ctx.$attrs), {
3789
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
3790
+ _: 3
3791
+ }, 16, ["as", "as-child"]);
3792
+ };
3696
3793
  }
3697
- add(handler) {
3698
- addUniqueItem(this.subscriptions, handler);
3699
- return () => removeItem(this.subscriptions, handler);
3794
+ });
3795
+ //#endregion
3796
+ //#region src/components/popover/PopoverClose.vue
3797
+ var PopoverClose_default = /* @__PURE__ */ (0, vue.defineComponent)({
3798
+ __name: "PopoverClose",
3799
+ props: {
3800
+ as: {},
3801
+ asChild: { type: Boolean },
3802
+ disabled: { type: Boolean },
3803
+ class: {}
3804
+ },
3805
+ setup(__props) {
3806
+ const props = __props;
3807
+ return (_ctx, _cache) => {
3808
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverClose), (0, vue.mergeProps)({
3809
+ as: props.as,
3810
+ "as-child": props.asChild,
3811
+ disabled: props.disabled,
3812
+ class: props.class
3813
+ }, _ctx.$attrs), {
3814
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
3815
+ _: 3
3816
+ }, 16, [
3817
+ "as",
3818
+ "as-child",
3819
+ "disabled",
3820
+ "class"
3821
+ ]);
3822
+ };
3700
3823
  }
3701
- notify(a, b, c) {
3702
- const numSubscriptions = this.subscriptions.length;
3703
- if (!numSubscriptions) return;
3704
- if (numSubscriptions === 1)
3705
- /**
3706
- * If there's only a single handler we can just call it without invoking a loop.
3707
- */
3708
- this.subscriptions[0](a, b, c);
3709
- else for (let i = 0; i < numSubscriptions; i++) {
3710
- /**
3711
- * Check whether the handler exists before firing as it's possible
3712
- * the subscriptions were modified during this loop running.
3713
- */
3714
- const handler = this.subscriptions[i];
3715
- handler && handler(a, b, c);
3824
+ });
3825
+ //#endregion
3826
+ //#region src/components/tooltip/Tooltip.vue
3827
+ var Tooltip_default = (0, vue.defineComponent)({
3828
+ name: "Tooltip",
3829
+ props: {
3830
+ defaultOpen: {
3831
+ type: Boolean,
3832
+ default: false
3833
+ },
3834
+ open: {
3835
+ type: Boolean,
3836
+ default: void 0
3837
+ },
3838
+ delayDuration: {
3839
+ type: Number,
3840
+ default: void 0
3841
+ },
3842
+ disableHoverableContent: {
3843
+ type: Boolean,
3844
+ default: void 0
3845
+ },
3846
+ disableClosingTrigger: {
3847
+ type: Boolean,
3848
+ default: void 0
3849
+ },
3850
+ disabled: {
3851
+ type: Boolean,
3852
+ default: void 0
3853
+ },
3854
+ ignoreNonKeyboardFocus: {
3855
+ type: Boolean,
3856
+ default: void 0
3716
3857
  }
3858
+ },
3859
+ emits: ["update:open"],
3860
+ setup(props, { slots, emit }) {
3861
+ const rootProps = (0, vue.computed)(() => {
3862
+ const p = {
3863
+ defaultOpen: props.defaultOpen,
3864
+ "onUpdate:open": (val) => emit("update:open", val)
3865
+ };
3866
+ if (props.open !== void 0) p.open = props.open;
3867
+ if (props.delayDuration !== void 0) p.delayDuration = props.delayDuration;
3868
+ if (props.disableHoverableContent !== void 0) p.disableHoverableContent = props.disableHoverableContent;
3869
+ if (props.disableClosingTrigger !== void 0) p.disableClosingTrigger = props.disableClosingTrigger;
3870
+ if (props.disabled !== void 0) p.disabled = props.disabled;
3871
+ if (props.ignoreNonKeyboardFocus !== void 0) p.ignoreNonKeyboardFocus = props.ignoreNonKeyboardFocus;
3872
+ return p;
3873
+ });
3874
+ return () => (0, vue.h)(reka_ui.TooltipRoot, rootProps.value, slots);
3717
3875
  }
3718
- getSize() {
3719
- return this.subscriptions.length;
3720
- }
3721
- clear() {
3722
- this.subscriptions.length = 0;
3876
+ });
3877
+ //#endregion
3878
+ //#region src/components/tooltip/TooltipProvider.vue
3879
+ var TooltipProvider_default = /* @__PURE__ */ (0, vue.defineComponent)({
3880
+ __name: "TooltipProvider",
3881
+ props: {
3882
+ delayDuration: { default: 700 },
3883
+ skipDelayDuration: { default: 300 },
3884
+ disableHoverableContent: {
3885
+ type: Boolean,
3886
+ default: false
3887
+ },
3888
+ disableClosingTrigger: {
3889
+ type: Boolean,
3890
+ default: false
3891
+ },
3892
+ disabled: {
3893
+ type: Boolean,
3894
+ default: false
3895
+ },
3896
+ ignoreNonKeyboardFocus: {
3897
+ type: Boolean,
3898
+ default: false
3899
+ },
3900
+ content: {}
3901
+ },
3902
+ setup(__props) {
3903
+ const props = __props;
3904
+ return (_ctx, _cache) => {
3905
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipProvider), {
3906
+ "delay-duration": props.delayDuration,
3907
+ "skip-delay-duration": props.skipDelayDuration,
3908
+ "disable-hoverable-content": props.disableHoverableContent,
3909
+ "disable-closing-trigger": props.disableClosingTrigger,
3910
+ disabled: props.disabled,
3911
+ "ignore-non-keyboard-focus": props.ignoreNonKeyboardFocus,
3912
+ content: props.content
3913
+ }, {
3914
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
3915
+ _: 3
3916
+ }, 8, [
3917
+ "delay-duration",
3918
+ "skip-delay-duration",
3919
+ "disable-hoverable-content",
3920
+ "disable-closing-trigger",
3921
+ "disabled",
3922
+ "ignore-non-keyboard-focus",
3923
+ "content"
3924
+ ]);
3925
+ };
3723
3926
  }
3724
- };
3927
+ });
3725
3928
  //#endregion
3726
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/time-conversion.mjs
3727
- /**
3728
- * Converts seconds to milliseconds
3729
- *
3730
- * @param seconds - Time in seconds.
3731
- * @return milliseconds - Converted time in milliseconds.
3732
- */
3733
- var secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;
3734
- var millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
3929
+ //#region src/components/tooltip/TooltipTrigger.vue
3930
+ var TooltipTrigger_default = /* @__PURE__ */ (0, vue.defineComponent)({
3931
+ __name: "TooltipTrigger",
3932
+ props: {
3933
+ asChild: { type: Boolean },
3934
+ as: {}
3935
+ },
3936
+ setup(__props) {
3937
+ const props = __props;
3938
+ return (_ctx, _cache) => {
3939
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipTrigger), (0, vue.mergeProps)({
3940
+ "as-child": props.asChild,
3941
+ as: props.as
3942
+ }, _ctx.$attrs), {
3943
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
3944
+ _: 3
3945
+ }, 16, ["as-child", "as"]);
3946
+ };
3947
+ }
3948
+ });
3735
3949
  //#endregion
3736
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/velocity-per-second.mjs
3737
- function velocityPerSecond(velocity, frameDuration) {
3738
- return frameDuration ? velocity * (1e3 / frameDuration) : 0;
3739
- }
3740
- //#endregion
3741
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/warn-once.mjs
3742
- var warned = /* @__PURE__ */ new Set();
3743
- function warnOnce(condition, message, errorCode) {
3744
- if (condition || warned.has(message)) return;
3745
- console.warn(formatErrorMessage(message, errorCode));
3746
- warned.add(message);
3747
- }
3748
- //#endregion
3749
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs
3750
- var calcBezier = (t, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t + (3 * a2 - 6 * a1)) * t + 3 * a1) * t;
3751
- var subdivisionPrecision = 1e-7;
3752
- var subdivisionMaxIterations = 12;
3753
- function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {
3754
- let currentX;
3755
- let currentT;
3756
- let i = 0;
3757
- do {
3758
- currentT = lowerBound + (upperBound - lowerBound) / 2;
3759
- currentX = calcBezier(currentT, mX1, mX2) - x;
3760
- if (currentX > 0) upperBound = currentT;
3761
- else lowerBound = currentT;
3762
- } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);
3763
- return currentT;
3764
- }
3765
- function cubicBezier(mX1, mY1, mX2, mY2) {
3766
- if (mX1 === mY1 && mX2 === mY2) return noop;
3767
- const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
3768
- return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
3769
- }
3770
- //#endregion
3771
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs
3772
- var mirrorEasing = (easing) => (p) => p <= .5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
3950
+ //#region ../styles/src/components/tooltip/tooltip.styles.ts
3951
+ var tooltipVariants = (0, tailwind_variants.tv)({ slots: {
3952
+ base: "tooltip",
3953
+ trigger: "tooltip__trigger"
3954
+ } });
3773
3955
  //#endregion
3774
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs
3775
- var reverseEasing = (easing) => (p) => 1 - easing(1 - p);
3956
+ //#region src/components/tooltip/TooltipContent.vue
3957
+ var TooltipContent_default = /* @__PURE__ */ (0, vue.defineComponent)({
3958
+ __name: "TooltipContent",
3959
+ props: {
3960
+ side: { default: "top" },
3961
+ sideOffset: { default: 8 },
3962
+ sideFlip: { type: Boolean },
3963
+ align: { default: "center" },
3964
+ alignOffset: { default: 0 },
3965
+ alignFlip: { type: Boolean },
3966
+ avoidCollisions: {
3967
+ type: Boolean,
3968
+ default: true
3969
+ },
3970
+ collisionBoundary: {},
3971
+ collisionPadding: { default: 8 },
3972
+ arrowPadding: {},
3973
+ hideShiftedArrow: { type: Boolean },
3974
+ sticky: {},
3975
+ hideWhenDetached: { type: Boolean },
3976
+ positionStrategy: {},
3977
+ updatePositionStrategy: {},
3978
+ disableUpdateOnLayoutShift: { type: Boolean },
3979
+ prioritizePosition: {
3980
+ type: Boolean,
3981
+ default: true
3982
+ },
3983
+ class: {}
3984
+ },
3985
+ emits: ["escape-key-down", "pointer-down-outside"],
3986
+ setup(__props, { emit: __emit }) {
3987
+ const props = __props;
3988
+ const emit = __emit;
3989
+ const styles = tooltipVariants();
3990
+ return (_ctx, _cache) => {
3991
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipPortal), null, {
3992
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.TooltipContent), (0, vue.mergeProps)({
3993
+ side: props.side,
3994
+ "side-offset": props.sideOffset,
3995
+ align: props.align,
3996
+ "align-offset": props.alignOffset,
3997
+ "side-flip": props.sideFlip,
3998
+ "align-flip": props.alignFlip,
3999
+ "avoid-collisions": props.avoidCollisions,
4000
+ "collision-boundary": props.collisionBoundary,
4001
+ "collision-padding": props.collisionPadding,
4002
+ "arrow-padding": props.arrowPadding,
4003
+ "hide-shifted-arrow": props.hideShiftedArrow,
4004
+ sticky: props.sticky,
4005
+ "hide-when-detached": props.hideWhenDetached,
4006
+ "position-strategy": props.positionStrategy,
4007
+ "update-position-strategy": props.updatePositionStrategy,
4008
+ "disable-update-on-layout-shift": props.disableUpdateOnLayoutShift,
4009
+ "prioritize-position": props.prioritizePosition,
4010
+ class: (0, vue.unref)(composeClassName)((0, vue.unref)(styles).base(), props.class)
4011
+ }, _ctx.$attrs, {
4012
+ onEscapeKeyDown: _cache[0] || (_cache[0] = ($event) => emit("escape-key-down", $event)),
4013
+ onPointerDownOutside: _cache[1] || (_cache[1] = ($event) => emit("pointer-down-outside", $event))
4014
+ }), {
4015
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
4016
+ _: 3
4017
+ }, 16, [
4018
+ "side",
4019
+ "side-offset",
4020
+ "align",
4021
+ "align-offset",
4022
+ "side-flip",
4023
+ "align-flip",
4024
+ "avoid-collisions",
4025
+ "collision-boundary",
4026
+ "collision-padding",
4027
+ "arrow-padding",
4028
+ "hide-shifted-arrow",
4029
+ "sticky",
4030
+ "hide-when-detached",
4031
+ "position-strategy",
4032
+ "update-position-strategy",
4033
+ "disable-update-on-layout-shift",
4034
+ "prioritize-position",
4035
+ "class"
4036
+ ])]),
4037
+ _: 3
4038
+ });
4039
+ };
4040
+ }
4041
+ });
3776
4042
  //#endregion
3777
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/back.mjs
3778
- var backOut = /* @__PURE__ */ cubicBezier(.33, 1.53, .69, .99);
3779
- var backIn = /* @__PURE__ */ reverseEasing(backOut);
3780
- var backInOut = /* @__PURE__ */ mirrorEasing(backIn);
4043
+ //#region src/components/tooltip/TooltipArrow.vue
4044
+ var TooltipArrow_default = /* @__PURE__ */ (0, vue.defineComponent)({
4045
+ __name: "TooltipArrow",
4046
+ props: {
4047
+ as: {},
4048
+ asChild: { type: Boolean },
4049
+ width: {},
4050
+ height: {},
4051
+ class: {}
4052
+ },
4053
+ setup(__props) {
4054
+ const props = __props;
4055
+ const styles = tooltipVariants();
4056
+ return (_ctx, _cache) => {
4057
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipArrow), (0, vue.mergeProps)({
4058
+ as: props.as,
4059
+ "as-child": props.asChild,
4060
+ width: props.width,
4061
+ height: props.height,
4062
+ class: (0, vue.unref)(composeClassName)((0, vue.unref)(styles).trigger(), props.class)
4063
+ }, _ctx.$attrs), null, 16, [
4064
+ "as",
4065
+ "as-child",
4066
+ "width",
4067
+ "height",
4068
+ "class"
4069
+ ]);
4070
+ };
4071
+ }
4072
+ });
3781
4073
  //#endregion
3782
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/anticipate.mjs
3783
- var anticipate = (p) => p >= 1 ? 1 : (p *= 2) < 1 ? .5 * backIn(p) : .5 * (2 - Math.pow(2, -10 * (p - 1)));
4074
+ //#region src/components/modal/Modal.vue?vue&type=script&lang.ts
4075
+ var { useProvide: useModalProvide, useInject: useModalInject } = createContext("Modal");
3784
4076
  //#endregion
3785
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/circ.mjs
3786
- var circIn = (p) => 1 - Math.sin(Math.acos(p));
3787
- var circOut = reverseEasing(circIn);
3788
- var circInOut = mirrorEasing(circIn);
4077
+ //#region src/components/modal/Modal.vue
4078
+ var Modal_default = (0, vue.defineComponent)({
4079
+ name: "Modal",
4080
+ props: {
4081
+ defaultOpen: {
4082
+ type: Boolean,
4083
+ default: false
4084
+ },
4085
+ open: {
4086
+ type: Boolean,
4087
+ default: void 0
4088
+ },
4089
+ modal: {
4090
+ type: Boolean,
4091
+ default: true
4092
+ },
4093
+ size: {
4094
+ type: String,
4095
+ default: "md"
4096
+ },
4097
+ scroll: {
4098
+ type: String,
4099
+ default: "inside"
4100
+ },
4101
+ variant: {
4102
+ type: String,
4103
+ default: "opaque"
4104
+ },
4105
+ placement: {
4106
+ type: String,
4107
+ default: "auto"
4108
+ }
4109
+ },
4110
+ emits: ["update:open"],
4111
+ setup(props, { slots, emit }) {
4112
+ useModalProvide({
4113
+ get size() {
4114
+ return props.size;
4115
+ },
4116
+ get scroll() {
4117
+ return props.scroll;
4118
+ },
4119
+ get variant() {
4120
+ return props.variant;
4121
+ },
4122
+ get placement() {
4123
+ return props.placement;
4124
+ }
4125
+ });
4126
+ const rootProps = (0, vue.computed)(() => {
4127
+ const p = {
4128
+ defaultOpen: props.defaultOpen,
4129
+ modal: props.modal,
4130
+ "onUpdate:open": (val) => emit("update:open", val)
4131
+ };
4132
+ if (props.open !== void 0) p.open = props.open;
4133
+ return p;
4134
+ });
4135
+ return () => (0, vue.h)(reka_ui.DialogRoot, rootProps.value, slots);
4136
+ }
4137
+ });
3789
4138
  //#endregion
3790
- //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/ease.mjs
3791
- var easeIn = /* @__PURE__ */ cubicBezier(.42, 0, 1, 1);
3792
- var easeOut = /* @__PURE__ */ cubicBezier(0, 0, .58, 1);
3793
- var easeInOut = /* @__PURE__ */ cubicBezier(.42, 0, .58, 1);
4139
+ //#region src/components/modal/ModalTrigger.vue
4140
+ var ModalTrigger_default = /* @__PURE__ */ (0, vue.defineComponent)({
4141
+ __name: "ModalTrigger",
4142
+ props: {
4143
+ as: {},
4144
+ asChild: {
4145
+ type: Boolean,
4146
+ default: false
4147
+ }
4148
+ },
4149
+ setup(__props) {
4150
+ const props = __props;
4151
+ return (_ctx, _cache) => {
4152
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.DialogTrigger), {
4153
+ as: props.as,
4154
+ "as-child": props.asChild
4155
+ }, {
4156
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
4157
+ _: 3
4158
+ }, 8, ["as", "as-child"]);
4159
+ };
4160
+ }
4161
+ });
4162
+ //#endregion
4163
+ //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/utils/createContext.mjs
4164
+ function createContext$1(providerComponentName, contextName) {
4165
+ const symbolDescription = typeof providerComponentName === "string" && !contextName ? `${providerComponentName}Context` : contextName;
4166
+ const injectionKey = Symbol(symbolDescription);
4167
+ const injectContext = (fallback) => {
4168
+ const context = (0, vue.inject)(injectionKey, fallback);
4169
+ if (context === void 0) throw new Error(`Injection \`${injectionKey.toString()}\` not found. Component must be used within ${Array.isArray(providerComponentName) ? `one of the following components: ${providerComponentName.join(", ")}` : `\`${providerComponentName}\``}`);
4170
+ return context;
4171
+ };
4172
+ const provideContext = (contextValue) => {
4173
+ (0, vue.provide)(injectionKey, contextValue);
4174
+ return contextValue;
4175
+ };
4176
+ return [
4177
+ injectContext,
4178
+ provideContext,
4179
+ injectionKey
4180
+ ];
4181
+ }
4182
+ //#endregion
4183
+ //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/utils/resolve-motion-props.mjs
4184
+ function resolveMotionProps(props, context) {
4185
+ const { layoutGroup, presenceContext, config } = context;
4186
+ const layoutId = layoutGroup.id && props.layoutId ? `${layoutGroup.id}-${props.layoutId}` : props.layoutId || void 0;
4187
+ return {
4188
+ ...props,
4189
+ layoutId,
4190
+ transition: props.transition ?? config.transition,
4191
+ layoutGroup,
4192
+ motionConfig: config,
4193
+ inViewOptions: props.inViewOptions ?? config.inViewOptions,
4194
+ presenceContext,
4195
+ initial: presenceContext.initial === false ? presenceContext.initial : props.initial === true ? void 0 : props.initial
4196
+ };
4197
+ }
4198
+ //#endregion
4199
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/array.mjs
4200
+ function addUniqueItem(arr, item) {
4201
+ if (arr.indexOf(item) === -1) arr.push(item);
4202
+ }
4203
+ function removeItem(arr, item) {
4204
+ const index = arr.indexOf(item);
4205
+ if (index > -1) arr.splice(index, 1);
4206
+ }
4207
+ //#endregion
4208
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/clamp.mjs
4209
+ var clamp = (min, max, v) => {
4210
+ if (v > max) return max;
4211
+ if (v < min) return min;
4212
+ return v;
4213
+ };
4214
+ //#endregion
4215
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/format-error-message.mjs
4216
+ function formatErrorMessage(message, errorCode) {
4217
+ return errorCode ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}` : message;
4218
+ }
4219
+ //#endregion
4220
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/errors.mjs
4221
+ var warning$1 = () => {};
4222
+ var invariant$1 = () => {};
4223
+ if (typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
4224
+ warning$1 = (check, message, errorCode) => {
4225
+ if (!check && typeof console !== "undefined") console.warn(formatErrorMessage(message, errorCode));
4226
+ };
4227
+ invariant$1 = (check, message, errorCode) => {
4228
+ if (!check) throw new Error(formatErrorMessage(message, errorCode));
4229
+ };
4230
+ }
4231
+ //#endregion
4232
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/global-config.mjs
4233
+ var MotionGlobalConfig = {};
4234
+ //#endregion
4235
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-numerical-string.mjs
4236
+ /**
4237
+ * Check if value is a numerical string, ie a string that is purely a number eg "100" or "-100.1"
4238
+ */
4239
+ var isNumericalString = (v) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v);
4240
+ //#endregion
4241
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-object.mjs
4242
+ function isObject(value) {
4243
+ return typeof value === "object" && value !== null;
4244
+ }
4245
+ //#endregion
4246
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/is-zero-value-string.mjs
4247
+ /**
4248
+ * Check if the value is a zero value string like "0px" or "0%"
4249
+ */
4250
+ var isZeroValueString = (v) => /^0[^.\s]+$/u.test(v);
4251
+ //#endregion
4252
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/memo.mjs
4253
+ /* @__NO_SIDE_EFFECTS__ */
4254
+ function memo$2(callback) {
4255
+ let result;
4256
+ return () => {
4257
+ if (result === void 0) result = callback();
4258
+ return result;
4259
+ };
4260
+ }
4261
+ //#endregion
4262
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/noop.mjs
4263
+ var noop = /* @__NO_SIDE_EFFECTS__ */ (any) => any;
4264
+ //#endregion
4265
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/pipe.mjs
4266
+ /**
4267
+ * Pipe
4268
+ * Compose other transformers to run linearily
4269
+ * pipe(min(20), max(40))
4270
+ * @param {...functions} transformers
4271
+ * @return {function}
4272
+ */
4273
+ var combineFunctions = (a, b) => (v) => b(a(v));
4274
+ var pipe = (...transformers) => transformers.reduce(combineFunctions);
4275
+ //#endregion
4276
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/progress.mjs
4277
+ var progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
4278
+ const toFromDifference = to - from;
4279
+ return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
4280
+ };
4281
+ //#endregion
4282
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/subscription-manager.mjs
4283
+ var SubscriptionManager = class {
4284
+ constructor() {
4285
+ this.subscriptions = [];
4286
+ }
4287
+ add(handler) {
4288
+ addUniqueItem(this.subscriptions, handler);
4289
+ return () => removeItem(this.subscriptions, handler);
4290
+ }
4291
+ notify(a, b, c) {
4292
+ const numSubscriptions = this.subscriptions.length;
4293
+ if (!numSubscriptions) return;
4294
+ if (numSubscriptions === 1)
4295
+ /**
4296
+ * If there's only a single handler we can just call it without invoking a loop.
4297
+ */
4298
+ this.subscriptions[0](a, b, c);
4299
+ else for (let i = 0; i < numSubscriptions; i++) {
4300
+ /**
4301
+ * Check whether the handler exists before firing as it's possible
4302
+ * the subscriptions were modified during this loop running.
4303
+ */
4304
+ const handler = this.subscriptions[i];
4305
+ handler && handler(a, b, c);
4306
+ }
4307
+ }
4308
+ getSize() {
4309
+ return this.subscriptions.length;
4310
+ }
4311
+ clear() {
4312
+ this.subscriptions.length = 0;
4313
+ }
4314
+ };
4315
+ //#endregion
4316
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/time-conversion.mjs
4317
+ /**
4318
+ * Converts seconds to milliseconds
4319
+ *
4320
+ * @param seconds - Time in seconds.
4321
+ * @return milliseconds - Converted time in milliseconds.
4322
+ */
4323
+ var secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;
4324
+ var millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
4325
+ //#endregion
4326
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/velocity-per-second.mjs
4327
+ function velocityPerSecond(velocity, frameDuration) {
4328
+ return frameDuration ? velocity * (1e3 / frameDuration) : 0;
4329
+ }
4330
+ //#endregion
4331
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/warn-once.mjs
4332
+ var warned = /* @__PURE__ */ new Set();
4333
+ function warnOnce(condition, message, errorCode) {
4334
+ if (condition || warned.has(message)) return;
4335
+ console.warn(formatErrorMessage(message, errorCode));
4336
+ warned.add(message);
4337
+ }
4338
+ //#endregion
4339
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs
4340
+ var calcBezier = (t, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t + (3 * a2 - 6 * a1)) * t + 3 * a1) * t;
4341
+ var subdivisionPrecision = 1e-7;
4342
+ var subdivisionMaxIterations = 12;
4343
+ function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {
4344
+ let currentX;
4345
+ let currentT;
4346
+ let i = 0;
4347
+ do {
4348
+ currentT = lowerBound + (upperBound - lowerBound) / 2;
4349
+ currentX = calcBezier(currentT, mX1, mX2) - x;
4350
+ if (currentX > 0) upperBound = currentT;
4351
+ else lowerBound = currentT;
4352
+ } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);
4353
+ return currentT;
4354
+ }
4355
+ function cubicBezier(mX1, mY1, mX2, mY2) {
4356
+ if (mX1 === mY1 && mX2 === mY2) return noop;
4357
+ const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
4358
+ return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
4359
+ }
4360
+ //#endregion
4361
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs
4362
+ var mirrorEasing = (easing) => (p) => p <= .5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
4363
+ //#endregion
4364
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs
4365
+ var reverseEasing = (easing) => (p) => 1 - easing(1 - p);
4366
+ //#endregion
4367
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/back.mjs
4368
+ var backOut = /* @__PURE__ */ cubicBezier(.33, 1.53, .69, .99);
4369
+ var backIn = /* @__PURE__ */ reverseEasing(backOut);
4370
+ var backInOut = /* @__PURE__ */ mirrorEasing(backIn);
4371
+ //#endregion
4372
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/anticipate.mjs
4373
+ var anticipate = (p) => p >= 1 ? 1 : (p *= 2) < 1 ? .5 * backIn(p) : .5 * (2 - Math.pow(2, -10 * (p - 1)));
4374
+ //#endregion
4375
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/circ.mjs
4376
+ var circIn = (p) => 1 - Math.sin(Math.acos(p));
4377
+ var circOut = reverseEasing(circIn);
4378
+ var circInOut = mirrorEasing(circIn);
4379
+ //#endregion
4380
+ //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/ease.mjs
4381
+ var easeIn = /* @__PURE__ */ cubicBezier(.42, 0, 1, 1);
4382
+ var easeOut = /* @__PURE__ */ cubicBezier(0, 0, .58, 1);
4383
+ var easeInOut = /* @__PURE__ */ cubicBezier(.42, 0, .58, 1);
3794
4384
  //#endregion
3795
4385
  //#region ../../node_modules/.pnpm/motion-utils@12.36.0/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs
3796
4386
  var isEasingArray = (ease) => {
@@ -12236,677 +12826,181 @@ function createMotionComponentWithFeatures(featureBundle) {
12236
12826
  }
12237
12827
  //#endregion
12238
12828
  //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/motion/index.mjs
12239
- var motion = createMotionComponentWithFeatures(domMax);
12240
- motion.create("div");
12241
- //#endregion
12242
- //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/use-pop-layout.mjs
12243
- var popId = 0;
12244
- function usePopLayout(props) {
12245
- const styles = /* @__PURE__ */ new WeakMap();
12246
- const config = useMotionConfig();
12247
- function addPopStyle(element) {
12248
- if (props.mode !== "popLayout") return;
12249
- const parent = element.offsetParent;
12250
- const parentWidth = parent instanceof HTMLElement ? parent.offsetWidth || 0 : 0;
12251
- const size = {
12252
- height: element.offsetHeight || 0,
12253
- width: element.offsetWidth || 0,
12254
- top: element.offsetTop,
12255
- left: element.offsetLeft,
12256
- right: 0
12257
- };
12258
- size.right = parentWidth - size.width - size.left;
12259
- const x = props.anchorX === "left" ? `left: ${size.left}px` : `right: ${size.right}px`;
12260
- const elementPopId = `pop-${popId++}`;
12261
- element.dataset.motionPopId = elementPopId;
12262
- const style = document.createElement("style");
12263
- if (config.value.nonce) style.nonce = config.value.nonce;
12264
- styles.set(element, style);
12265
- document.head.appendChild(style);
12266
- if (style.sheet) style.sheet.insertRule(`
12267
- [data-motion-pop-id="${elementPopId}"] {
12268
- position: absolute !important;
12269
- width: ${size.width}px !important;
12270
- height: ${size.height}px !important;
12271
- top: ${size.top}px !important;
12272
- ${x} !important;
12273
- }
12274
- `);
12275
- }
12276
- function removePopStyle(element) {
12277
- const style = styles.get(element);
12278
- if (!style) return;
12279
- styles.delete(element);
12280
- frame.render(() => {
12281
- document.head.removeChild(style);
12282
- });
12283
- }
12284
- return {
12285
- addPopStyle,
12286
- removePopStyle
12287
- };
12288
- }
12289
- //#endregion
12290
- //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/use-presence-container.mjs
12291
- var apId = 0;
12292
- function usePresenceContainer(props) {
12293
- const presenceId = String(apId++);
12294
- const exitSessions = /* @__PURE__ */ new Map();
12295
- const { addPopStyle, removePopStyle } = usePopLayout(props);
12296
- function findMotionStates(container) {
12297
- const states = [];
12298
- const selfState = mountedStates.get(container);
12299
- if (selfState && container.getAttribute(motionGlobalConfig.motionAttribute) === presenceId) states.push(selfState);
12300
- const elements = Array.from(container.querySelectorAll(`[${motionGlobalConfig.motionAttribute}="${presenceId}"]`));
12301
- for (const el of elements) {
12302
- const s = mountedStates.get(el);
12303
- if (s) states.push(s);
12304
- }
12305
- return states;
12306
- }
12307
- function onMotionExitComplete(container, state) {
12308
- const session = exitSessions.get(container);
12309
- if (!session) return;
12310
- session.remaining.delete(state);
12311
- if (session.remaining.size === 0) finalizeExit(session);
12312
- }
12313
- const presenceContext = {
12314
- initial: props.initial,
12315
- custom: props.custom,
12316
- presenceId,
12317
- onMotionExitComplete
12318
- };
12319
- provideAnimatePresence(presenceContext);
12320
- (0, vue.onMounted)(() => {
12321
- presenceContext.initial = void 0;
12322
- });
12323
- function finalizeExit(session) {
12324
- removePopStyle(session.el);
12325
- session.states.forEach((state) => {
12326
- state.getSnapshot(state.options, false);
12327
- });
12328
- session.done();
12329
- exitSessions.delete(session.el);
12330
- if (!session.el?.isConnected) session.states.forEach((state) => {
12331
- state.unmount();
12332
- });
12333
- else session.states[0]?.didUpdate();
12334
- props.onExitComplete?.();
12335
- }
12336
- function enter(el, done) {
12337
- findMotionStates(el).forEach((state) => {
12338
- state.setActive("exit", false);
12339
- state.getSnapshot(state.options, true);
12340
- });
12341
- done();
12342
- }
12343
- function exit(el, done) {
12344
- presenceContext.custom = props.custom;
12345
- const container = el;
12346
- const states = findMotionStates(container);
12347
- if (states.length === 0) {
12348
- done();
12349
- props.onExitComplete?.();
12350
- return;
12351
- }
12352
- const session = {
12353
- remaining: new Set(states),
12354
- states,
12355
- done,
12356
- el: container
12357
- };
12358
- exitSessions.set(container, session);
12359
- addPopStyle(container);
12360
- states.forEach((state) => {
12361
- state.presenceContainer = container;
12362
- state.setActive("exit", true);
12363
- state.getSnapshot(state.options, false);
12364
- });
12365
- states[0]?.didUpdate();
12366
- }
12367
- (0, vue.onUnmounted)(() => {
12368
- exitSessions.forEach((session) => {
12369
- session.states.forEach((state) => {
12370
- state.unmount();
12371
- });
12372
- });
12373
- exitSessions.clear();
12374
- });
12375
- return {
12376
- enter,
12377
- exit
12378
- };
12379
- }
12380
- //#endregion
12381
- //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/AnimatePresence.mjs
12382
- var AnimatePresence_default = /* @__PURE__ */ (0, vue.defineComponent)({
12383
- name: "AnimatePresence",
12384
- inheritAttrs: true,
12385
- __name: "AnimatePresence",
12386
- props: {
12387
- mode: { default: "sync" },
12388
- initial: {
12389
- type: Boolean,
12390
- default: true
12391
- },
12392
- as: {},
12393
- custom: {},
12394
- onExitComplete: {},
12395
- anchorX: { default: "left" }
12396
- },
12397
- setup(__props) {
12398
- const props = __props;
12399
- const { enter, exit } = usePresenceContainer(props);
12400
- const transitionProps = (0, vue.computed)(() => {
12401
- if (props.mode !== "wait") return { tag: props.as };
12402
- return { mode: props.mode === "wait" ? "out-in" : void 0 };
12403
- });
12404
- return (_ctx, _cache) => {
12405
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.mode === "wait" ? vue.Transition : vue.TransitionGroup), (0, vue.mergeProps)(transitionProps.value, {
12406
- appear: "",
12407
- css: false,
12408
- onLeave: (0, vue.unref)(exit),
12409
- onEnter: (0, vue.unref)(enter)
12410
- }), {
12411
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12412
- _: 3
12413
- }, 16, ["onLeave", "onEnter"]);
12414
- };
12415
- }
12416
- });
12417
- //#endregion
12418
- //#region ../styles/src/components/popover/popover.styles.ts
12419
- var popoverVariants = (0, tailwind_variants.tv)({ slots: {
12420
- base: "popover",
12421
- dialog: "popover__dialog",
12422
- heading: "popover__heading",
12423
- trigger: "popover__trigger"
12424
- } });
12425
- //#endregion
12426
- //#region src/components/popover/PopoverContent.vue
12427
- var PopoverContent_default = /* @__PURE__ */ (0, vue.defineComponent)({
12428
- __name: "PopoverContent",
12429
- props: {
12430
- side: { default: "bottom" },
12431
- sideOffset: { default: 8 },
12432
- align: { default: "center" },
12433
- alignOffset: { default: 0 },
12434
- avoidCollisions: {
12435
- type: Boolean,
12436
- default: true
12437
- },
12438
- class: {}
12439
- },
12440
- emits: [
12441
- "escape-key-down",
12442
- "pointer-down-outside",
12443
- "focus-outside",
12444
- "interact-outside",
12445
- "open-auto-focus",
12446
- "close-auto-focus"
12447
- ],
12448
- setup(__props, { emit: __emit }) {
12449
- const props = __props;
12450
- const emit = __emit;
12451
- const rootContext = (0, reka_ui.injectPopoverRootContext)();
12452
- const styles = popoverVariants();
12453
- return (_ctx, _cache) => {
12454
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverPortal), null, {
12455
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.PopoverContent), (0, vue.mergeProps)({
12456
- "force-mount": true,
12457
- side: props.side,
12458
- "side-offset": props.sideOffset,
12459
- align: props.align,
12460
- "align-offset": props.alignOffset,
12461
- "avoid-collisions": props.avoidCollisions
12462
- }, _ctx.$attrs, {
12463
- onEscapeKeyDown: _cache[0] || (_cache[0] = ($event) => emit("escape-key-down", $event)),
12464
- onPointerDownOutside: _cache[1] || (_cache[1] = ($event) => emit("pointer-down-outside", $event)),
12465
- onFocusOutside: _cache[2] || (_cache[2] = ($event) => emit("focus-outside", $event)),
12466
- onInteractOutside: _cache[3] || (_cache[3] = ($event) => emit("interact-outside", $event)),
12467
- onOpenAutoFocus: _cache[4] || (_cache[4] = ($event) => emit("open-auto-focus", $event)),
12468
- onCloseAutoFocus: _cache[5] || (_cache[5] = ($event) => emit("close-auto-focus", $event))
12469
- }), {
12470
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(AnimatePresence_default), null, {
12471
- default: (0, vue.withCtx)(() => [(0, vue.unref)(rootContext).open.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(motion).div, {
12472
- key: "popover-content",
12473
- class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)((0, vue.unref)(styles).base(), props.class)),
12474
- initial: {
12475
- opacity: 0,
12476
- scale: .95
12477
- },
12478
- animate: {
12479
- opacity: 1,
12480
- scale: 1
12481
- },
12482
- exit: {
12483
- opacity: 0,
12484
- scale: .95
12485
- },
12486
- transition: {
12487
- duration: .15,
12488
- ease: "easeOut"
12489
- }
12490
- }, {
12491
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12492
- _: 3
12493
- }, 8, ["class"])) : (0, vue.createCommentVNode)("", true)]),
12494
- _: 3
12495
- })]),
12496
- _: 3
12497
- }, 16, [
12498
- "side",
12499
- "side-offset",
12500
- "align",
12501
- "align-offset",
12502
- "avoid-collisions"
12503
- ])]),
12504
- _: 3
12505
- });
12506
- };
12507
- }
12508
- });
12509
- //#endregion
12510
- //#region src/components/popover/PopoverArrow.vue
12511
- var PopoverArrow_default = /* @__PURE__ */ (0, vue.defineComponent)({
12512
- __name: "PopoverArrow",
12513
- props: {
12514
- as: {},
12515
- asChild: { type: Boolean },
12516
- width: {},
12517
- height: {},
12518
- class: {}
12519
- },
12520
- setup(__props) {
12521
- const props = __props;
12522
- return (_ctx, _cache) => {
12523
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverArrow), (0, vue.mergeProps)({
12524
- as: props.as,
12525
- "as-child": props.asChild,
12526
- width: props.width,
12527
- height: props.height,
12528
- class: props.class
12529
- }, _ctx.$attrs), null, 16, [
12530
- "as",
12531
- "as-child",
12532
- "width",
12533
- "height",
12534
- "class"
12535
- ]);
12536
- };
12537
- }
12538
- });
12539
- //#endregion
12540
- //#region src/components/popover/PopoverAnchor.vue
12541
- var PopoverAnchor_default = /* @__PURE__ */ (0, vue.defineComponent)({
12542
- __name: "PopoverAnchor",
12543
- props: {
12544
- as: {},
12545
- asChild: { type: Boolean }
12546
- },
12547
- setup(__props) {
12548
- const props = __props;
12549
- return (_ctx, _cache) => {
12550
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverAnchor), (0, vue.mergeProps)({
12551
- as: props.as,
12552
- "as-child": props.asChild
12553
- }, _ctx.$attrs), {
12554
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12555
- _: 3
12556
- }, 16, ["as", "as-child"]);
12557
- };
12558
- }
12559
- });
12560
- //#endregion
12561
- //#region src/components/popover/PopoverClose.vue
12562
- var PopoverClose_default = /* @__PURE__ */ (0, vue.defineComponent)({
12563
- __name: "PopoverClose",
12564
- props: {
12565
- as: {},
12566
- asChild: { type: Boolean },
12567
- disabled: { type: Boolean },
12568
- class: {}
12569
- },
12570
- setup(__props) {
12571
- const props = __props;
12572
- return (_ctx, _cache) => {
12573
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.PopoverClose), (0, vue.mergeProps)({
12574
- as: props.as,
12575
- "as-child": props.asChild,
12576
- disabled: props.disabled,
12577
- class: props.class
12578
- }, _ctx.$attrs), {
12579
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12580
- _: 3
12581
- }, 16, [
12582
- "as",
12583
- "as-child",
12584
- "disabled",
12585
- "class"
12586
- ]);
12587
- };
12588
- }
12589
- });
12590
- //#endregion
12591
- //#region src/components/tooltip/Tooltip.vue
12592
- var Tooltip_default = (0, vue.defineComponent)({
12593
- name: "Tooltip",
12594
- props: {
12595
- defaultOpen: {
12596
- type: Boolean,
12597
- default: false
12598
- },
12599
- open: {
12600
- type: Boolean,
12601
- default: void 0
12602
- },
12603
- delayDuration: {
12604
- type: Number,
12605
- default: void 0
12606
- },
12607
- disableHoverableContent: {
12608
- type: Boolean,
12609
- default: void 0
12610
- },
12611
- disableClosingTrigger: {
12612
- type: Boolean,
12613
- default: void 0
12614
- },
12615
- disabled: {
12616
- type: Boolean,
12617
- default: void 0
12618
- },
12619
- ignoreNonKeyboardFocus: {
12620
- type: Boolean,
12621
- default: void 0
12622
- }
12623
- },
12624
- emits: ["update:open"],
12625
- setup(props, { slots, emit }) {
12626
- const rootProps = (0, vue.computed)(() => {
12627
- const p = {
12628
- defaultOpen: props.defaultOpen,
12629
- "onUpdate:open": (val) => emit("update:open", val)
12630
- };
12631
- if (props.open !== void 0) p.open = props.open;
12632
- if (props.delayDuration !== void 0) p.delayDuration = props.delayDuration;
12633
- if (props.disableHoverableContent !== void 0) p.disableHoverableContent = props.disableHoverableContent;
12634
- if (props.disableClosingTrigger !== void 0) p.disableClosingTrigger = props.disableClosingTrigger;
12635
- if (props.disabled !== void 0) p.disabled = props.disabled;
12636
- if (props.ignoreNonKeyboardFocus !== void 0) p.ignoreNonKeyboardFocus = props.ignoreNonKeyboardFocus;
12637
- return p;
12638
- });
12639
- return () => (0, vue.h)(reka_ui.TooltipRoot, rootProps.value, slots);
12640
- }
12641
- });
12642
- //#endregion
12643
- //#region src/components/tooltip/TooltipProvider.vue
12644
- var TooltipProvider_default = /* @__PURE__ */ (0, vue.defineComponent)({
12645
- __name: "TooltipProvider",
12646
- props: {
12647
- delayDuration: { default: 700 },
12648
- skipDelayDuration: { default: 300 },
12649
- disableHoverableContent: {
12650
- type: Boolean,
12651
- default: false
12652
- },
12653
- disableClosingTrigger: {
12654
- type: Boolean,
12655
- default: false
12656
- },
12657
- disabled: {
12658
- type: Boolean,
12659
- default: false
12660
- },
12661
- ignoreNonKeyboardFocus: {
12662
- type: Boolean,
12663
- default: false
12664
- },
12665
- content: {}
12666
- },
12667
- setup(__props) {
12668
- const props = __props;
12669
- return (_ctx, _cache) => {
12670
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipProvider), {
12671
- "delay-duration": props.delayDuration,
12672
- "skip-delay-duration": props.skipDelayDuration,
12673
- "disable-hoverable-content": props.disableHoverableContent,
12674
- "disable-closing-trigger": props.disableClosingTrigger,
12675
- disabled: props.disabled,
12676
- "ignore-non-keyboard-focus": props.ignoreNonKeyboardFocus,
12677
- content: props.content
12678
- }, {
12679
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12680
- _: 3
12681
- }, 8, [
12682
- "delay-duration",
12683
- "skip-delay-duration",
12684
- "disable-hoverable-content",
12685
- "disable-closing-trigger",
12686
- "disabled",
12687
- "ignore-non-keyboard-focus",
12688
- "content"
12689
- ]);
12690
- };
12691
- }
12692
- });
12693
- //#endregion
12694
- //#region src/components/tooltip/TooltipTrigger.vue
12695
- var TooltipTrigger_default = /* @__PURE__ */ (0, vue.defineComponent)({
12696
- __name: "TooltipTrigger",
12697
- props: {
12698
- asChild: { type: Boolean },
12699
- as: {}
12700
- },
12701
- setup(__props) {
12702
- const props = __props;
12703
- return (_ctx, _cache) => {
12704
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipTrigger), (0, vue.mergeProps)({
12705
- "as-child": props.asChild,
12706
- as: props.as
12707
- }, _ctx.$attrs), {
12708
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12709
- _: 3
12710
- }, 16, ["as-child", "as"]);
12711
- };
12712
- }
12713
- });
12714
- //#endregion
12715
- //#region ../styles/src/components/tooltip/tooltip.styles.ts
12716
- var tooltipVariants = (0, tailwind_variants.tv)({ slots: {
12717
- base: "tooltip",
12718
- trigger: "tooltip__trigger"
12719
- } });
12720
- //#endregion
12721
- //#region src/components/tooltip/TooltipContent.vue
12722
- var TooltipContent_default = /* @__PURE__ */ (0, vue.defineComponent)({
12723
- __name: "TooltipContent",
12724
- props: {
12725
- side: { default: "top" },
12726
- sideOffset: { default: 8 },
12727
- align: { default: "center" },
12728
- alignOffset: { default: 0 },
12729
- avoidCollisions: {
12730
- type: Boolean,
12731
- default: true
12732
- },
12733
- class: {}
12734
- },
12735
- emits: ["escape-key-down", "pointer-down-outside"],
12736
- setup(__props, { emit: __emit }) {
12737
- const props = __props;
12738
- const emit = __emit;
12739
- const rootContext = (0, reka_ui.injectTooltipRootContext)();
12740
- const styles = tooltipVariants();
12741
- return (_ctx, _cache) => {
12742
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipPortal), null, {
12743
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(reka_ui.TooltipContent), (0, vue.mergeProps)({
12744
- "force-mount": true,
12745
- side: props.side,
12746
- "side-offset": props.sideOffset,
12747
- align: props.align,
12748
- "align-offset": props.alignOffset,
12749
- "avoid-collisions": props.avoidCollisions
12750
- }, _ctx.$attrs, {
12751
- onEscapeKeyDown: _cache[0] || (_cache[0] = ($event) => emit("escape-key-down", $event)),
12752
- onPointerDownOutside: _cache[1] || (_cache[1] = ($event) => emit("pointer-down-outside", $event))
12753
- }), {
12754
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(AnimatePresence_default), null, {
12755
- default: (0, vue.withCtx)(() => [(0, vue.unref)(rootContext).open.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(motion).div, {
12756
- key: "tooltip-content",
12757
- class: (0, vue.normalizeClass)((0, vue.unref)(composeClassName)((0, vue.unref)(styles).base(), props.class)),
12758
- initial: {
12759
- opacity: 0,
12760
- scale: .9
12761
- },
12762
- animate: {
12763
- opacity: 1,
12764
- scale: 1
12765
- },
12766
- exit: {
12767
- opacity: 0,
12768
- scale: .9
12769
- },
12770
- transition: {
12771
- duration: .1,
12772
- ease: "easeOut"
12773
- }
12774
- }, {
12775
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12776
- _: 3
12777
- }, 8, ["class"])) : (0, vue.createCommentVNode)("", true)]),
12778
- _: 3
12779
- })]),
12780
- _: 3
12781
- }, 16, [
12782
- "side",
12783
- "side-offset",
12784
- "align",
12785
- "align-offset",
12786
- "avoid-collisions"
12787
- ])]),
12788
- _: 3
12789
- });
12790
- };
12791
- }
12792
- });
12793
- //#endregion
12794
- //#region src/components/tooltip/TooltipArrow.vue
12795
- var TooltipArrow_default = /* @__PURE__ */ (0, vue.defineComponent)({
12796
- __name: "TooltipArrow",
12797
- props: {
12798
- as: {},
12799
- asChild: { type: Boolean },
12800
- width: {},
12801
- height: {},
12802
- class: {}
12803
- },
12804
- setup(__props) {
12805
- const props = __props;
12806
- const styles = tooltipVariants();
12807
- return (_ctx, _cache) => {
12808
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.TooltipArrow), (0, vue.mergeProps)({
12809
- as: props.as,
12810
- "as-child": props.asChild,
12811
- width: props.width,
12812
- height: props.height,
12813
- class: (0, vue.unref)(composeClassName)((0, vue.unref)(styles).trigger(), props.class)
12814
- }, _ctx.$attrs), null, 16, [
12815
- "as",
12816
- "as-child",
12817
- "width",
12818
- "height",
12819
- "class"
12820
- ]);
12829
+ var motion = createMotionComponentWithFeatures(domMax);
12830
+ motion.create("div");
12831
+ //#endregion
12832
+ //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/use-pop-layout.mjs
12833
+ var popId = 0;
12834
+ function usePopLayout(props) {
12835
+ const styles = /* @__PURE__ */ new WeakMap();
12836
+ const config = useMotionConfig();
12837
+ function addPopStyle(element) {
12838
+ if (props.mode !== "popLayout") return;
12839
+ const parent = element.offsetParent;
12840
+ const parentWidth = parent instanceof HTMLElement ? parent.offsetWidth || 0 : 0;
12841
+ const size = {
12842
+ height: element.offsetHeight || 0,
12843
+ width: element.offsetWidth || 0,
12844
+ top: element.offsetTop,
12845
+ left: element.offsetLeft,
12846
+ right: 0
12821
12847
  };
12848
+ size.right = parentWidth - size.width - size.left;
12849
+ const x = props.anchorX === "left" ? `left: ${size.left}px` : `right: ${size.right}px`;
12850
+ const elementPopId = `pop-${popId++}`;
12851
+ element.dataset.motionPopId = elementPopId;
12852
+ const style = document.createElement("style");
12853
+ if (config.value.nonce) style.nonce = config.value.nonce;
12854
+ styles.set(element, style);
12855
+ document.head.appendChild(style);
12856
+ if (style.sheet) style.sheet.insertRule(`
12857
+ [data-motion-pop-id="${elementPopId}"] {
12858
+ position: absolute !important;
12859
+ width: ${size.width}px !important;
12860
+ height: ${size.height}px !important;
12861
+ top: ${size.top}px !important;
12862
+ ${x} !important;
12863
+ }
12864
+ `);
12822
12865
  }
12823
- });
12824
- //#endregion
12825
- //#region src/components/modal/Modal.vue?vue&type=script&lang.ts
12826
- var { useProvide: useModalProvide, useInject: useModalInject } = createContext("Modal");
12866
+ function removePopStyle(element) {
12867
+ const style = styles.get(element);
12868
+ if (!style) return;
12869
+ styles.delete(element);
12870
+ frame.render(() => {
12871
+ document.head.removeChild(style);
12872
+ });
12873
+ }
12874
+ return {
12875
+ addPopStyle,
12876
+ removePopStyle
12877
+ };
12878
+ }
12827
12879
  //#endregion
12828
- //#region src/components/modal/Modal.vue
12829
- var Modal_default = (0, vue.defineComponent)({
12830
- name: "Modal",
12831
- props: {
12832
- defaultOpen: {
12833
- type: Boolean,
12834
- default: false
12835
- },
12836
- open: {
12837
- type: Boolean,
12838
- default: void 0
12839
- },
12840
- modal: {
12841
- type: Boolean,
12842
- default: true
12843
- },
12844
- size: {
12845
- type: String,
12846
- default: "md"
12847
- },
12848
- scroll: {
12849
- type: String,
12850
- default: "inside"
12851
- },
12852
- variant: {
12853
- type: String,
12854
- default: "opaque"
12855
- },
12856
- placement: {
12857
- type: String,
12858
- default: "auto"
12880
+ //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/use-presence-container.mjs
12881
+ var apId = 0;
12882
+ function usePresenceContainer(props) {
12883
+ const presenceId = String(apId++);
12884
+ const exitSessions = /* @__PURE__ */ new Map();
12885
+ const { addPopStyle, removePopStyle } = usePopLayout(props);
12886
+ function findMotionStates(container) {
12887
+ const states = [];
12888
+ const selfState = mountedStates.get(container);
12889
+ if (selfState && container.getAttribute(motionGlobalConfig.motionAttribute) === presenceId) states.push(selfState);
12890
+ const elements = Array.from(container.querySelectorAll(`[${motionGlobalConfig.motionAttribute}="${presenceId}"]`));
12891
+ for (const el of elements) {
12892
+ const s = mountedStates.get(el);
12893
+ if (s) states.push(s);
12859
12894
  }
12860
- },
12861
- emits: ["update:open"],
12862
- setup(props, { slots, emit }) {
12863
- useModalProvide({
12864
- get size() {
12865
- return props.size;
12866
- },
12867
- get scroll() {
12868
- return props.scroll;
12869
- },
12870
- get variant() {
12871
- return props.variant;
12872
- },
12873
- get placement() {
12874
- return props.placement;
12875
- }
12895
+ return states;
12896
+ }
12897
+ function onMotionExitComplete(container, state) {
12898
+ const session = exitSessions.get(container);
12899
+ if (!session) return;
12900
+ session.remaining.delete(state);
12901
+ if (session.remaining.size === 0) finalizeExit(session);
12902
+ }
12903
+ const presenceContext = {
12904
+ initial: props.initial,
12905
+ custom: props.custom,
12906
+ presenceId,
12907
+ onMotionExitComplete
12908
+ };
12909
+ provideAnimatePresence(presenceContext);
12910
+ (0, vue.onMounted)(() => {
12911
+ presenceContext.initial = void 0;
12912
+ });
12913
+ function finalizeExit(session) {
12914
+ removePopStyle(session.el);
12915
+ session.states.forEach((state) => {
12916
+ state.getSnapshot(state.options, false);
12876
12917
  });
12877
- const rootProps = (0, vue.computed)(() => {
12878
- const p = {
12879
- defaultOpen: props.defaultOpen,
12880
- modal: props.modal,
12881
- "onUpdate:open": (val) => emit("update:open", val)
12882
- };
12883
- if (props.open !== void 0) p.open = props.open;
12884
- return p;
12918
+ session.done();
12919
+ exitSessions.delete(session.el);
12920
+ if (!session.el?.isConnected) session.states.forEach((state) => {
12921
+ state.unmount();
12885
12922
  });
12886
- return () => (0, vue.h)(reka_ui.DialogRoot, rootProps.value, slots);
12923
+ else session.states[0]?.didUpdate();
12924
+ props.onExitComplete?.();
12887
12925
  }
12888
- });
12926
+ function enter(el, done) {
12927
+ findMotionStates(el).forEach((state) => {
12928
+ state.setActive("exit", false);
12929
+ state.getSnapshot(state.options, true);
12930
+ });
12931
+ done();
12932
+ }
12933
+ function exit(el, done) {
12934
+ presenceContext.custom = props.custom;
12935
+ const container = el;
12936
+ const states = findMotionStates(container);
12937
+ if (states.length === 0) {
12938
+ done();
12939
+ props.onExitComplete?.();
12940
+ return;
12941
+ }
12942
+ const session = {
12943
+ remaining: new Set(states),
12944
+ states,
12945
+ done,
12946
+ el: container
12947
+ };
12948
+ exitSessions.set(container, session);
12949
+ addPopStyle(container);
12950
+ states.forEach((state) => {
12951
+ state.presenceContainer = container;
12952
+ state.setActive("exit", true);
12953
+ state.getSnapshot(state.options, false);
12954
+ });
12955
+ states[0]?.didUpdate();
12956
+ }
12957
+ (0, vue.onUnmounted)(() => {
12958
+ exitSessions.forEach((session) => {
12959
+ session.states.forEach((state) => {
12960
+ state.unmount();
12961
+ });
12962
+ });
12963
+ exitSessions.clear();
12964
+ });
12965
+ return {
12966
+ enter,
12967
+ exit
12968
+ };
12969
+ }
12889
12970
  //#endregion
12890
- //#region src/components/modal/ModalTrigger.vue
12891
- var ModalTrigger_default = /* @__PURE__ */ (0, vue.defineComponent)({
12892
- __name: "ModalTrigger",
12971
+ //#region ../../node_modules/.pnpm/motion-v@2.2.1_@vueuse+core@14.2.1_vue@3.5.32_typescript@6.0.2___react-dom@19.2.5_react_8b28b23614a2152514812dba6ef76a55/node_modules/motion-v/dist/es/components/animate-presence/AnimatePresence.mjs
12972
+ var AnimatePresence_default = /* @__PURE__ */ (0, vue.defineComponent)({
12973
+ name: "AnimatePresence",
12974
+ inheritAttrs: true,
12975
+ __name: "AnimatePresence",
12893
12976
  props: {
12894
- as: {},
12895
- asChild: {
12977
+ mode: { default: "sync" },
12978
+ initial: {
12896
12979
  type: Boolean,
12897
- default: false
12898
- }
12980
+ default: true
12981
+ },
12982
+ as: {},
12983
+ custom: {},
12984
+ onExitComplete: {},
12985
+ anchorX: { default: "left" }
12899
12986
  },
12900
12987
  setup(__props) {
12901
12988
  const props = __props;
12989
+ const { enter, exit } = usePresenceContainer(props);
12990
+ const transitionProps = (0, vue.computed)(() => {
12991
+ if (props.mode !== "wait") return { tag: props.as };
12992
+ return { mode: props.mode === "wait" ? "out-in" : void 0 };
12993
+ });
12902
12994
  return (_ctx, _cache) => {
12903
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(reka_ui.DialogTrigger), {
12904
- as: props.as,
12905
- "as-child": props.asChild
12906
- }, {
12995
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.mode === "wait" ? vue.Transition : vue.TransitionGroup), (0, vue.mergeProps)(transitionProps.value, {
12996
+ appear: "",
12997
+ css: false,
12998
+ onLeave: (0, vue.unref)(exit),
12999
+ onEnter: (0, vue.unref)(enter)
13000
+ }), {
12907
13001
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
12908
13002
  _: 3
12909
- }, 8, ["as", "as-child"]);
13003
+ }, 16, ["onLeave", "onEnter"]);
12910
13004
  };
12911
13005
  }
12912
13006
  });
@@ -29438,9 +29532,12 @@ var DatePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
29438
29532
  align: {},
29439
29533
  alignOffset: {},
29440
29534
  alignFlip: { type: Boolean },
29441
- avoidCollisions: { type: Boolean },
29535
+ avoidCollisions: {
29536
+ type: Boolean,
29537
+ default: true
29538
+ },
29442
29539
  collisionBoundary: {},
29443
- collisionPadding: {},
29540
+ collisionPadding: { default: 8 },
29444
29541
  arrowPadding: {},
29445
29542
  hideShiftedArrow: { type: Boolean },
29446
29543
  sticky: {},
@@ -29448,7 +29545,10 @@ var DatePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
29448
29545
  positionStrategy: {},
29449
29546
  updatePositionStrategy: {},
29450
29547
  disableUpdateOnLayoutShift: { type: Boolean },
29451
- prioritizePosition: { type: Boolean },
29548
+ prioritizePosition: {
29549
+ type: Boolean,
29550
+ default: true
29551
+ },
29452
29552
  reference: {},
29453
29553
  contentAs: {},
29454
29554
  contentAsChild: { type: Boolean },
@@ -29844,9 +29944,12 @@ var DateRangePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
29844
29944
  align: {},
29845
29945
  alignOffset: {},
29846
29946
  alignFlip: { type: Boolean },
29847
- avoidCollisions: { type: Boolean },
29947
+ avoidCollisions: {
29948
+ type: Boolean,
29949
+ default: true
29950
+ },
29848
29951
  collisionBoundary: {},
29849
- collisionPadding: {},
29952
+ collisionPadding: { default: 8 },
29850
29953
  arrowPadding: {},
29851
29954
  hideShiftedArrow: { type: Boolean },
29852
29955
  sticky: {},
@@ -29854,7 +29957,10 @@ var DateRangePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
29854
29957
  positionStrategy: {},
29855
29958
  updatePositionStrategy: {},
29856
29959
  disableUpdateOnLayoutShift: { type: Boolean },
29857
- prioritizePosition: { type: Boolean },
29960
+ prioritizePosition: {
29961
+ type: Boolean,
29962
+ default: true
29963
+ },
29858
29964
  reference: {},
29859
29965
  contentAs: {},
29860
29966
  contentAsChild: { type: Boolean },
@@ -30397,9 +30503,12 @@ var DateTimePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
30397
30503
  align: {},
30398
30504
  alignOffset: {},
30399
30505
  alignFlip: { type: Boolean },
30400
- avoidCollisions: { type: Boolean },
30506
+ avoidCollisions: {
30507
+ type: Boolean,
30508
+ default: true
30509
+ },
30401
30510
  collisionBoundary: {},
30402
- collisionPadding: {},
30511
+ collisionPadding: { default: 8 },
30403
30512
  arrowPadding: {},
30404
30513
  hideShiftedArrow: { type: Boolean },
30405
30514
  sticky: {},
@@ -30407,7 +30516,10 @@ var DateTimePicker_default = /* @__PURE__ */ (0, vue.defineComponent)({
30407
30516
  positionStrategy: {},
30408
30517
  updatePositionStrategy: {},
30409
30518
  disableUpdateOnLayoutShift: { type: Boolean },
30410
- prioritizePosition: { type: Boolean },
30519
+ prioritizePosition: {
30520
+ type: Boolean,
30521
+ default: true
30522
+ },
30411
30523
  reference: {},
30412
30524
  contentAs: {},
30413
30525
  contentAsChild: { type: Boolean },