ropav 0.0.2 → 0.0.4

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 (74) hide show
  1. package/README.md +32 -3
  2. package/dist/base.css +153 -77
  3. package/dist/button.css +276 -32
  4. package/dist/button.js +40 -19
  5. package/dist/button.js.map +1 -1
  6. package/dist/checkbox.css +127 -19
  7. package/dist/checkbox.js +57 -44
  8. package/dist/checkbox.js.map +1 -1
  9. package/dist/components/button/button.d.ts +2 -2
  10. package/dist/components/button/index.d.ts +1 -1
  11. package/dist/components/button/types.d.ts +8 -1
  12. package/dist/components/checkbox/index.d.ts +1 -1
  13. package/dist/components/checkbox/types.d.ts +8 -0
  14. package/dist/components/input/index.d.ts +1 -1
  15. package/dist/components/input/input.d.ts +5 -1
  16. package/dist/components/input/types.d.ts +5 -0
  17. package/dist/components/radio/index.d.ts +1 -1
  18. package/dist/components/radio/types.d.ts +12 -0
  19. package/dist/components/select/types.d.ts +3 -0
  20. package/dist/components/select/useSelect.d.ts +2 -0
  21. package/dist/components/switch/index.d.ts +1 -1
  22. package/dist/components/switch/types.d.ts +4 -0
  23. package/dist/components/textarea/index.d.ts +1 -1
  24. package/dist/components/textarea/types.d.ts +5 -0
  25. package/dist/components/textarea/useTextarea.d.ts +1 -0
  26. package/dist/index.d.ts +0 -2
  27. package/dist/index.js +2 -4
  28. package/dist/input.css +91 -15
  29. package/dist/input.js +66 -23
  30. package/dist/input.js.map +1 -1
  31. package/dist/radio.css +84 -16
  32. package/dist/radio.js +35 -8
  33. package/dist/radio.js.map +1 -1
  34. package/dist/select.css +97 -32
  35. package/dist/select.js +128 -88
  36. package/dist/select.js.map +1 -1
  37. package/dist/switch.css +75 -20
  38. package/dist/switch.js +8 -4
  39. package/dist/switch.js.map +1 -1
  40. package/dist/textarea.css +84 -14
  41. package/dist/textarea.js +33 -5
  42. package/dist/textarea.js.map +1 -1
  43. package/dist/useControlState.js +4 -0
  44. package/dist/useControlState.js.map +1 -1
  45. package/package.json +11 -10
  46. package/src/styles/_mixins.scss +21 -11
  47. package/src/styles/_tokens.scss +168 -96
  48. package/src/styles/_variables.scss +30 -28
  49. package/dist/components/_internal/icons/CheckIcon.d.ts +0 -18
  50. package/dist/components/_internal/icons/ChevronDownIcon.d.ts +0 -18
  51. package/dist/components/_internal/icons/MinusIcon.d.ts +0 -18
  52. package/dist/components/_internal/icons/index.d.ts +0 -3
  53. package/dist/components/_internal/optionList.d.ts +0 -9
  54. package/dist/components/tabs/index.d.ts +0 -5
  55. package/dist/components/tabs/index.js +0 -2
  56. package/dist/components/tabs/tab-panel.d.ts +0 -21
  57. package/dist/components/tabs/tabs-list.d.ts +0 -20
  58. package/dist/components/tabs/tabs-trigger.d.ts +0 -21
  59. package/dist/components/tabs/tabs.d.ts +0 -23
  60. package/dist/components/tabs/types.d.ts +0 -18
  61. package/dist/components/tabs/useTabs.d.ts +0 -19
  62. package/dist/components/tooltip/index.d.ts +0 -2
  63. package/dist/components/tooltip/index.js +0 -2
  64. package/dist/components/tooltip/tooltip.d.ts +0 -23
  65. package/dist/components/tooltip/types.d.ts +0 -5
  66. package/dist/components/tooltip/useTooltip.d.ts +0 -8
  67. package/dist/tabs.css +0 -45
  68. package/dist/tabs.js +0 -205
  69. package/dist/tabs.js.map +0 -1
  70. package/dist/tooltip.css +0 -78
  71. package/dist/tooltip.js +0 -112
  72. package/dist/tooltip.js.map +0 -1
  73. package/dist/useRequiredInject.js +0 -11
  74. package/dist/useRequiredInject.js.map +0 -1
@@ -3,12 +3,15 @@ export interface SelectOption {
3
3
  value: string | number;
4
4
  disabled?: boolean;
5
5
  }
6
+ export type SelectRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
7
  export interface SelectProps {
7
8
  id?: string;
8
9
  name?: string;
9
10
  modelValue: string | number | null;
10
11
  options?: SelectOption[];
12
+ radius?: SelectRadius;
11
13
  placeholder?: string;
14
+ clearable?: boolean;
12
15
  disabled?: boolean;
13
16
  required?: boolean;
14
17
  invalid?: boolean;
@@ -13,8 +13,10 @@ export declare function useSelect(props: Readonly<SelectProps>, emitUpdate: (val
13
13
  rootClass: import('vue').ComputedRef<string[]>;
14
14
  hasValue: import('vue').ComputedRef<boolean>;
15
15
  displayLabel: import('vue').ComputedRef<string>;
16
+ canClear: import('vue').ComputedRef<boolean>;
16
17
  toggle: () => void;
17
18
  selectOption: (option: SelectOption) => void;
19
+ clearSelection: () => void;
18
20
  onOptionMouseenter: (option: SelectOption, index: number) => void;
19
21
  onTriggerKeydown: (e: KeyboardEvent) => void;
20
22
  };
@@ -1,2 +1,2 @@
1
1
  export { default as Switch } from './switch';
2
- export type { SwitchProps } from './types';
2
+ export type { SwitchColor, SwitchProps, SwitchSize } from './types';
@@ -1,7 +1,11 @@
1
+ export type SwitchColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
2
+ export type SwitchSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1
3
  export interface SwitchProps {
2
4
  id?: string;
3
5
  name?: string;
4
6
  modelValue: boolean;
7
+ color?: SwitchColor;
8
+ size?: SwitchSize;
5
9
  disabled?: boolean;
6
10
  required?: boolean;
7
11
  invalid?: boolean;
@@ -1,2 +1,2 @@
1
1
  export { default as Textarea } from './textarea';
2
- export type { TextareaProps } from './types';
2
+ export type { TextareaProps, TextareaRadius, TextareaSize } from './types';
@@ -1,13 +1,18 @@
1
+ export type TextareaRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
+ export type TextareaSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1
3
  export interface TextareaProps {
2
4
  id?: string;
3
5
  name?: string;
4
6
  modelValue: string;
7
+ size?: TextareaSize;
8
+ radius?: TextareaRadius;
5
9
  placeholder?: string;
6
10
  rows?: number;
7
11
  disabled?: boolean;
8
12
  readonly?: boolean;
9
13
  required?: boolean;
10
14
  invalid?: boolean;
15
+ valid?: boolean;
11
16
  ariaLabel?: string;
12
17
  describedby?: string;
13
18
  labelledby?: string;
@@ -3,4 +3,5 @@ export declare function useTextarea(props: Readonly<TextareaProps>, emitUpdate:
3
3
  control: import('../../composables/useControlState').ControlState;
4
4
  rootClass: import('vue').ComputedRef<string[]>;
5
5
  onInput: (e: Event) => void;
6
+ focusTextarea: (e: MouseEvent) => void;
6
7
  };
package/dist/index.d.ts CHANGED
@@ -4,6 +4,4 @@ export * from './components/input';
4
4
  export * from './components/radio';
5
5
  export * from './components/select';
6
6
  export * from './components/switch';
7
- export * from './components/tabs';
8
7
  export * from './components/textarea';
9
- export * from './components/tooltip';
package/dist/index.js CHANGED
@@ -1,10 +1,8 @@
1
1
  import { t as button_default } from "./button.js";
2
2
  import { t as checkbox_default } from "./checkbox.js";
3
- import { t as select_default } from "./select.js";
4
3
  import { t as input_default } from "./input.js";
5
4
  import { n as radio_default, t as radio_group_default } from "./radio.js";
5
+ import { t as select_default } from "./select.js";
6
6
  import { t as switch_default } from "./switch.js";
7
- import { i as tabs_default, n as tabs_trigger_default, r as tabs_list_default, t as tab_panel_default } from "./tabs.js";
8
7
  import { t as textarea_default } from "./textarea.js";
9
- import { t as tooltip_default } from "./tooltip.js";
10
- export { button_default as Button, checkbox_default as Checkbox, input_default as Input, radio_default as Radio, radio_group_default as RadioGroup, select_default as Select, switch_default as Switch, tab_panel_default as TabPanel, tabs_default as Tabs, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, textarea_default as Textarea, tooltip_default as Tooltip };
8
+ export { button_default as Button, checkbox_default as Checkbox, input_default as Input, radio_default as Radio, radio_group_default as RadioGroup, select_default as Select, switch_default as Switch, textarea_default as Textarea };
package/dist/input.css CHANGED
@@ -1,4 +1,12 @@
1
- .rp-input[data-v-7e1222cc] {
1
+ .rp-input[data-v-fedf15e7] {
2
+ --_rp-input-height: var(--rp-size-control-md);
3
+ --_rp-input-padding-x: var(--rp-spacing-3);
4
+ --_rp-input-font-size: var(--rp-font-size-base);
5
+ --_rp-input-radius: var(--rp-radius-sm);
6
+ --_rp-input-valid-border: var(--rp-color-success-border-hover);
7
+ --_rp-input-valid-ring: color-mix(in srgb, var(--rp-color-success) 32%, transparent);
8
+ --_rp-input-invalid-border: var(--rp-color-danger-border-hover);
9
+ --_rp-input-invalid-ring: color-mix(in srgb, var(--rp-color-danger) 32%, transparent);
2
10
  display: inline-flex;
3
11
  align-items: center;
4
12
  justify-content: center;
@@ -8,34 +16,96 @@
8
16
  font-weight: var(--rp-font-weight-normal);
9
17
  background-color: var(--rp-color-control-bg);
10
18
  border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
19
+ cursor: text;
11
20
  transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
12
21
  }
13
- .rp-input[data-v-7e1222cc]:hover:not(.rp-input--disabled) {
22
+ .rp-input[data-v-fedf15e7]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
14
23
  border-color: var(--rp-color-control-border-hover);
15
24
  }
16
- .rp-input[data-v-7e1222cc]:focus-within:not(.rp-input--disabled) {
25
+ .rp-input[data-v-fedf15e7]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
17
26
  border-color: var(--rp-color-control-border-focus);
18
27
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
19
28
  }
20
- .rp-input[data-v-7e1222cc] {
21
- height: var(--rp-size-control-md);
22
- padding: 0 var(--rp-spacing-4);
23
- font-size: var(--rp-font-size-base);
24
- border-radius: var(--rp-radius-lg);
29
+ .rp-input[data-v-fedf15e7] {
30
+ height: var(--_rp-input-height);
31
+ padding: 0 var(--_rp-input-padding-x);
32
+ font-size: var(--_rp-input-font-size);
33
+ border-radius: var(--_rp-input-radius);
25
34
  }
26
- .rp-input--disabled[data-v-7e1222cc] {
35
+ .rp-input--size-xs[data-v-fedf15e7] {
36
+ --_rp-input-height: calc(var(--rp-size-control-sm) - var(--rp-spacing-1));
37
+ --_rp-input-padding-x: var(--rp-spacing-1);
38
+ --_rp-input-font-size: var(--rp-font-size-xs);
39
+ }
40
+ .rp-input--size-sm[data-v-fedf15e7] {
41
+ --_rp-input-height: var(--rp-size-control-sm);
42
+ --_rp-input-padding-x: var(--rp-spacing-2);
43
+ --_rp-input-font-size: var(--rp-font-size-sm);
44
+ }
45
+ .rp-input--size-md[data-v-fedf15e7] {
46
+ --_rp-input-height: var(--rp-size-control-md);
47
+ --_rp-input-padding-x: var(--rp-spacing-3);
48
+ --_rp-input-font-size: var(--rp-font-size-base);
49
+ }
50
+ .rp-input--size-lg[data-v-fedf15e7] {
51
+ --_rp-input-height: var(--rp-size-control-lg);
52
+ --_rp-input-padding-x: var(--rp-spacing-4);
53
+ --_rp-input-font-size: var(--rp-font-size-lg);
54
+ }
55
+ .rp-input--size-xl[data-v-fedf15e7] {
56
+ --_rp-input-height: calc(var(--rp-size-control-lg) + var(--rp-spacing-2));
57
+ --_rp-input-padding-x: var(--rp-spacing-5);
58
+ --_rp-input-font-size: var(--rp-font-size-lg);
59
+ }
60
+ .rp-input--radius-xs[data-v-fedf15e7] {
61
+ --_rp-input-radius: var(--rp-radius-sm);
62
+ }
63
+ .rp-input--radius-sm[data-v-fedf15e7] {
64
+ --_rp-input-radius: var(--rp-radius-sm);
65
+ }
66
+ .rp-input--radius-md[data-v-fedf15e7] {
67
+ --_rp-input-radius: var(--rp-radius-md);
68
+ }
69
+ .rp-input--radius-lg[data-v-fedf15e7] {
70
+ --_rp-input-radius: var(--rp-radius-lg);
71
+ }
72
+ .rp-input--radius-xl[data-v-fedf15e7] {
73
+ --_rp-input-radius: var(--rp-radius-xl);
74
+ }
75
+ html.dark .rp-input[data-v-fedf15e7] {
76
+ --_rp-input-valid-border: var(--rp-color-success-fg);
77
+ --_rp-input-valid-ring: color-mix(in srgb, var(--rp-color-success-fg) 32%, transparent);
78
+ --_rp-input-invalid-border: var(--rp-color-danger-fg);
79
+ --_rp-input-invalid-ring: color-mix(in srgb, var(--rp-color-danger-fg) 32%, transparent);
80
+ }
81
+ .rp-input--disabled[data-v-fedf15e7] {
27
82
  opacity: var(--rp-opacity-disabled);
28
83
  cursor: not-allowed;
29
84
  }
30
- .rp-input--invalid[data-v-7e1222cc] {
31
- border-color: var(--rp-color-danger-fg);
85
+ .rp-input--valid[data-v-fedf15e7] {
86
+ border-color: var(--_rp-input-valid-border);
87
+ }
88
+ .rp-input--valid[data-v-fedf15e7]:focus-within:not(.rp-input--disabled) {
89
+ border-color: var(--_rp-input-valid-border);
90
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-valid-ring);
91
+ }
92
+ .rp-input--invalid[data-v-fedf15e7] {
93
+ border-color: var(--_rp-input-invalid-border);
94
+ }
95
+ .rp-input--invalid[data-v-fedf15e7]:focus-within:not(.rp-input--disabled) {
96
+ border-color: var(--_rp-input-invalid-border);
97
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-invalid-ring);
32
98
  }
33
- .rp-input--readonly[data-v-7e1222cc] {
99
+ .rp-input--readonly[data-v-fedf15e7] {
34
100
  background-color: var(--rp-color-control-readonly-bg);
35
101
  }
36
- .rp-input__native[data-v-7e1222cc] {
102
+ .rp-input__native[data-v-fedf15e7] {
103
+ box-sizing: border-box;
37
104
  flex: 1;
105
+ width: 100%;
106
+ height: 100%;
38
107
  min-width: 0;
108
+ padding: 0;
39
109
  border: none;
40
110
  outline: none;
41
111
  background: transparent;
@@ -43,9 +113,15 @@
43
113
  color: var(--rp-color-control-fg);
44
114
  line-height: var(--rp-line-height-none);
45
115
  }
46
- .rp-input__native[data-v-7e1222cc]::placeholder {
116
+ .rp-input__native[data-v-fedf15e7]::placeholder {
47
117
  color: var(--rp-color-control-placeholder);
48
118
  }
49
- .rp-input__native[data-v-7e1222cc]:disabled {
119
+ .rp-input__native[data-v-fedf15e7]:disabled {
50
120
  cursor: not-allowed;
121
+ }
122
+ .rp-input__left[data-v-fedf15e7], .rp-input__right[data-v-fedf15e7] {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ flex-shrink: 0;
126
+ color: var(--rp-color-control-icon);
51
127
  }
package/dist/input.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import './input.css';
2
2
  import { n as bem, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
3
  import { t as useControlState } from "./useControlState.js";
4
- import { child, computed, createInvoker, defineVaporComponent, delegateEvents, renderEffect, setAttr, setClass, setProp, setValue, template, unref } from "vue";
4
+ import { child, computed, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, renderEffect, setAttr, setClass, setInsertionState, setProp, setValue, template, unref } from "vue";
5
5
  //#region src/components/input/input.vue?vue&type=script&setup=true&vapor=true&lang.ts
6
- var t0 = template("<div data-v-7e1222cc><input data-v-7e1222cc class=rp-input__native>", 1);
7
- delegateEvents("input");
6
+ var t0 = template("<span data-v-fedf15e7 class=rp-input__left>");
7
+ var t1 = template("<span data-v-fedf15e7 class=rp-input__right>");
8
+ var t2 = template("<label data-v-fedf15e7><input data-v-fedf15e7 class=rp-input__native>", 1);
9
+ delegateEvents("input", "mousedown");
8
10
  //#endregion
9
11
  //#region src/components/input/input.vue
10
12
  var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -15,6 +17,8 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
15
17
  name: {},
16
18
  modelValue: {},
17
19
  type: { default: "text" },
20
+ size: {},
21
+ radius: {},
18
22
  placeholder: { default: "" },
19
23
  disabled: {
20
24
  type: Boolean,
@@ -32,47 +36,86 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
32
36
  type: Boolean,
33
37
  default: void 0
34
38
  },
39
+ valid: {
40
+ type: Boolean,
41
+ default: void 0
42
+ },
35
43
  ariaLabel: {},
36
44
  describedby: {},
37
45
  labelledby: {}
38
46
  },
39
47
  emits: ["update:modelValue"],
40
- setup(__props, { emit: __emit }) {
48
+ setup(__props, { emit: __emit, slots: $slots }) {
41
49
  const props = __props;
42
50
  const emit = __emit;
43
51
  const control = useControlState(props);
44
52
  const rootClass = computed(() => bem("rp-input", {
53
+ [`size-${props.size}`]: Boolean(props.size),
54
+ [`radius-${props.radius}`]: Boolean(props.radius),
45
55
  disabled: control.disabled,
46
56
  invalid: control.invalid,
57
+ valid: control.valid && !control.invalid,
47
58
  readonly: props.readonly
48
59
  }));
49
60
  function onInput(e) {
50
61
  emit("update:modelValue", e.target.value);
51
62
  }
52
- const n1 = t0();
53
- const n0 = child(n1);
54
- n0.$evtinput = createInvoker(onInput);
63
+ function focusInput(e) {
64
+ if (control.disabled) return;
65
+ const target = e.target;
66
+ if (target instanceof Element && isInteractiveElement(target)) return;
67
+ e.currentTarget.querySelector(".rp-input__native")?.focus();
68
+ }
69
+ function isInteractiveElement(target) {
70
+ return Boolean(target.closest([
71
+ "button",
72
+ "a[href]",
73
+ "input:not(.rp-input__native)",
74
+ "select",
75
+ "textarea",
76
+ "[contenteditable=\"true\"]",
77
+ "[tabindex]:not([tabindex=\"-1\"])"
78
+ ].join(",")));
79
+ }
80
+ const n9 = t2();
81
+ const n4 = child(n9, 1);
82
+ renderEffect(() => setClass(n9, rootClass.value));
83
+ setInsertionState(n9, 0, 0);
84
+ createIf(() => $slots.left, () => {
85
+ const n3 = t0();
86
+ setInsertionState(n3, null, 0);
87
+ createSlot("left", null, null, 1);
88
+ return n3;
89
+ });
90
+ n4.$evtinput = createInvoker(onInput);
55
91
  renderEffect(() => {
56
92
  const _control = unref(control);
57
93
  const _control_required = _control.required;
58
- setClass(n1, rootClass.value);
59
- setProp(n0, "id", _control.id);
60
- setProp(n0, "name", __props.name);
61
- setProp(n0, "type", __props.type);
62
- setValue(n0, __props.modelValue);
63
- setProp(n0, "placeholder", __props.placeholder);
64
- setProp(n0, "disabled", _control.disabled || void 0);
65
- setProp(n0, "readonly", __props.readonly || void 0);
66
- setProp(n0, "required", _control_required || void 0);
67
- setAttr(n0, "aria-label", __props.ariaLabel || void 0);
68
- setAttr(n0, "aria-labelledby", _control.ariaLabelledby);
69
- setAttr(n0, "aria-describedby", _control.ariaDescribedby);
70
- setAttr(n0, "aria-invalid", _control.invalid || void 0);
71
- setAttr(n0, "aria-required", _control_required || void 0);
94
+ setProp(n4, "id", _control.id);
95
+ setProp(n4, "name", __props.name);
96
+ setProp(n4, "type", __props.type);
97
+ setValue(n4, __props.modelValue);
98
+ setProp(n4, "placeholder", __props.placeholder);
99
+ setProp(n4, "disabled", _control.disabled || void 0);
100
+ setProp(n4, "readonly", __props.readonly || void 0);
101
+ setProp(n4, "required", _control_required || void 0);
102
+ setAttr(n4, "aria-label", __props.ariaLabel || void 0);
103
+ setAttr(n4, "aria-labelledby", _control.ariaLabelledby);
104
+ setAttr(n4, "aria-describedby", _control.ariaDescribedby);
105
+ setAttr(n4, "aria-invalid", _control.invalid || void 0);
106
+ setAttr(n4, "aria-required", _control_required || void 0);
107
+ });
108
+ setInsertionState(n9, null, 2);
109
+ createIf(() => $slots.right, () => {
110
+ const n8 = t1();
111
+ setInsertionState(n8, null, 0);
112
+ createSlot("right", null, null, 1);
113
+ return n8;
72
114
  });
73
- return n1;
115
+ n9.$evtmousedown = createInvoker(focusInput);
116
+ return n9;
74
117
  }
75
- }), [["__scopeId", "data-v-7e1222cc"]]);
118
+ }), [["__scopeId", "data-v-fedf15e7"]]);
76
119
  //#endregion
77
120
  export { input_default as t };
78
121
 
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../src/components/input/input.vue","../src/components/input/input.vue"],"sourcesContent":["<template>\n <div :class=\"rootClass\">\n <input\n :id=\"control.id\"\n :name=\"name\"\n class=\"rp-input__native\"\n :type=\"type\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n :disabled=\"control.disabled || undefined\"\n :readonly=\"readonly || undefined\"\n :required=\"control.required || undefined\"\n :aria-label=\"ariaLabel || undefined\"\n :aria-labelledby=\"control.ariaLabelledby\"\n :aria-describedby=\"control.ariaDescribedby\"\n :aria-invalid=\"control.invalid || undefined\"\n :aria-required=\"control.required || undefined\"\n @input=\"onInput\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { InputProps } from './types';\n\ndefineOptions({ name: 'RpInput' });\n\nconst props = withDefaults(defineProps<InputProps>(), {\n type: 'text',\n placeholder: '',\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n readonly: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst control = useControlState(props);\n\nconst rootClass = computed(() =>\n bem('rp-input', {\n disabled: control.disabled,\n invalid: control.invalid,\n readonly: props.readonly,\n }),\n);\n\nfunction onInput(e: Event) {\n emit('update:modelValue', (e.target as HTMLInputElement).value);\n}\n</script>\n\n<style src=\"./input.scss\" lang=\"scss\" scoped></style>\n","<template>\n <div :class=\"rootClass\">\n <input\n :id=\"control.id\"\n :name=\"name\"\n class=\"rp-input__native\"\n :type=\"type\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n :disabled=\"control.disabled || undefined\"\n :readonly=\"readonly || undefined\"\n :required=\"control.required || undefined\"\n :aria-label=\"ariaLabel || undefined\"\n :aria-labelledby=\"control.ariaLabelledby\"\n :aria-describedby=\"control.ariaDescribedby\"\n :aria-invalid=\"control.invalid || undefined\"\n :aria-required=\"control.required || undefined\"\n @input=\"onInput\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { InputProps } from './types';\n\ndefineOptions({ name: 'RpInput' });\n\nconst props = withDefaults(defineProps<InputProps>(), {\n type: 'text',\n placeholder: '',\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n readonly: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst control = useControlState(props);\n\nconst rootClass = computed(() =>\n bem('rp-input', {\n disabled: control.disabled,\n invalid: control.invalid,\n readonly: props.readonly,\n }),\n);\n\nfunction onInput(e: Event) {\n emit('update:modelValue', (e.target as HTMLInputElement).value);\n}\n</script>\n\n<style src=\"./input.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BA,MAAM,QAAQ;EASd,MAAM,OAAO;EAIb,MAAM,UAAU,gBAAgB,KAAK;EAErC,MAAM,YAAY,eACd,IAAI,YAAY;GACZ,UAAU,QAAQ;GAClB,SAAS,QAAQ;GACjB,UAAU,MAAM;EACpB,CAAC,CACL;EAEA,SAAS,QAAQ,GAAU;GACvB,KAAK,qBAAsB,EAAE,OAA4B,KAAK;EAClE;;;+BAtCoB,OAAO;;;;gBAhBV,UAAA,KAAS;eAEb,MAAI,SAAO,EAAA;eACX,QAAM,QAAA,IAAI;eAEV,QAAM,QAAA,IAAI;gBACH,QAAA,UAAU;eACjB,eAAa,QAAA,WAAW;eACxB,YAAU,SAAO,YAAa,KAAA,CAAS;eACvC,YAAU,QAAA,YAAY,KAAA,CAAS;eAC/B,YAAU,qBAAoB,KAAA,CAAS;eACvC,cAAY,QAAA,aAAa,KAAA,CAAS;eAClC,mBAAiB,SAAO,cAAA;eACxB,oBAAkB,SAAO,eAAA;eACzB,gBAAc,SAAO,WAAY,KAAA,CAAS;eAC1C,iBAAe,qBAAoB,KAAA,CAAS"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../src/components/input/input.vue","../src/components/input/input.vue"],"sourcesContent":["<template>\n <label :class=\"rootClass\" @mousedown=\"focusInput\">\n <span v-if=\"$slots.left\" class=\"rp-input__left\">\n <slot name=\"left\" />\n </span>\n <input\n :id=\"control.id\"\n :name=\"name\"\n class=\"rp-input__native\"\n :type=\"type\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n :disabled=\"control.disabled || undefined\"\n :readonly=\"readonly || undefined\"\n :required=\"control.required || undefined\"\n :aria-label=\"ariaLabel || undefined\"\n :aria-labelledby=\"control.ariaLabelledby\"\n :aria-describedby=\"control.ariaDescribedby\"\n :aria-invalid=\"control.invalid || undefined\"\n :aria-required=\"control.required || undefined\"\n @input=\"onInput\"\n />\n <span v-if=\"$slots.right\" class=\"rp-input__right\">\n <slot name=\"right\" />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { InputProps } from './types';\n\ndefineOptions({ name: 'RpInput' });\n\nconst props = withDefaults(defineProps<InputProps>(), {\n type: 'text',\n placeholder: '',\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n valid: undefined,\n readonly: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst control = useControlState(props);\n\nconst rootClass = computed(() =>\n bem('rp-input', {\n [`size-${props.size}`]: Boolean(props.size),\n [`radius-${props.radius}`]: Boolean(props.radius),\n disabled: control.disabled,\n invalid: control.invalid,\n valid: control.valid && !control.invalid,\n readonly: props.readonly,\n }),\n);\n\nfunction onInput(e: Event) {\n emit('update:modelValue', (e.target as HTMLInputElement).value);\n}\n\nfunction focusInput(e: MouseEvent) {\n if (control.disabled) return;\n\n const target = e.target;\n if (target instanceof Element && isInteractiveElement(target)) return;\n\n (e.currentTarget as HTMLElement).querySelector<HTMLInputElement>('.rp-input__native')?.focus();\n}\n\nfunction isInteractiveElement(target: Element) {\n return Boolean(\n target.closest(\n [\n 'button',\n 'a[href]',\n 'input:not(.rp-input__native)',\n 'select',\n 'textarea',\n '[contenteditable=\"true\"]',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(','),\n ),\n );\n}\n</script>\n\n<style src=\"./input.scss\" lang=\"scss\" scoped></style>\n","<template>\n <label :class=\"rootClass\" @mousedown=\"focusInput\">\n <span v-if=\"$slots.left\" class=\"rp-input__left\">\n <slot name=\"left\" />\n </span>\n <input\n :id=\"control.id\"\n :name=\"name\"\n class=\"rp-input__native\"\n :type=\"type\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n :disabled=\"control.disabled || undefined\"\n :readonly=\"readonly || undefined\"\n :required=\"control.required || undefined\"\n :aria-label=\"ariaLabel || undefined\"\n :aria-labelledby=\"control.ariaLabelledby\"\n :aria-describedby=\"control.ariaDescribedby\"\n :aria-invalid=\"control.invalid || undefined\"\n :aria-required=\"control.required || undefined\"\n @input=\"onInput\"\n />\n <span v-if=\"$slots.right\" class=\"rp-input__right\">\n <slot name=\"right\" />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { InputProps } from './types';\n\ndefineOptions({ name: 'RpInput' });\n\nconst props = withDefaults(defineProps<InputProps>(), {\n type: 'text',\n placeholder: '',\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n valid: undefined,\n readonly: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst control = useControlState(props);\n\nconst rootClass = computed(() =>\n bem('rp-input', {\n [`size-${props.size}`]: Boolean(props.size),\n [`radius-${props.radius}`]: Boolean(props.radius),\n disabled: control.disabled,\n invalid: control.invalid,\n valid: control.valid && !control.invalid,\n readonly: props.readonly,\n }),\n);\n\nfunction onInput(e: Event) {\n emit('update:modelValue', (e.target as HTMLInputElement).value);\n}\n\nfunction focusInput(e: MouseEvent) {\n if (control.disabled) return;\n\n const target = e.target;\n if (target instanceof Element && isInteractiveElement(target)) return;\n\n (e.currentTarget as HTMLElement).querySelector<HTMLInputElement>('.rp-input__native')?.focus();\n}\n\nfunction isInteractiveElement(target: Element) {\n return Boolean(\n target.closest(\n [\n 'button',\n 'a[href]',\n 'input:not(.rp-input__native)',\n 'select',\n 'textarea',\n '[contenteditable=\"true\"]',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(','),\n ),\n );\n}\n</script>\n\n<style src=\"./input.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAUd,MAAM,OAAO;EAIb,MAAM,UAAU,gBAAgB,KAAK;EAErC,MAAM,YAAY,eACd,IAAI,YAAY;IACX,QAAQ,MAAM,SAAS,QAAQ,MAAM,IAAI;IACzC,UAAU,MAAM,WAAW,QAAQ,MAAM,MAAM;GAChD,UAAU,QAAQ;GAClB,SAAS,QAAQ;GACjB,OAAO,QAAQ,SAAS,CAAC,QAAQ;GACjC,UAAU,MAAM;EACpB,CAAC,CACL;EAEA,SAAS,QAAQ,GAAU;GACvB,KAAK,qBAAsB,EAAE,OAA4B,KAAK;EAClE;EAEA,SAAS,WAAW,GAAe;GAC/B,IAAI,QAAQ,UAAU;GAEtB,MAAM,SAAS,EAAE;GACjB,IAAI,kBAAkB,WAAW,qBAAqB,MAAM,GAAG;GAE/D,EAAG,cAA8B,cAAgC,mBAAmB,CAAC,EAAE,MAAM;EACjG;EAEA,SAAS,qBAAqB,QAAiB;GAC3C,OAAO,QACH,OAAO,QACH;IACI;IACA;IACA;IACA;IACA;IACA;IACA;GACJ,CAAC,CAAC,KAAK,GAAG,CACd,CACJ;EACJ;;;kCAzFmB,UAAA,KAAS,CAAA;;iBACR,OAAM,YAAA;;;cACR,QAAW,MAAA,MAAA,CAAA;;;+BAiBT,OAAO;;;;eAdd,MAAI,SAAO,EAAA;eACX,QAAM,QAAA,IAAI;eAEV,QAAM,QAAA,IAAI;gBACH,QAAA,UAAU;eACjB,eAAa,QAAA,WAAW;eACxB,YAAU,SAAO,YAAa,KAAA,CAAS;eACvC,YAAU,QAAA,YAAY,KAAA,CAAS;eAC/B,YAAU,qBAAoB,KAAA,CAAS;eACvC,cAAY,QAAA,aAAa,KAAA,CAAS;eAClC,mBAAiB,SAAO,cAAA;eACxB,oBAAkB,SAAO,eAAA;eACzB,gBAAc,SAAO,WAAY,KAAA,CAAS;eAC1C,iBAAe,qBAAoB,KAAA,CAAS;;;iBAGrC,OAAM,aAAA;;;cACR,SAAY,MAAA,MAAA,CAAA;;;mCAtBY,UAAU"}
package/dist/radio.css CHANGED
@@ -1,21 +1,27 @@
1
- .rp-radio[data-v-67524919] {
1
+ .rp-radio[data-v-ecddd6c8] {
2
+ --_radio-color: var(--rp-color-control-selected-bg);
3
+ --_radio-on-color: var(--rp-color-control-selected-fg);
4
+ --_radio-size: 18px;
5
+ --_radio-dot: 8px;
6
+ --_radio-font-size: var(--rp-font-size-base);
7
+ --_radio-checked-bg: var(--_radio-color);
8
+ --_radio-checked-border: var(--_radio-color);
9
+ --_radio-checked-dot: var(--_radio-on-color);
2
10
  display: inline-flex;
3
11
  align-items: center;
4
12
  cursor: pointer;
5
13
  font-family: var(--rp-font-family);
6
14
  user-select: none;
7
15
  }
8
- .rp-radio--disabled[data-v-67524919] {
16
+ .rp-radio--disabled[data-v-ecddd6c8] {
9
17
  opacity: var(--rp-opacity-disabled);
10
18
  cursor: not-allowed;
11
19
  }
12
- .rp-radio[data-v-67524919] {
20
+ .rp-radio[data-v-ecddd6c8] {
13
21
  gap: var(--rp-spacing-2);
14
- font-size: var(--rp-font-size-base);
15
- --_radio-size: 18px;
16
- --_radio-dot: 8px;
22
+ font-size: var(--_radio-font-size);
17
23
  }
18
- .rp-radio__native[data-v-67524919] {
24
+ .rp-radio__native[data-v-ecddd6c8] {
19
25
  position: absolute;
20
26
  width: 1px;
21
27
  height: 1px;
@@ -27,7 +33,11 @@
27
33
  border-width: 0;
28
34
  pointer-events: none;
29
35
  }
30
- .rp-radio__dot[data-v-67524919] {
36
+ .rp-radio__native:focus-visible + .rp-radio__dot[data-v-ecddd6c8] {
37
+ border-color: var(--rp-color-primary);
38
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
39
+ }
40
+ .rp-radio__dot[data-v-ecddd6c8] {
31
41
  display: inline-flex;
32
42
  align-items: center;
33
43
  justify-content: center;
@@ -39,26 +49,84 @@
39
49
  background-color: var(--rp-color-control-bg);
40
50
  transition: background-color var(--rp-transition-fast), border-color var(--rp-transition-fast);
41
51
  }
42
- .rp-radio__dot[data-v-67524919]::after {
52
+ .rp-radio__dot[data-v-ecddd6c8]::after {
43
53
  content: "";
44
54
  width: var(--_radio-dot);
45
55
  height: var(--_radio-dot);
46
56
  border-radius: var(--rp-radius-full);
47
- background-color: var(--rp-color-control-selected-fg);
57
+ background-color: var(--_radio-checked-dot);
48
58
  transform: scale(0);
49
59
  transition: transform var(--rp-transition-fast);
50
60
  }
51
- .rp-radio--checked .rp-radio__dot[data-v-67524919] {
52
- background-color: var(--rp-color-control-selected-bg);
53
- border-color: var(--rp-color-control-selected-bg);
61
+ .rp-radio--checked .rp-radio__dot[data-v-ecddd6c8] {
62
+ background-color: var(--_radio-checked-bg);
63
+ border-color: var(--_radio-checked-border);
54
64
  }
55
- .rp-radio--checked .rp-radio__dot[data-v-67524919]::after {
65
+ .rp-radio--checked .rp-radio__dot[data-v-ecddd6c8]::after {
56
66
  transform: scale(1);
57
67
  }
58
- .rp-radio__label[data-v-67524919] {
68
+ .rp-radio__label[data-v-ecddd6c8] {
59
69
  line-height: var(--rp-line-height-normal);
60
70
  color: var(--rp-color-text);
61
- }.rp-radio-group[data-v-ba5e60e5] {
71
+ }
72
+ .rp-radio--color-primary[data-v-ecddd6c8] {
73
+ --_radio-color: var(--rp-color-primary);
74
+ --_radio-on-color: var(--rp-color-on-primary);
75
+ }
76
+ .rp-radio--color-secondary[data-v-ecddd6c8] {
77
+ --_radio-color: var(--rp-color-secondary);
78
+ --_radio-on-color: var(--rp-color-on-secondary);
79
+ }
80
+ .rp-radio--color-success[data-v-ecddd6c8] {
81
+ --_radio-color: var(--rp-color-success);
82
+ --_radio-on-color: var(--rp-color-on-success);
83
+ }
84
+ .rp-radio--color-warning[data-v-ecddd6c8] {
85
+ --_radio-color: var(--rp-color-warning);
86
+ --_radio-on-color: var(--rp-color-on-warning);
87
+ }
88
+ .rp-radio--color-danger[data-v-ecddd6c8] {
89
+ --_radio-color: var(--rp-color-danger);
90
+ --_radio-on-color: var(--rp-color-on-danger);
91
+ }
92
+ .rp-radio--color-info[data-v-ecddd6c8] {
93
+ --_radio-color: var(--rp-color-info);
94
+ --_radio-on-color: var(--rp-color-on-info);
95
+ }
96
+ .rp-radio--color-neutral[data-v-ecddd6c8] {
97
+ --_radio-color: var(--rp-color-neutral);
98
+ --_radio-on-color: var(--rp-color-on-neutral);
99
+ }
100
+ .rp-radio--outline[data-v-ecddd6c8] {
101
+ --_radio-checked-bg: var(--rp-color-control-bg);
102
+ --_radio-checked-border: var(--_radio-color);
103
+ --_radio-checked-dot: var(--_radio-color);
104
+ }
105
+ .rp-radio--size-xs[data-v-ecddd6c8] {
106
+ --_radio-size: 14px;
107
+ --_radio-dot: 6px;
108
+ --_radio-font-size: var(--rp-font-size-xs);
109
+ }
110
+ .rp-radio--size-sm[data-v-ecddd6c8] {
111
+ --_radio-size: 16px;
112
+ --_radio-dot: 7px;
113
+ --_radio-font-size: var(--rp-font-size-sm);
114
+ }
115
+ .rp-radio--size-md[data-v-ecddd6c8] {
116
+ --_radio-size: 18px;
117
+ --_radio-dot: 8px;
118
+ --_radio-font-size: var(--rp-font-size-base);
119
+ }
120
+ .rp-radio--size-lg[data-v-ecddd6c8] {
121
+ --_radio-size: 22px;
122
+ --_radio-dot: 10px;
123
+ --_radio-font-size: var(--rp-font-size-lg);
124
+ }
125
+ .rp-radio--size-xl[data-v-ecddd6c8] {
126
+ --_radio-size: 26px;
127
+ --_radio-dot: 12px;
128
+ --_radio-font-size: var(--rp-font-size-xl);
129
+ }.rp-radio-group[data-v-a2c46e46] {
62
130
  display: flex;
63
131
  flex-direction: column;
64
132
  gap: var(--rp-spacing-3);
package/dist/radio.js CHANGED
@@ -1,8 +1,14 @@
1
1
  import './radio.css';
2
2
  import { n as bem, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
3
  import { t as useControlState } from "./useControlState.js";
4
- import { t as useRequiredInject } from "./useRequiredInject.js";
5
- import { child, computed, createIf, createSlot, defineVaporComponent, on, provide, renderEffect, setAttr, setClass, setInsertionState, setProp, setValue, template, unref, useId } from "vue";
4
+ import { child, computed, createIf, createSlot, defineVaporComponent, inject, on, provide, renderEffect, setAttr, setClass, setInsertionState, setProp, setValue, template, unref, useId } from "vue";
5
+ //#region src/composables/useRequiredInject.ts
6
+ function useRequiredInject(key, componentName) {
7
+ const value = inject(key);
8
+ if (value == null) throw new Error(`[Ropav] <${componentName}> must be used inside its parent provider component.`);
9
+ return value;
10
+ }
11
+ //#endregion
6
12
  //#region src/components/radio/types.ts
7
13
  var radioGroupKey = Symbol("radioGroup");
8
14
  //#endregion
@@ -11,9 +17,15 @@ function useRadio(props) {
11
17
  const group = useRequiredInject(radioGroupKey, "RpRadio");
12
18
  const isChecked = computed(() => group.modelValue === props.value);
13
19
  const isDisabled = computed(() => props.disabled || group.disabled);
20
+ const variant = computed(() => props.variant ?? group.variant);
21
+ const color = computed(() => props.color ?? group.color);
22
+ const size = computed(() => props.size ?? group.size);
14
23
  const rootClass = computed(() => bem("rp-radio", {
15
24
  checked: isChecked.value,
16
- disabled: isDisabled.value
25
+ disabled: isDisabled.value,
26
+ [variant.value ?? ""]: Boolean(variant.value),
27
+ [`color-${color.value}`]: Boolean(color.value),
28
+ [`size-${size.value}`]: Boolean(size.value)
17
29
  }));
18
30
  function onSelect() {
19
31
  if (isDisabled.value) return;
@@ -48,6 +60,15 @@ function useRadioGroup(props, emitUpdate) {
48
60
  get required() {
49
61
  return control.required;
50
62
  },
63
+ get variant() {
64
+ return props.variant;
65
+ },
66
+ get color() {
67
+ return props.color;
68
+ },
69
+ get size() {
70
+ return props.size;
71
+ },
51
72
  select(value) {
52
73
  emitUpdate(value);
53
74
  }
@@ -59,8 +80,8 @@ function useRadioGroup(props, emitUpdate) {
59
80
  }
60
81
  //#endregion
61
82
  //#region src/components/radio/radio.vue?vue&type=script&setup=true&vapor=true&lang.ts
62
- var t0$1 = template("<span data-v-67524919 class=rp-radio__label>");
63
- var t1 = template("<label data-v-67524919><input data-v-67524919 type=radio class=rp-radio__native><span data-v-67524919 class=rp-radio__dot></span>", 1);
83
+ var t0$1 = template("<span data-v-ecddd6c8 class=rp-radio__label>");
84
+ var t1 = template("<label data-v-ecddd6c8><input data-v-ecddd6c8 type=radio class=rp-radio__native><span data-v-ecddd6c8 class=rp-radio__dot></span>", 1);
64
85
  //#endregion
65
86
  //#region src/components/radio/radio.vue
66
87
  var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -68,6 +89,9 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
68
89
  __name: "radio",
69
90
  props: {
70
91
  value: {},
92
+ variant: { default: void 0 },
93
+ color: { default: void 0 },
94
+ size: { default: void 0 },
71
95
  disabled: {
72
96
  type: Boolean,
73
97
  default: false
@@ -99,10 +123,10 @@ var radio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
99
123
  });
100
124
  return n5;
101
125
  }
102
- }), [["__scopeId", "data-v-67524919"]]);
126
+ }), [["__scopeId", "data-v-ecddd6c8"]]);
103
127
  //#endregion
104
128
  //#region src/components/radio/radio-group.vue?vue&type=script&setup=true&vapor=true&lang.ts
105
- var t0 = template("<div data-v-ba5e60e5 role=radiogroup>", 1);
129
+ var t0 = template("<div data-v-a2c46e46 role=radiogroup>", 1);
106
130
  //#endregion
107
131
  //#region src/components/radio/radio-group.vue
108
132
  var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -112,6 +136,9 @@ var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
112
136
  id: {},
113
137
  name: {},
114
138
  modelValue: {},
139
+ variant: { default: void 0 },
140
+ color: { default: void 0 },
141
+ size: { default: void 0 },
115
142
  disabled: {
116
143
  type: Boolean,
117
144
  default: void 0
@@ -153,7 +180,7 @@ var radio_group_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
153
180
  createSlot("default", null, null, 1);
154
181
  return n1;
155
182
  }
156
- }), [["__scopeId", "data-v-ba5e60e5"]]);
183
+ }), [["__scopeId", "data-v-a2c46e46"]]);
157
184
  //#endregion
158
185
  export { radio_default as n, radio_group_default as t };
159
186