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
package/dist/button.js CHANGED
@@ -1,18 +1,30 @@
1
1
  import './button.css';
2
2
  import { n as bem, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
- import { child, computed, createIf, createSlot, defineVaporComponent, renderEffect, setClass, setInsertionState, setProp, template } from "vue";
3
+ import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, markRaw, renderEffect, setClass, setInsertionState, setProp, template, unref } from "vue";
4
+ //#region ~icons/lucide/loader-circle
5
+ var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M21 12a9 9 0 1 1-6.219-8.56\">", 3, 1);
6
+ function render(_ctx) {
7
+ return t0$1();
8
+ }
9
+ var loader_circle_default = markRaw(defineVaporComponent({
10
+ name: "lucide-loader-circle",
11
+ render
12
+ }));
13
+ //#endregion
4
14
  //#region src/components/button/button.vue?vue&type=script&setup=true&vapor=true&lang.ts
5
- var t0 = template("<span data-v-c2d151de class=rp-button__spinner aria-hidden=true>", 2);
6
- var t1 = template("<span data-v-c2d151de class=rp-button__prefix>");
7
- var t2 = template("<span data-v-c2d151de class=rp-button__suffix>");
8
- var t3 = template("<button data-v-c2d151de><span data-v-c2d151de class=rp-button__label></span>", 1);
15
+ var t0 = template("<span data-v-b8d57358 class=rp-button__left>");
16
+ var t1 = template("<span data-v-b8d57358 class=rp-button__right>");
17
+ var t2 = template("<button data-v-b8d57358><span data-v-b8d57358 class=rp-button__label></span>", 1);
9
18
  //#endregion
10
19
  //#region src/components/button/button.vue
11
20
  var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
12
21
  name: "RpButton",
13
22
  __name: "button",
14
23
  props: {
15
- variant: { default: "solid" },
24
+ variant: {},
25
+ color: {},
26
+ size: {},
27
+ radius: {},
16
28
  type: { default: "button" },
17
29
  disabled: {
18
30
  type: Boolean,
@@ -25,37 +37,46 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
25
37
  },
26
38
  setup(__props, { slots: $slots }) {
27
39
  const props = __props;
28
- const rootClass = computed(() => bem("rp-button", props.variant));
29
- const n13 = t3();
40
+ const isLoading = computed(() => props.loading && !props.disabled);
41
+ const rootClass = computed(() => bem("rp-button", {
42
+ [props.variant ?? ""]: Boolean(props.variant),
43
+ [`color-${props.color}`]: Boolean(props.color),
44
+ [`size-${props.size}`]: Boolean(props.size),
45
+ [`radius-${props.radius}`]: Boolean(props.radius)
46
+ }));
47
+ const n13 = t2();
30
48
  const n8 = child(n13, 2);
31
49
  renderEffect(() => {
32
50
  setClass(n13, rootClass.value);
33
- setProp(n13, "disabled", __props.disabled || __props.loading || void 0);
51
+ setProp(n13, "disabled", __props.disabled || isLoading.value || void 0);
34
52
  setProp(n13, "type", __props.type);
35
53
  });
36
54
  setInsertionState(n13, 0, 0);
37
- createIf(() => __props.loading, () => {
38
- return t0();
39
- }, null, 33);
55
+ createIf(() => isLoading.value, () => {
56
+ return createComponent(unref(loader_circle_default), {
57
+ class: "rp-button__spinner",
58
+ "aria-hidden": "true"
59
+ });
60
+ });
40
61
  setInsertionState(n13, 0, 1);
41
- createIf(() => $slots.prefix && !__props.loading, () => {
42
- const n6 = t1();
62
+ createIf(() => $slots.left && !isLoading.value, () => {
63
+ const n6 = t0();
43
64
  setInsertionState(n6, null, 0);
44
- createSlot("prefix", null, null, 1);
65
+ createSlot("left", null, null, 1);
45
66
  return n6;
46
67
  });
47
68
  setInsertionState(n8, null, 0);
48
69
  createSlot("default", null, null, 1);
49
70
  setInsertionState(n13, null, 3);
50
- createIf(() => $slots.suffix, () => {
51
- const n12 = t2();
71
+ createIf(() => $slots.right, () => {
72
+ const n12 = t1();
52
73
  setInsertionState(n12, null, 0);
53
- createSlot("suffix", null, null, 1);
74
+ createSlot("right", null, null, 1);
54
75
  return n12;
55
76
  });
56
77
  return n13;
57
78
  }
58
- }), [["__scopeId", "data-v-c2d151de"]]);
79
+ }), [["__scopeId", "data-v-b8d57358"]]);
59
80
  //#endregion
60
81
  export { button_default as t };
61
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../src/components/button/button.vue","../src/components/button/button.vue"],"sourcesContent":["<template>\n <button :class=\"rootClass\" :disabled=\"disabled || loading || undefined\" :type=\"type\">\n <span v-if=\"loading\" class=\"rp-button__spinner\" aria-hidden=\"true\" />\n <span v-if=\"$slots.prefix && !loading\" class=\"rp-button__prefix\">\n <slot name=\"prefix\" />\n </span>\n <span class=\"rp-button__label\">\n <slot />\n </span>\n <span v-if=\"$slots.suffix\" class=\"rp-button__suffix\">\n <slot name=\"suffix\" />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { bem } from '@/utils/bem';\nimport type { ButtonProps } from './types';\n\ndefineOptions({ name: 'RpButton' });\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n variant: 'solid',\n type: 'button',\n disabled: false,\n loading: false,\n});\n\nconst rootClass = computed(() => bem('rp-button', props.variant));\n</script>\n\n<style src=\"./button.scss\" lang=\"scss\" scoped></style>\n","<template>\n <button :class=\"rootClass\" :disabled=\"disabled || loading || undefined\" :type=\"type\">\n <span v-if=\"loading\" class=\"rp-button__spinner\" aria-hidden=\"true\" />\n <span v-if=\"$slots.prefix && !loading\" class=\"rp-button__prefix\">\n <slot name=\"prefix\" />\n </span>\n <span class=\"rp-button__label\">\n <slot />\n </span>\n <span v-if=\"$slots.suffix\" class=\"rp-button__suffix\">\n <slot name=\"suffix\" />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport { bem } from '@/utils/bem';\nimport type { ButtonProps } from './types';\n\ndefineOptions({ name: 'RpButton' });\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n variant: 'solid',\n type: 'button',\n disabled: false,\n loading: false,\n});\n\nconst rootClass = computed(() => bem('rp-button', props.variant));\n</script>\n\n<style src=\"./button.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAsBA,MAAM,QAAQ;EAOd,MAAM,YAAY,eAAe,IAAI,aAAa,MAAM,OAAO,CAAC;;;;iBA5B5C,UAAA,KAAS;gBAAG,YAAU,QAAA,YAAY,QAAA,WAAW,KAAA,CAAS;gBAAG,QAAM,QAAA,IAAI;;;iBACnE,QAAA,eAAO;;;;iBACP,OAAM,UAAA,CAAY,QAAA,eAAO;;;cAC3B,UAAa,MAAA,MAAA,CAAA;;;;;;iBAKX,OAAM,cAAA;;;cACR,UAAa,MAAA,MAAA,CAAA"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../src/components/button/button.vue","../src/components/button/button.vue"],"sourcesContent":["<template>\n <button :class=\"rootClass\" :disabled=\"disabled || isLoading || undefined\" :type=\"type\">\n <IconLoaderCircle v-if=\"isLoading\" class=\"rp-button__spinner\" aria-hidden=\"true\" />\n <span v-if=\"$slots.left && !isLoading\" class=\"rp-button__left\">\n <slot name=\"left\" />\n </span>\n <span class=\"rp-button__label\">\n <slot />\n </span>\n <span v-if=\"$slots.right\" class=\"rp-button__right\">\n <slot name=\"right\" />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport IconLoaderCircle from '~icons/lucide/loader-circle';\nimport { bem } from '@/utils/bem';\nimport type { ButtonProps } from './types';\n\ndefineOptions({ name: 'RpButton' });\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n type: 'button',\n disabled: false,\n loading: false,\n});\n\nconst isLoading = computed(() => props.loading && !props.disabled);\n\nconst rootClass = computed(() =>\n bem('rp-button', {\n [props.variant ?? '']: Boolean(props.variant),\n [`color-${props.color}`]: Boolean(props.color),\n [`size-${props.size}`]: Boolean(props.size),\n [`radius-${props.radius}`]: Boolean(props.radius),\n }),\n);\n</script>\n\n<style src=\"./button.scss\" lang=\"scss\" scoped></style>\n","<template>\n <button :class=\"rootClass\" :disabled=\"disabled || isLoading || undefined\" :type=\"type\">\n <IconLoaderCircle v-if=\"isLoading\" class=\"rp-button__spinner\" aria-hidden=\"true\" />\n <span v-if=\"$slots.left && !isLoading\" class=\"rp-button__left\">\n <slot name=\"left\" />\n </span>\n <span class=\"rp-button__label\">\n <slot />\n </span>\n <span v-if=\"$slots.right\" class=\"rp-button__right\">\n <slot name=\"right\" />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { computed } from 'vue';\nimport IconLoaderCircle from '~icons/lucide/loader-circle';\nimport { bem } from '@/utils/bem';\nimport type { ButtonProps } from './types';\n\ndefineOptions({ name: 'RpButton' });\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n type: 'button',\n disabled: false,\n loading: false,\n});\n\nconst isLoading = computed(() => props.loading && !props.disabled);\n\nconst rootClass = computed(() =>\n bem('rp-button', {\n [props.variant ?? '']: Boolean(props.variant),\n [`color-${props.color}`]: Boolean(props.color),\n [`size-${props.size}`]: Boolean(props.size),\n [`radius-${props.radius}`]: Boolean(props.radius),\n }),\n);\n</script>\n\n<style src=\"./button.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBA,MAAM,QAAQ;EAMd,MAAM,YAAY,eAAe,MAAM,WAAW,CAAC,MAAM,QAAQ;EAEjE,MAAM,YAAY,eACd,IAAI,aAAa;IACZ,MAAM,WAAW,KAAK,QAAQ,MAAM,OAAO;IAC3C,SAAS,MAAM,UAAU,QAAQ,MAAM,KAAK;IAC5C,QAAQ,MAAM,SAAS,QAAQ,MAAM,IAAI;IACzC,UAAU,MAAM,WAAW,QAAQ,MAAM,MAAM;EACpD,CAAC,CACL;;;;iBArCoB,UAAA,KAAS;gBAAG,YAAU,QAAA,YAAY,UAAA,SAAa,KAAA,CAAS;gBAAG,QAAM,QAAA,IAAI;;;iBACzD,UAAA,aAAS;;IAAE,OAAM;IAAqB,eAAY;;;;iBAC9D,OAAM,QAAA,CAAU,UAAA,aAAS;;;cAC3B,QAAW,MAAA,MAAA,CAAA;;;;;;iBAKT,OAAM,aAAA;;;cACR,SAAY,MAAA,MAAA,CAAA"}
package/dist/checkbox.css CHANGED
@@ -1,20 +1,28 @@
1
- .rp-checkbox[data-v-03521fec] {
1
+ .rp-checkbox[data-v-7333dac7] {
2
+ --_checkbox-color: var(--rp-color-control-selected-bg);
3
+ --_checkbox-on-color: var(--rp-color-control-selected-fg);
4
+ --_checkbox-size: 18px;
5
+ --_checkbox-icon-size: 14px;
6
+ --_checkbox-font-size: var(--rp-font-size-base);
7
+ --_checkbox-radius: 4px;
8
+ --_checkbox-checked-bg: var(--_checkbox-color);
9
+ --_checkbox-checked-border: var(--_checkbox-color);
10
+ --_checkbox-checked-icon: var(--_checkbox-on-color);
2
11
  display: inline-flex;
3
12
  align-items: center;
4
13
  cursor: pointer;
5
14
  font-family: var(--rp-font-family);
6
15
  user-select: none;
7
16
  }
8
- .rp-checkbox--disabled[data-v-03521fec] {
17
+ .rp-checkbox--disabled[data-v-7333dac7] {
9
18
  opacity: var(--rp-opacity-disabled);
10
19
  cursor: not-allowed;
11
20
  }
12
- .rp-checkbox[data-v-03521fec] {
21
+ .rp-checkbox[data-v-7333dac7] {
13
22
  gap: var(--rp-spacing-2);
14
- font-size: var(--rp-font-size-base);
15
- --_checkbox-size: 18px;
23
+ font-size: var(--_checkbox-font-size);
16
24
  }
17
- .rp-checkbox__native[data-v-03521fec] {
25
+ .rp-checkbox__native[data-v-7333dac7] {
18
26
  position: absolute;
19
27
  width: 1px;
20
28
  height: 1px;
@@ -26,11 +34,11 @@
26
34
  border-width: 0;
27
35
  pointer-events: none;
28
36
  }
29
- .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-03521fec] {
30
- border-color: var(--rp-color-control-border-focus);
37
+ .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-7333dac7] {
38
+ border-color: var(--rp-color-primary);
31
39
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
32
40
  }
33
- .rp-checkbox__box[data-v-03521fec] {
41
+ .rp-checkbox__box[data-v-7333dac7] {
34
42
  display: inline-flex;
35
43
  align-items: center;
36
44
  justify-content: center;
@@ -38,23 +46,123 @@
38
46
  height: var(--_checkbox-size);
39
47
  flex-shrink: 0;
40
48
  border: var(--rp-border-width-medium) solid var(--rp-color-control-border);
41
- border-radius: var(--rp-radius-base);
49
+ border-radius: var(--_checkbox-radius);
42
50
  background-color: var(--rp-color-control-bg);
43
51
  transition: background-color var(--rp-transition-fast), border-color var(--rp-transition-fast);
44
52
  }
45
- .rp-checkbox--checked .rp-checkbox__box[data-v-03521fec], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-03521fec] {
46
- background-color: var(--rp-color-control-selected-bg);
47
- border-color: var(--rp-color-control-selected-bg);
53
+ .rp-checkbox--checked .rp-checkbox__box[data-v-7333dac7], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-7333dac7] {
54
+ background-color: var(--_checkbox-checked-bg);
55
+ border-color: var(--_checkbox-checked-border);
48
56
  }
49
- .rp-checkbox--invalid .rp-checkbox__box[data-v-03521fec] {
57
+ .rp-checkbox--invalid .rp-checkbox__box[data-v-7333dac7] {
50
58
  border-color: var(--rp-color-danger-fg);
51
59
  }
52
- .rp-checkbox__icon[data-v-03521fec] {
53
- width: 12px;
54
- height: 12px;
55
- color: var(--rp-color-control-selected-fg);
60
+ .rp-checkbox__icon[data-v-7333dac7] {
61
+ width: var(--_checkbox-icon-size);
62
+ height: var(--_checkbox-icon-size);
63
+ color: var(--_checkbox-checked-icon);
64
+ transform-origin: center;
56
65
  }
57
- .rp-checkbox__label[data-v-03521fec] {
66
+ .rp-checkbox__icon[data-v-7333dac7] [stroke-width] {
67
+ stroke-width: 3;
68
+ }
69
+ .rp-checkbox__label[data-v-7333dac7] {
58
70
  line-height: var(--rp-line-height-normal);
59
71
  color: var(--rp-color-text);
72
+ }
73
+ .rp-checkbox--color-primary[data-v-7333dac7] {
74
+ --_checkbox-color: var(--rp-color-primary);
75
+ --_checkbox-on-color: var(--rp-color-on-primary);
76
+ }
77
+ .rp-checkbox--color-secondary[data-v-7333dac7] {
78
+ --_checkbox-color: var(--rp-color-secondary);
79
+ --_checkbox-on-color: var(--rp-color-on-secondary);
80
+ }
81
+ .rp-checkbox--color-success[data-v-7333dac7] {
82
+ --_checkbox-color: var(--rp-color-success);
83
+ --_checkbox-on-color: var(--rp-color-on-success);
84
+ }
85
+ .rp-checkbox--color-warning[data-v-7333dac7] {
86
+ --_checkbox-color: var(--rp-color-warning);
87
+ --_checkbox-on-color: var(--rp-color-on-warning);
88
+ }
89
+ .rp-checkbox--color-danger[data-v-7333dac7] {
90
+ --_checkbox-color: var(--rp-color-danger);
91
+ --_checkbox-on-color: var(--rp-color-on-danger);
92
+ }
93
+ .rp-checkbox--color-info[data-v-7333dac7] {
94
+ --_checkbox-color: var(--rp-color-info);
95
+ --_checkbox-on-color: var(--rp-color-on-info);
96
+ }
97
+ .rp-checkbox--color-neutral[data-v-7333dac7] {
98
+ --_checkbox-color: var(--rp-color-neutral);
99
+ --_checkbox-on-color: var(--rp-color-on-neutral);
100
+ }
101
+ .rp-checkbox--outline[data-v-7333dac7] {
102
+ --_checkbox-checked-bg: var(--rp-color-control-bg);
103
+ --_checkbox-checked-border: var(--_checkbox-color);
104
+ --_checkbox-checked-icon: var(--_checkbox-color);
105
+ }
106
+ .rp-checkbox--size-xs[data-v-7333dac7] {
107
+ --_checkbox-size: 14px;
108
+ --_checkbox-icon-size: 10px;
109
+ --_checkbox-font-size: var(--rp-font-size-xs);
110
+ }
111
+ .rp-checkbox--size-sm[data-v-7333dac7] {
112
+ --_checkbox-size: 16px;
113
+ --_checkbox-icon-size: 12px;
114
+ --_checkbox-font-size: var(--rp-font-size-sm);
115
+ }
116
+ .rp-checkbox--size-md[data-v-7333dac7] {
117
+ --_checkbox-size: 18px;
118
+ --_checkbox-icon-size: 14px;
119
+ --_checkbox-font-size: var(--rp-font-size-base);
120
+ }
121
+ .rp-checkbox--size-lg[data-v-7333dac7] {
122
+ --_checkbox-size: 22px;
123
+ --_checkbox-icon-size: 16px;
124
+ --_checkbox-font-size: var(--rp-font-size-lg);
125
+ }
126
+ .rp-checkbox--size-xl[data-v-7333dac7] {
127
+ --_checkbox-size: 26px;
128
+ --_checkbox-icon-size: 20px;
129
+ --_checkbox-font-size: var(--rp-font-size-xl);
130
+ }
131
+ .rp-checkbox--radius-xs[data-v-7333dac7] {
132
+ --_checkbox-radius: 2px;
133
+ }
134
+ .rp-checkbox--radius-sm[data-v-7333dac7] {
135
+ --_checkbox-radius: 4px;
136
+ }
137
+ .rp-checkbox--radius-md[data-v-7333dac7] {
138
+ --_checkbox-radius: 6px;
139
+ }
140
+ .rp-checkbox--radius-lg[data-v-7333dac7] {
141
+ --_checkbox-radius: 8px;
142
+ }
143
+ .rp-checkbox--radius-xl[data-v-7333dac7] {
144
+ --_checkbox-radius: var(--rp-radius-full);
145
+ }
146
+ .rp-checkbox-icon-enter-active[data-v-7333dac7],
147
+ .rp-checkbox-icon-leave-active[data-v-7333dac7] {
148
+ transition: opacity var(--rp-transition-base), transform var(--rp-transition-base);
149
+ }
150
+ .rp-checkbox-icon-enter-from[data-v-7333dac7],
151
+ .rp-checkbox-icon-leave-to[data-v-7333dac7] {
152
+ opacity: 0;
153
+ transform: translateY(3px) scale(0.85);
154
+ }
155
+ .rp-checkbox-icon-enter-to[data-v-7333dac7],
156
+ .rp-checkbox-icon-leave-from[data-v-7333dac7] {
157
+ opacity: 1;
158
+ transform: translateY(0) scale(1);
159
+ }
160
+ .rp-checkbox-icon-leave-to[data-v-7333dac7] {
161
+ transform: translateY(-3px) scale(0.85);
162
+ }
163
+ @media (prefers-reduced-motion: reduce) {
164
+ .rp-checkbox-icon-enter-active[data-v-7333dac7],
165
+ .rp-checkbox-icon-leave-active[data-v-7333dac7] {
166
+ transition: none;
167
+ }
60
168
  }
package/dist/checkbox.js CHANGED
@@ -1,30 +1,26 @@
1
1
  import './checkbox.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, createComponent, createIf, createSlot, defineVaporComponent, next, on, renderEffect, setAttr, setClass, setInsertionState, setProp, template, unref } from "vue";
5
- //#region src/components/_internal/icons/CheckIcon.vue?vue&type=script&setup=true&vapor=true&lang.ts
6
- var t0$2 = template("<svg viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=2><path d=\"M3.5 8.5L6.5 11.5L12.5 4.5\">", 3, 1);
7
- //#endregion
8
- //#region src/components/_internal/icons/CheckIcon.vue
9
- var CheckIcon_default = /* @__PURE__ */ defineVaporComponent({
10
- name: "CheckIcon",
11
- __name: "CheckIcon",
12
- setup(__props) {
13
- return t0$2();
14
- }
15
- });
16
- //#endregion
17
- //#region src/components/_internal/icons/MinusIcon.vue?vue&type=script&setup=true&vapor=true&lang.ts
18
- var t0$1 = template("<svg viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=2><path d=\"M4 8h8\">", 3, 1);
4
+ import { VaporTransition, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, markRaw, next, on, renderEffect, setAttr, setBlockKey, setClass, setInsertionState, setProp, template, unref } from "vue";
5
+ //#region ~icons/lucide/check
6
+ var t0$2 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M20 6L9 17l-5-5\">", 3, 1);
7
+ function render$1(_ctx) {
8
+ return t0$2();
9
+ }
10
+ var check_default = markRaw(defineVaporComponent({
11
+ name: "lucide-check",
12
+ render: render$1
13
+ }));
19
14
  //#endregion
20
- //#region src/components/_internal/icons/MinusIcon.vue
21
- var MinusIcon_default = /* @__PURE__ */ defineVaporComponent({
22
- name: "MinusIcon",
23
- __name: "MinusIcon",
24
- setup(__props) {
25
- return t0$1();
26
- }
27
- });
15
+ //#region ~icons/lucide/minus
16
+ var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M5 12h14\">", 3, 1);
17
+ function render(_ctx) {
18
+ return t0$1();
19
+ }
20
+ var minus_default = markRaw(defineVaporComponent({
21
+ name: "lucide-minus",
22
+ render
23
+ }));
28
24
  //#endregion
29
25
  //#region src/components/checkbox/useCheckbox.ts
30
26
  function useCheckbox(props, emitUpdate) {
@@ -33,7 +29,11 @@ function useCheckbox(props, emitUpdate) {
33
29
  checked: props.modelValue,
34
30
  indeterminate: props.indeterminate,
35
31
  disabled: control.disabled,
36
- invalid: control.invalid
32
+ invalid: control.invalid,
33
+ [props.variant ?? ""]: Boolean(props.variant),
34
+ [`color-${props.color}`]: Boolean(props.color),
35
+ [`size-${props.size}`]: Boolean(props.size),
36
+ [`radius-${props.radius}`]: Boolean(props.radius)
37
37
  }));
38
38
  function onChange(e) {
39
39
  emitUpdate(e.target.checked);
@@ -46,8 +46,8 @@ function useCheckbox(props, emitUpdate) {
46
46
  }
47
47
  //#endregion
48
48
  //#region src/components/checkbox/checkbox.vue?vue&type=script&setup=true&vapor=true&lang.ts
49
- var t0 = template("<span data-v-03521fec class=rp-checkbox__label>");
50
- var t1 = template("<label data-v-03521fec><input data-v-03521fec type=checkbox class=rp-checkbox__native><span data-v-03521fec class=rp-checkbox__box></span>", 1);
49
+ var t0 = template("<span data-v-7333dac7 class=rp-checkbox__label>");
50
+ var t1 = template("<label data-v-7333dac7><input data-v-7333dac7 type=checkbox class=rp-checkbox__native><span data-v-7333dac7 class=rp-checkbox__box></span>", 1);
51
51
  //#endregion
52
52
  //#region src/components/checkbox/checkbox.vue
53
53
  var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -57,6 +57,10 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
57
57
  id: {},
58
58
  name: {},
59
59
  modelValue: { type: Boolean },
60
+ variant: {},
61
+ color: {},
62
+ size: {},
63
+ radius: {},
60
64
  disabled: {
61
65
  type: Boolean,
62
66
  default: void 0
@@ -84,9 +88,9 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
84
88
  const { control, rootClass, onChange } = useCheckbox(props, (value) => {
85
89
  emit("update:modelValue", value);
86
90
  });
87
- const n11 = t1();
88
- const n0 = child(n11);
89
- const n6 = next(n0, 1);
91
+ const n13 = t1();
92
+ const n0 = child(n13);
93
+ const n8 = next(n0, 1);
90
94
  on(n0, "change", (e) => unref(onChange)(e));
91
95
  renderEffect(() => {
92
96
  const _control = unref(control);
@@ -94,9 +98,9 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
94
98
  const _modelValue = __props.modelValue;
95
99
  const _control_disabled = _control.disabled;
96
100
  const _control_required = _control.required;
97
- setClass(n11, unref(rootClass));
98
- setAttr(n11, "data-disabled", _control_disabled || void 0);
99
- setAttr(n11, "data-state", _indeterminate ? "indeterminate" : _modelValue ? "checked" : "unchecked");
101
+ setClass(n13, unref(rootClass));
102
+ setAttr(n13, "data-disabled", _control_disabled || void 0);
103
+ setAttr(n13, "data-state", _indeterminate ? "indeterminate" : _modelValue ? "checked" : "unchecked");
100
104
  setProp(n0, "id", _control.id);
101
105
  setProp(n0, "name", __props.name);
102
106
  setProp(n0, "checked", _modelValue);
@@ -110,22 +114,31 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
110
114
  setAttr(n0, "aria-invalid", _control.invalid || void 0);
111
115
  setAttr(n0, "aria-required", _control_required || void 0);
112
116
  });
113
- setInsertionState(n6, null, 0);
114
- createIf(() => __props.indeterminate, () => {
115
- return createComponent(unref(MinusIcon_default), { class: "rp-checkbox__icon" });
116
- }, () => createIf(() => __props.modelValue, () => {
117
- return createComponent(unref(CheckIcon_default), { class: "rp-checkbox__icon" });
118
- }), 261);
119
- setInsertionState(n11, null, 2);
117
+ setInsertionState(n8, null, 0);
118
+ createComponent(VaporTransition, {
119
+ name: "rp-checkbox-icon",
120
+ mode: "out-in"
121
+ }, extend(() => {
122
+ return createIf(() => __props.indeterminate, () => {
123
+ const n3 = createComponent(unref(minus_default), { class: "rp-checkbox__icon" });
124
+ setBlockKey(n3, "minus");
125
+ return n3;
126
+ }, () => createIf(() => __props.modelValue, () => {
127
+ const n5 = createComponent(unref(check_default), { class: "rp-checkbox__icon" });
128
+ setBlockKey(n5, "check");
129
+ return n5;
130
+ }, null, 129), 389);
131
+ }, { _: 8 }));
132
+ setInsertionState(n13, null, 2);
120
133
  createIf(() => $slots.default, () => {
121
- const n10 = t0();
122
- setInsertionState(n10, null, 0);
134
+ const n12 = t0();
135
+ setInsertionState(n12, null, 0);
123
136
  createSlot("default", null, null, 1);
124
- return n10;
137
+ return n12;
125
138
  });
126
- return n11;
139
+ return n13;
127
140
  }
128
- }), [["__scopeId", "data-v-03521fec"]]);
141
+ }), [["__scopeId", "data-v-7333dac7"]]);
129
142
  //#endregion
130
143
  export { checkbox_default as t };
131
144
 
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":[],"sources":["../src/components/_internal/icons/CheckIcon.vue","../src/components/_internal/icons/CheckIcon.vue","../src/components/_internal/icons/MinusIcon.vue","../src/components/_internal/icons/MinusIcon.vue","../src/components/checkbox/useCheckbox.ts","../src/components/checkbox/checkbox.vue","../src/components/checkbox/checkbox.vue"],"sourcesContent":["<template>\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M3.5 8.5L6.5 11.5L12.5 4.5\" />\n </svg>\n</template>\n\n<script lang=\"ts\" setup vapor>\ndefineOptions({ name: 'CheckIcon' });\n</script>\n","<template>\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M3.5 8.5L6.5 11.5L12.5 4.5\" />\n </svg>\n</template>\n\n<script lang=\"ts\" setup vapor>\ndefineOptions({ name: 'CheckIcon' });\n</script>\n","<template>\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 8h8\" />\n </svg>\n</template>\n\n<script lang=\"ts\" setup vapor>\ndefineOptions({ name: 'MinusIcon' });\n</script>\n","<template>\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 8h8\" />\n </svg>\n</template>\n\n<script lang=\"ts\" setup vapor>\ndefineOptions({ name: 'MinusIcon' });\n</script>\n","import { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { CheckboxProps } from './types';\n\nexport function useCheckbox(\n props: Readonly<CheckboxProps>,\n emitUpdate: (value: boolean) => void,\n) {\n const control = useControlState(props);\n\n const rootClass = computed(() =>\n bem('rp-checkbox', {\n checked: props.modelValue,\n indeterminate: props.indeterminate,\n disabled: control.disabled,\n invalid: control.invalid,\n }),\n );\n\n function onChange(e: Event) {\n emitUpdate((e.target as HTMLInputElement).checked);\n }\n\n return {\n control,\n rootClass,\n onChange,\n };\n}\n","<template>\n <label\n :class=\"rootClass\"\n :data-disabled=\"control.disabled || undefined\"\n :data-state=\"indeterminate ? 'indeterminate' : modelValue ? 'checked' : 'unchecked'\"\n >\n <input\n :id=\"control.id\"\n :name=\"name\"\n type=\"checkbox\"\n class=\"rp-checkbox__native\"\n :checked=\"modelValue\"\n :disabled=\"control.disabled || undefined\"\n :required=\"control.required || undefined\"\n :indeterminate=\"indeterminate\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\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 @change=\"onChange\"\n />\n <span class=\"rp-checkbox__box\">\n <MinusIcon v-if=\"indeterminate\" class=\"rp-checkbox__icon\" />\n <CheckIcon v-else-if=\"modelValue\" class=\"rp-checkbox__icon\" />\n </span>\n <span v-if=\"$slots.default\" class=\"rp-checkbox__label\">\n <slot />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { CheckIcon, MinusIcon } from '@/components/_internal/icons';\nimport { useCheckbox } from './useCheckbox';\nimport type { CheckboxProps } from './types';\n\ndefineOptions({ name: 'RpCheckbox' });\n\nconst props = withDefaults(defineProps<CheckboxProps>(), {\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n indeterminate: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { control, rootClass, onChange } = useCheckbox(props, (value) => {\n emit('update:modelValue', value);\n});\n</script>\n\n<style src=\"./checkbox.scss\" lang=\"scss\" scoped></style>\n","<template>\n <label\n :class=\"rootClass\"\n :data-disabled=\"control.disabled || undefined\"\n :data-state=\"indeterminate ? 'indeterminate' : modelValue ? 'checked' : 'unchecked'\"\n >\n <input\n :id=\"control.id\"\n :name=\"name\"\n type=\"checkbox\"\n class=\"rp-checkbox__native\"\n :checked=\"modelValue\"\n :disabled=\"control.disabled || undefined\"\n :required=\"control.required || undefined\"\n :indeterminate=\"indeterminate\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\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 @change=\"onChange\"\n />\n <span class=\"rp-checkbox__box\">\n <MinusIcon v-if=\"indeterminate\" class=\"rp-checkbox__icon\" />\n <CheckIcon v-else-if=\"modelValue\" class=\"rp-checkbox__icon\" />\n </span>\n <span v-if=\"$slots.default\" class=\"rp-checkbox__label\">\n <slot />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport { CheckIcon, MinusIcon } from '@/components/_internal/icons';\nimport { useCheckbox } from './useCheckbox';\nimport type { CheckboxProps } from './types';\n\ndefineOptions({ name: 'RpCheckbox' });\n\nconst props = withDefaults(defineProps<CheckboxProps>(), {\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n indeterminate: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { control, rootClass, onChange } = useCheckbox(props, (value) => {\n emit('update:modelValue', value);\n});\n</script>\n\n<style src=\"./checkbox.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AIKA,SAAgB,YACZ,OACA,YACF;CACE,MAAM,UAAU,gBAAgB,KAAK;CAErC,MAAM,YAAY,eACd,IAAI,eAAe;EACf,SAAS,MAAM;EACf,eAAe,MAAM;EACrB,UAAU,QAAQ;EAClB,SAAS,QAAQ;CACrB,CAAC,CACL;CAEA,SAAS,SAAS,GAAU;EACxB,WAAY,EAAE,OAA4B,OAAO;CACrD;CAEA,OAAO;EACH;EACA;EACA;CACJ;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECWA,MAAM,QAAQ;EAOd,MAAM,OAAO;EAIb,MAAM,EAAE,SAAS,WAAW,aAAa,YAAY,QAAQ,UAAU;GACnE,KAAK,qBAAqB,KAAK;EACnC,CAAC;;;;SAhCY,WAAM,MAAE,MAAA,QAAA,CAAQ,CAAA,CAAA,CAAA;;;;;;;iBAnBb,MAAA,SAAA,CAAS;gBAChB,iBAAe,qBAAoB,KAAA,CAAS;gBAC5C,cAAY,iBAAa,kBAAqB,cAAU,YAAA,WAAA;eAGpD,MAAI,SAAO,EAAA;eACX,QAAM,QAAA,IAAI;eAGV,WAAS,WAAU;eACnB,YAAU,qBAAoB,KAAA,CAAS;eACvC,YAAU,qBAAoB,KAAA,CAAS;eACvC,iBAAe,cAAa;eAC5B,gBAAc,iBAAa,UAAa,WAAU;eAClD,cAAY,QAAA,aAAa,KAAA,CAAS;eAClC,mBAAiB,SAAO,cAAA;eACxB,oBAAkB,SAAO,eAAA;eACzB,gBAAc,SAAO,WAAY,KAAA,CAAS;eAC1C,iBAAe,qBAAoB,KAAA,CAAS;;;iBAI5B,QAAA,qBAAa;sDAAE,OAAM,oBAAmB,CAAA;0BACnC,QAAA,kBAAU;sDAAE,OAAM,oBAAmB,CAAA;;;iBAEnD,OAAM,eAAA"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../src/components/checkbox/useCheckbox.ts","../src/components/checkbox/checkbox.vue","../src/components/checkbox/checkbox.vue"],"sourcesContent":["import { computed } from 'vue';\nimport { useControlState } from '@/composables/useControlState';\nimport { bem } from '@/utils/bem';\nimport type { CheckboxProps } from './types';\n\nexport function useCheckbox(props: Readonly<CheckboxProps>, emitUpdate: (value: boolean) => void) {\n const control = useControlState(props);\n\n const rootClass = computed(() =>\n bem('rp-checkbox', {\n checked: props.modelValue,\n indeterminate: props.indeterminate,\n disabled: control.disabled,\n invalid: control.invalid,\n [props.variant ?? '']: Boolean(props.variant),\n [`color-${props.color}`]: Boolean(props.color),\n [`size-${props.size}`]: Boolean(props.size),\n [`radius-${props.radius}`]: Boolean(props.radius),\n }),\n );\n\n function onChange(e: Event) {\n emitUpdate((e.target as HTMLInputElement).checked);\n }\n\n return {\n control,\n rootClass,\n onChange,\n };\n}\n","<template>\n <label\n :class=\"rootClass\"\n :data-disabled=\"control.disabled || undefined\"\n :data-state=\"indeterminate ? 'indeterminate' : modelValue ? 'checked' : 'unchecked'\"\n >\n <input\n :id=\"control.id\"\n :name=\"name\"\n type=\"checkbox\"\n class=\"rp-checkbox__native\"\n :checked=\"modelValue\"\n :disabled=\"control.disabled || undefined\"\n :required=\"control.required || undefined\"\n :indeterminate=\"indeterminate\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\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 @change=\"onChange\"\n />\n <span class=\"rp-checkbox__box\">\n <Transition name=\"rp-checkbox-icon\" mode=\"out-in\">\n <MinusIcon v-if=\"indeterminate\" key=\"minus\" class=\"rp-checkbox__icon\" />\n <CheckIcon v-else-if=\"modelValue\" key=\"check\" class=\"rp-checkbox__icon\" />\n </Transition>\n </span>\n <span v-if=\"$slots.default\" class=\"rp-checkbox__label\">\n <slot />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport CheckIcon from '~icons/lucide/check';\nimport MinusIcon from '~icons/lucide/minus';\nimport { useCheckbox } from './useCheckbox';\nimport type { CheckboxProps } from './types';\n\ndefineOptions({ name: 'RpCheckbox' });\n\nconst props = withDefaults(defineProps<CheckboxProps>(), {\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n indeterminate: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { control, rootClass, onChange } = useCheckbox(props, (value) => {\n emit('update:modelValue', value);\n});\n</script>\n\n<style src=\"./checkbox.scss\" lang=\"scss\" scoped></style>\n","<template>\n <label\n :class=\"rootClass\"\n :data-disabled=\"control.disabled || undefined\"\n :data-state=\"indeterminate ? 'indeterminate' : modelValue ? 'checked' : 'unchecked'\"\n >\n <input\n :id=\"control.id\"\n :name=\"name\"\n type=\"checkbox\"\n class=\"rp-checkbox__native\"\n :checked=\"modelValue\"\n :disabled=\"control.disabled || undefined\"\n :required=\"control.required || undefined\"\n :indeterminate=\"indeterminate\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\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 @change=\"onChange\"\n />\n <span class=\"rp-checkbox__box\">\n <Transition name=\"rp-checkbox-icon\" mode=\"out-in\">\n <MinusIcon v-if=\"indeterminate\" key=\"minus\" class=\"rp-checkbox__icon\" />\n <CheckIcon v-else-if=\"modelValue\" key=\"check\" class=\"rp-checkbox__icon\" />\n </Transition>\n </span>\n <span v-if=\"$slots.default\" class=\"rp-checkbox__label\">\n <slot />\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup vapor>\nimport CheckIcon from '~icons/lucide/check';\nimport MinusIcon from '~icons/lucide/minus';\nimport { useCheckbox } from './useCheckbox';\nimport type { CheckboxProps } from './types';\n\ndefineOptions({ name: 'RpCheckbox' });\n\nconst props = withDefaults(defineProps<CheckboxProps>(), {\n disabled: undefined,\n required: undefined,\n invalid: undefined,\n indeterminate: false,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst { control, rootClass, onChange } = useCheckbox(props, (value) => {\n emit('update:modelValue', value);\n});\n</script>\n\n<style src=\"./checkbox.scss\" lang=\"scss\" scoped></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAgB,YAAY,OAAgC,YAAsC;CAC9F,MAAM,UAAU,gBAAgB,KAAK;CAErC,MAAM,YAAY,eACd,IAAI,eAAe;EACf,SAAS,MAAM;EACf,eAAe,MAAM;EACrB,UAAU,QAAQ;EAClB,SAAS,QAAQ;GAChB,MAAM,WAAW,KAAK,QAAQ,MAAM,OAAO;GAC3C,SAAS,MAAM,UAAU,QAAQ,MAAM,KAAK;GAC5C,QAAQ,MAAM,SAAS,QAAQ,MAAM,IAAI;GACzC,UAAU,MAAM,WAAW,QAAQ,MAAM,MAAM;CACpD,CAAC,CACL;CAEA,SAAS,SAAS,GAAU;EACxB,WAAY,EAAE,OAA4B,OAAO;CACrD;CAEA,OAAO;EACH;EACA;EACA;CACJ;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECaA,MAAM,QAAQ;EAOd,MAAM,OAAO;EAIb,MAAM,EAAE,SAAS,WAAW,aAAa,YAAY,QAAQ,UAAU;GACnE,KAAK,qBAAqB,KAAK;EACnC,CAAC;;;;SAnCY,WAAM,MAAE,MAAA,QAAA,CAAQ,CAAA,CAAA,CAAA;;;;;;;iBAnBb,MAAA,SAAA,CAAS;gBAChB,iBAAe,qBAAoB,KAAA,CAAS;gBAC5C,cAAY,iBAAa,kBAAqB,cAAU,YAAA,WAAA;eAGpD,MAAI,SAAO,EAAA;eACX,QAAM,QAAA,IAAI;eAGV,WAAS,WAAU;eACnB,YAAU,qBAAoB,KAAA,CAAS;eACvC,YAAU,qBAAoB,KAAA,CAAS;eACvC,iBAAe,cAAa;eAC5B,gBAAc,iBAAa,UAAa,WAAU;eAClD,cAAY,QAAA,aAAa,KAAA,CAAS;eAClC,mBAAiB,SAAO,cAAA;eACxB,oBAAkB,SAAO,eAAA;eACzB,gBAAc,SAAO,WAAY,KAAA,CAAS;eAC1C,iBAAe,qBAAoB,KAAA,CAAS;;;;GAIjC,MAAK;GAAmB,MAAK;;yBACpB,QAAA,qBAAa;uDAAc,OAAM,oBAAmB,CAAA;oBAAjC,OAAO;;2BACrB,QAAA,kBAAU;uDAAc,OAAM,oBAAmB,CAAA;oBAAjC,OAAO;;;;;iBAGzC,OAAM,eAAA"}
@@ -6,11 +6,11 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
6
6
  expose: (exposed: {}) => void;
7
7
  attrs: any;
8
8
  slots: {
9
- prefix?: (props: {}) => any;
9
+ left?: (props: {}) => any;
10
10
  } & {
11
11
  default?: (props: {}) => any;
12
12
  } & {
13
- suffix?: (props: {}) => any;
13
+ right?: (props: {}) => any;
14
14
  };
15
15
  emit: {};
16
16
  }>) => import('vue').VNode & {
@@ -1,2 +1,2 @@
1
1
  export { default as Button } from './button';
2
- export type { ButtonProps } from './types';
2
+ export type { ButtonColor, ButtonProps, ButtonRadius, ButtonSize, ButtonVariant } from './types';
@@ -1,5 +1,12 @@
1
+ export type ButtonColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
2
+ export type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ export type ButtonRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ export type ButtonVariant = 'solid' | 'subtle' | 'surface' | 'outline' | 'ghost' | 'plain';
1
5
  export interface ButtonProps {
2
- variant?: 'solid' | 'ghost';
6
+ variant?: ButtonVariant;
7
+ color?: ButtonColor;
8
+ size?: ButtonSize;
9
+ radius?: ButtonRadius;
3
10
  type?: 'button' | 'submit' | 'reset';
4
11
  disabled?: boolean;
5
12
  loading?: boolean;
@@ -1,2 +1,2 @@
1
1
  export { default as Checkbox } from './checkbox';
2
- export type { CheckboxProps } from './types';
2
+ export type { CheckboxColor, CheckboxProps, CheckboxRadius, CheckboxSize, CheckboxVariant, } from './types';
@@ -1,7 +1,15 @@
1
+ export type CheckboxColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
2
+ export type CheckboxSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ export type CheckboxRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ export type CheckboxVariant = 'solid' | 'outline';
1
5
  export interface CheckboxProps {
2
6
  id?: string;
3
7
  name?: string;
4
8
  modelValue: boolean;
9
+ variant?: CheckboxVariant;
10
+ color?: CheckboxColor;
11
+ size?: CheckboxSize;
12
+ radius?: CheckboxRadius;
5
13
  disabled?: boolean;
6
14
  required?: boolean;
7
15
  invalid?: boolean;
@@ -1,2 +1,2 @@
1
1
  export { default as Input } from './input';
2
- export type { InputProps } from './types';
2
+ export type { InputProps, InputRadius, InputSize } from './types';
@@ -7,7 +7,11 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
7
7
  } ? P : {});
8
8
  expose: (exposed: {}) => void;
9
9
  attrs: any;
10
- slots: {};
10
+ slots: {
11
+ left?: (props: {}) => any;
12
+ } & {
13
+ right?: (props: {}) => any;
14
+ };
11
15
  emit: (evt: "update:modelValue", value: string) => void;
12
16
  }>) => import('vue').VNode & {
13
17
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
@@ -1,13 +1,18 @@
1
+ export type InputRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
+ export type InputSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1
3
  export interface InputProps {
2
4
  id?: string;
3
5
  name?: string;
4
6
  modelValue: string;
5
7
  type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url';
8
+ size?: InputSize;
9
+ radius?: InputRadius;
6
10
  placeholder?: string;
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;
@@ -1,3 +1,3 @@
1
1
  export { default as Radio } from './radio';
2
2
  export { default as RadioGroup } from './radio-group';
3
- export type { RadioProps, RadioGroupProps } from './types';
3
+ export type { RadioColor, RadioGroupProps, RadioProps, RadioSize, RadioVariant } from './types';
@@ -1,12 +1,21 @@
1
1
  import { InjectionKey } from 'vue';
2
+ export type RadioColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
3
+ export type RadioSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ export type RadioVariant = 'solid' | 'outline';
2
5
  export interface RadioProps {
3
6
  value: string | number;
7
+ variant?: RadioVariant;
8
+ color?: RadioColor;
9
+ size?: RadioSize;
4
10
  disabled?: boolean;
5
11
  }
6
12
  export interface RadioGroupProps {
7
13
  id?: string;
8
14
  name?: string;
9
15
  modelValue: string | number | null;
16
+ variant?: RadioVariant;
17
+ color?: RadioColor;
18
+ size?: RadioSize;
10
19
  disabled?: boolean;
11
20
  required?: boolean;
12
21
  invalid?: boolean;
@@ -19,6 +28,9 @@ export interface RadioGroupContext {
19
28
  name: string;
20
29
  disabled: boolean;
21
30
  required: boolean;
31
+ variant?: RadioVariant;
32
+ color?: RadioColor;
33
+ size?: RadioSize;
22
34
  select: (value: string | number) => void;
23
35
  }
24
36
  export declare const radioGroupKey: InjectionKey<RadioGroupContext>;