ropav 0.0.7 → 0.0.9

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 (191) hide show
  1. package/dist/accordion.css +10 -10
  2. package/dist/accordion.js +2 -4
  3. package/dist/alert.css +109 -0
  4. package/dist/alert.js +168 -0
  5. package/dist/aspect-ratio.css +17 -0
  6. package/dist/aspect-ratio.js +26 -0
  7. package/dist/avatar.css +97 -0
  8. package/dist/avatar.js +161 -0
  9. package/dist/badge.css +40 -115
  10. package/dist/badge.js +19 -18
  11. package/dist/base.css +609 -180
  12. package/dist/bem.js +0 -2
  13. package/dist/button-group.js +0 -2
  14. package/dist/button-link.css +161 -0
  15. package/dist/button-link.js +108 -0
  16. package/dist/button.css +50 -229
  17. package/dist/button.js +7 -11
  18. package/dist/card.css +50 -30
  19. package/dist/card.js +69 -38
  20. package/dist/check.js +12 -0
  21. package/dist/checkbox.css +16 -57
  22. package/dist/checkbox.js +14 -33
  23. package/dist/collapse.css +8 -8
  24. package/dist/collapse.js +4 -10
  25. package/dist/color-input.css +108 -0
  26. package/dist/color-input.js +344 -0
  27. package/dist/color-picker.css +304 -0
  28. package/dist/color-picker.js +717 -0
  29. package/dist/color-picker2.js +18 -0
  30. package/dist/color-swatch.css +50 -0
  31. package/dist/color-swatch.js +73 -0
  32. package/dist/color.js +190 -0
  33. package/dist/componentColors.js +206 -15
  34. package/dist/components/alert/alert.d.ts +30 -0
  35. package/dist/components/alert/index.d.ts +3 -0
  36. package/dist/components/alert/index.js +2 -0
  37. package/dist/components/alert/types.d.ts +20 -0
  38. package/dist/components/alert/useAlertColor.d.ts +3 -0
  39. package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
  40. package/dist/components/aspect-ratio/index.d.ts +2 -0
  41. package/dist/components/aspect-ratio/index.js +2 -0
  42. package/dist/components/aspect-ratio/types.d.ts +3 -0
  43. package/dist/components/avatar/avatar.d.ts +24 -0
  44. package/dist/components/avatar/index.d.ts +3 -0
  45. package/dist/components/avatar/index.js +2 -0
  46. package/dist/components/avatar/types.d.ts +20 -0
  47. package/dist/components/avatar/useAvatarColor.d.ts +3 -0
  48. package/dist/components/badge/types.d.ts +2 -1
  49. package/dist/components/badge/useBadgeColor.d.ts +3 -8
  50. package/dist/components/button/types.d.ts +1 -0
  51. package/dist/components/button/useButtonColor.d.ts +3 -13
  52. package/dist/components/button-link/button-link.d.ts +27 -0
  53. package/dist/components/button-link/index.d.ts +2 -0
  54. package/dist/components/button-link/index.js +2 -0
  55. package/dist/components/button-link/types.d.ts +20 -0
  56. package/dist/components/card/card.d.ts +4 -0
  57. package/dist/components/card/types.d.ts +4 -0
  58. package/dist/components/checkbox/types.d.ts +1 -0
  59. package/dist/components/checkbox/useCheckbox.d.ts +2 -4
  60. package/dist/components/collapse/types.d.ts +0 -2
  61. package/dist/components/color-input/color-input.d.ts +29 -0
  62. package/dist/components/color-input/index.d.ts +2 -0
  63. package/dist/components/color-input/index.js +2 -0
  64. package/dist/components/color-input/types.d.ts +34 -0
  65. package/dist/components/color-input/useColorInput.d.ts +27 -0
  66. package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
  67. package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
  68. package/dist/components/color-input/useColorInputValue.d.ts +8 -0
  69. package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
  70. package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
  71. package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
  72. package/dist/components/color-picker/color-picker.d.ts +23 -0
  73. package/dist/components/color-picker/index.d.ts +3 -0
  74. package/dist/components/color-picker/index.js +3 -0
  75. package/dist/components/color-picker/types.d.ts +39 -0
  76. package/dist/components/color-picker/useColorPickerDrag.d.ts +11 -0
  77. package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
  78. package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
  79. package/dist/components/color-swatch/color-swatch.d.ts +21 -0
  80. package/dist/components/color-swatch/index.d.ts +2 -0
  81. package/dist/components/color-swatch/index.js +2 -0
  82. package/dist/components/color-swatch/types.d.ts +6 -0
  83. package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
  84. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  85. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +1 -1
  86. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -1
  87. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +1 -1
  88. package/dist/components/field/types.d.ts +0 -2
  89. package/dist/components/field/useField.d.ts +1 -2
  90. package/dist/components/icon-button/types.d.ts +1 -0
  91. package/dist/components/input/types.d.ts +3 -0
  92. package/dist/components/modal/types.d.ts +0 -1
  93. package/dist/components/number-input/index.d.ts +2 -0
  94. package/dist/components/number-input/index.js +2 -0
  95. package/dist/components/number-input/number-input.d.ts +29 -0
  96. package/dist/components/number-input/types.d.ts +34 -0
  97. package/dist/components/number-input/useNumberInput.d.ts +31 -0
  98. package/dist/components/popover/index.d.ts +1 -0
  99. package/dist/components/popover/index.js +2 -1
  100. package/dist/components/popover/types.d.ts +6 -2
  101. package/dist/components/popover/usePopover.d.ts +5 -2
  102. package/dist/components/progress/types.d.ts +1 -1
  103. package/dist/components/radio/types.d.ts +3 -0
  104. package/dist/components/radio/useRadio.d.ts +2 -4
  105. package/dist/components/select/index.d.ts +1 -1
  106. package/dist/components/select/types.d.ts +3 -0
  107. package/dist/components/slider/index.d.ts +2 -1
  108. package/dist/components/slider/index.js +2 -2
  109. package/dist/components/slider/range-slider.d.ts +45 -0
  110. package/dist/components/slider/types.d.ts +14 -2
  111. package/dist/components/slider/useRangeSlider.d.ts +59 -0
  112. package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +7 -0
  113. package/dist/components/slider/useRangeSliderTooltipTransition.d.ts +4 -0
  114. package/dist/components/switch/useSwitch.d.ts +2 -3
  115. package/dist/components/tooltip/types.d.ts +1 -0
  116. package/dist/dropdown-menu.css +17 -17
  117. package/dist/dropdown-menu.js +0 -2
  118. package/dist/field.css +17 -17
  119. package/dist/field.js +56 -51
  120. package/dist/icon-button.css +57 -236
  121. package/dist/icon-button.js +5 -8
  122. package/dist/index.d.ts +8 -0
  123. package/dist/index.js +16 -4
  124. package/dist/input.css +40 -46
  125. package/dist/input.js +39 -23
  126. package/dist/minus.js +12 -0
  127. package/dist/modal.css +37 -37
  128. package/dist/modal.js +10 -16
  129. package/dist/number-input.css +86 -0
  130. package/dist/number-input.js +350 -0
  131. package/dist/overlay.css +5 -5
  132. package/dist/overlay.js +3 -5
  133. package/dist/popover.css +62 -29
  134. package/dist/popover.js +25 -12
  135. package/dist/popover2.js +17 -0
  136. package/dist/progress.css +9 -30
  137. package/dist/progress.js +3 -8
  138. package/dist/radio.css +34 -62
  139. package/dist/radio.js +28 -18
  140. package/dist/select.css +105 -61
  141. package/dist/select.js +12 -10
  142. package/dist/slider.css +508 -41
  143. package/dist/slider.js +1122 -50
  144. package/dist/switch.css +19 -44
  145. package/dist/switch.js +4 -7
  146. package/dist/tabs.css +36 -36
  147. package/dist/tabs.js +1 -3
  148. package/dist/textarea.css +33 -25
  149. package/dist/textarea.js +0 -2
  150. package/dist/tooltip.css +7 -35
  151. package/dist/tooltip.js +13 -10
  152. package/dist/useButtonColor.js +16 -16
  153. package/dist/useClickOutside.js +0 -2
  154. package/dist/useCollapse.js +1 -3
  155. package/dist/useControlState.js +0 -2
  156. package/dist/useRequiredInject.js +0 -2
  157. package/dist/x.js +0 -2
  158. package/package.json +43 -7
  159. package/src/styles/_mixins.scss +25 -41
  160. package/src/styles/_tokens.scss +615 -182
  161. package/src/styles/_variables.scss +177 -49
  162. package/dist/accordion.js.map +0 -1
  163. package/dist/badge.js.map +0 -1
  164. package/dist/bem.js.map +0 -1
  165. package/dist/button-group.js.map +0 -1
  166. package/dist/button.js.map +0 -1
  167. package/dist/card.js.map +0 -1
  168. package/dist/checkbox.js.map +0 -1
  169. package/dist/collapse.js.map +0 -1
  170. package/dist/componentColors.js.map +0 -1
  171. package/dist/dropdown-menu.js.map +0 -1
  172. package/dist/field.js.map +0 -1
  173. package/dist/icon-button.js.map +0 -1
  174. package/dist/input.js.map +0 -1
  175. package/dist/modal.js.map +0 -1
  176. package/dist/overlay.js.map +0 -1
  177. package/dist/popover.js.map +0 -1
  178. package/dist/progress.js.map +0 -1
  179. package/dist/radio.js.map +0 -1
  180. package/dist/select.js.map +0 -1
  181. package/dist/slider.js.map +0 -1
  182. package/dist/switch.js.map +0 -1
  183. package/dist/tabs.js.map +0 -1
  184. package/dist/textarea.js.map +0 -1
  185. package/dist/tooltip.js.map +0 -1
  186. package/dist/useButtonColor.js.map +0 -1
  187. package/dist/useClickOutside.js.map +0 -1
  188. package/dist/useCollapse.js.map +0 -1
  189. package/dist/useControlState.js.map +0 -1
  190. package/dist/useRequiredInject.js.map +0 -1
  191. package/dist/x.js.map +0 -1
@@ -0,0 +1,108 @@
1
+ .rp-color-input[data-v-bae38f91] {
2
+ --_rp-color-input-height: var(--rp-size-control-md);
3
+ --_rp-color-input-preview-size: calc(var(--_rp-color-input-height) / 2);
4
+ --_rp-color-input-preview-inset: calc(
5
+ (var(--_rp-color-input-height) - var(--_rp-color-input-preview-size)) / 2
6
+ );
7
+ --_rp-color-input-empty-tile: var(--rp-color-gray-3);
8
+ --_rp-color-input-empty-tile-alt: var(--rp-color-white);
9
+ --_rp-color-input-empty-grid: conic-gradient(
10
+ var(--_rp-color-input-empty-tile) 25%,
11
+ var(--_rp-color-input-empty-tile-alt) 0 50%,
12
+ var(--_rp-color-input-empty-tile) 0 75%,
13
+ var(--_rp-color-input-empty-tile-alt) 0
14
+ );
15
+ display: inline-flex;
16
+ max-width: 100%;
17
+ font-family: var(--rp-font-family);
18
+ vertical-align: middle;
19
+ }
20
+ .rp-color-input--size-xs[data-v-bae38f91] {
21
+ --_rp-color-input-height: var(--rp-size-control-xs);
22
+ }
23
+ .rp-color-input--size-sm[data-v-bae38f91] {
24
+ --_rp-color-input-height: var(--rp-size-control-sm);
25
+ }
26
+ .rp-color-input--size-md[data-v-bae38f91] {
27
+ --_rp-color-input-height: var(--rp-size-control-md);
28
+ }
29
+ .rp-color-input--size-lg[data-v-bae38f91] {
30
+ --_rp-color-input-height: var(--rp-size-control-lg);
31
+ }
32
+ .rp-color-input--size-xl[data-v-bae38f91] {
33
+ --_rp-color-input-height: var(--rp-size-control-xl);
34
+ }
35
+ html.dark .rp-color-input[data-v-bae38f91], [data-rp-color-scheme=dark] .rp-color-input[data-v-bae38f91] {
36
+ --_rp-color-input-empty-tile: var(--rp-color-dark-6);
37
+ --_rp-color-input-empty-tile-alt: var(--rp-color-dark-4);
38
+ }
39
+ .rp-color-input[data-v-bae38f91] .rp-input {
40
+ width: 100%;
41
+ min-width: 180px;
42
+ padding-inline-start: calc(var(--_rp-color-input-preview-inset) - var(--rp-border-width-thin));
43
+ }
44
+ .rp-color-input[data-v-bae38f91] .rp-popover__content {
45
+ min-width: auto;
46
+ padding: var(--rp-spacing-3);
47
+ padding-inline: calc(var(--_rp-color-input-preview-inset) - var(--rp-border-width-thin));
48
+ }
49
+ .rp-color-input[data-v-bae38f91] .rp-color-picker {
50
+ --_rp-color-picker-size: min(
51
+ var(--_rp-color-picker-saturation-width),
52
+ calc(100vw - var(--rp-spacing-12))
53
+ );
54
+ }
55
+ .rp-color-input__preview[data-v-bae38f91] {
56
+ --_rp-color-swatch-radius: 50%;
57
+ width: var(--_rp-color-input-preview-size);
58
+ height: var(--_rp-color-input-preview-size);
59
+ flex-shrink: 0;
60
+ border-radius: 50%;
61
+ pointer-events: none;
62
+ }
63
+ .rp-color-input__preview--empty[data-v-bae38f91] {
64
+ box-sizing: border-box;
65
+ display: inline-flex;
66
+ background: var(--_rp-color-input-empty-grid);
67
+ background-size: calc(var(--_rp-color-input-preview-size) / 2) calc(var(--_rp-color-input-preview-size) / 2);
68
+ border: var(--rp-border-width-thin) dashed var(--rp-color-control-border);
69
+ }
70
+ .rp-color-input__eye-dropper[data-v-bae38f91] {
71
+ padding: 0;
72
+ font: inherit;
73
+ background: none;
74
+ border: none;
75
+ cursor: pointer;
76
+ display: inline-flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ border-radius: var(--rp-radius-xs);
80
+ color: var(--rp-color-control-icon);
81
+ transition: color var(--rp-transition-fast), opacity var(--rp-transition-fast);
82
+ }
83
+ .rp-color-input__eye-dropper[data-v-bae38f91]:hover:not(:disabled) {
84
+ color: var(--rp-color-control-fg);
85
+ }
86
+ .rp-color-input__eye-dropper[data-v-bae38f91]:focus-visible {
87
+ outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
88
+ outline-offset: 2px;
89
+ }
90
+ .rp-color-input__eye-dropper[data-v-bae38f91]:disabled {
91
+ cursor: not-allowed;
92
+ opacity: var(--rp-opacity-disabled);
93
+ }
94
+ .rp-color-input__eye-dropper-icon[data-v-bae38f91] {
95
+ display: inline-flex;
96
+ align-items: center;
97
+ width: 1em;
98
+ height: 1em;
99
+ flex-shrink: 0;
100
+ }
101
+ .rp-color-input__eye-dropper-icon svg[data-v-bae38f91] {
102
+ width: 100%;
103
+ height: 100%;
104
+ }
105
+ .rp-color-input__eye-dropper-icon[data-v-bae38f91] > svg {
106
+ width: 100%;
107
+ height: 100%;
108
+ }
@@ -0,0 +1,344 @@
1
+ import './color-input.css';
2
+ import { t as bem } from "./bem.js";
3
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
+ import { t as useControlState } from "./useControlState.js";
5
+ import { t as color_swatch_default } from "./color-swatch.js";
6
+ import { n as formatColorPickerValue, r as parseColorPickerValue, t as color_picker_default } from "./color-picker.js";
7
+ import { t as input_default } from "./input.js";
8
+ import { t as popover_default } from "./popover.js";
9
+ import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, markRaw, nextTick, on, onMounted, ref, renderEffect, setAttr, setInsertionState, setProp, shallowRef, template, unref, withModifiers } from "vue";
10
+ //#region ~icons/lucide/crosshair
11
+ var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><g fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><circle cx=12 cy=12 r=10></circle><path d=\"M22 12h-4M6 12H2m10-6V2m0 20v-4\">", 3, 1);
12
+ function render(_ctx) {
13
+ return t0$1();
14
+ }
15
+ var crosshair_default = markRaw(defineVaporComponent({
16
+ name: "lucide-crosshair",
17
+ render
18
+ }));
19
+ //#endregion
20
+ //#region src/components/color-input/useColorInputEyeDropper.ts
21
+ function useColorInputEyeDropper(options) {
22
+ const eyeDropperApi = shallowRef();
23
+ const isPickingColor = ref(false);
24
+ const showEyeDropper = computed(() => options.enabled() && Boolean(eyeDropperApi.value));
25
+ onMounted(() => {
26
+ eyeDropperApi.value = window.EyeDropper;
27
+ });
28
+ async function pickScreenColor(closePicker) {
29
+ const EyeDropperApi = eyeDropperApi.value;
30
+ if (options.disabled() || isPickingColor.value || !EyeDropperApi) return;
31
+ closePicker();
32
+ isPickingColor.value = true;
33
+ try {
34
+ const color = parseColorPickerValue((await new EyeDropperApi().open()).sRGBHex);
35
+ if (!color || options.disabled()) return;
36
+ options.update(formatColorPickerValue(color, options.format()));
37
+ } catch {} finally {
38
+ isPickingColor.value = false;
39
+ }
40
+ }
41
+ return {
42
+ showEyeDropper,
43
+ isPickingColor,
44
+ pickScreenColor
45
+ };
46
+ }
47
+ //#endregion
48
+ //#region src/components/color-input/useColorInputPopover.ts
49
+ function onInputKeydown(event, popover) {
50
+ if (event.key === "ArrowDown") {
51
+ event.preventDefault();
52
+ const trigger = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
53
+ popover.open();
54
+ nextTick(() => focusPickerFromTrigger(trigger));
55
+ return;
56
+ }
57
+ if (event.key === "Escape") popover.triggerProps.onKeydown(event);
58
+ }
59
+ function focusPickerFromTrigger(trigger) {
60
+ const picker = trigger?.closest(".rp-color-input")?.querySelector(".rp-color-picker");
61
+ if (!picker) return;
62
+ (Boolean(picker.querySelector(".rp-color-picker__saturation")) ? picker.querySelector("input:not(:disabled), button:not(:disabled), [tabindex=\"0\"]") : picker.querySelector("[role=\"radio\"][aria-checked=\"true\"]") ?? picker.querySelector("[role=\"radio\"][tabindex=\"0\"]"))?.focus({ preventScroll: true });
63
+ }
64
+ function onPickerKeydown(event, popover) {
65
+ if (event.key !== "Escape") return;
66
+ const pickerRoot = event.currentTarget;
67
+ const focusTarget = pickerRoot instanceof Element ? pickerRoot.closest(".rp-color-input")?.querySelector(".rp-input__native") : void 0;
68
+ event.stopPropagation();
69
+ focusTarget?.focus({ preventScroll: true });
70
+ popover.close();
71
+ }
72
+ function useColorInputPopover(getInputAttrs) {
73
+ let closePicker;
74
+ function getInputTriggerAttrs(slotProps) {
75
+ const popover = slotProps;
76
+ const trigger = popover.triggerProps;
77
+ const attrs = getInputAttrs() ?? {};
78
+ if (!trigger["aria-haspopup"]) return attrs;
79
+ return {
80
+ ...attrs,
81
+ role: "combobox",
82
+ "aria-autocomplete": "none",
83
+ "aria-controls": trigger["aria-controls"],
84
+ "aria-expanded": trigger["aria-expanded"],
85
+ "aria-haspopup": trigger["aria-haspopup"],
86
+ onFocusin(event) {
87
+ rememberClose(popover);
88
+ popover.open();
89
+ attrs.onFocusin?.(event);
90
+ },
91
+ onClick(event) {
92
+ rememberClose(popover);
93
+ popover.open();
94
+ attrs.onClick?.(event);
95
+ },
96
+ onKeydown(event) {
97
+ onInputKeydown(event, popover);
98
+ attrs.onKeydown?.(event);
99
+ }
100
+ };
101
+ }
102
+ function rememberClose(slotProps) {
103
+ closePicker = slotProps.close;
104
+ }
105
+ function onFocusOut(event) {
106
+ const root = event.currentTarget;
107
+ const nextTarget = event.relatedTarget;
108
+ if (root instanceof HTMLElement && nextTarget instanceof Node && root.contains(nextTarget)) return;
109
+ closePicker?.();
110
+ }
111
+ return {
112
+ getInputTriggerAttrs,
113
+ rememberClose,
114
+ onPickerKeydown,
115
+ onFocusOut
116
+ };
117
+ }
118
+ //#endregion
119
+ //#region src/components/color-input/useColorInputValue.ts
120
+ function useColorInputValue(props, isControlInvalid) {
121
+ const parsedColor = computed(() => parseColorPickerValue(props.modelValue));
122
+ const previewColor = computed(() => parsedColor.value ? props.modelValue : void 0);
123
+ const hasValidSwatches = computed(() => Boolean(props.swatches?.some((swatch) => parseColorPickerValue(swatch))));
124
+ const hasInvalidColor = computed(() => props.validateColor && props.modelValue.trim().length > 0 && !parsedColor.value);
125
+ return {
126
+ previewColor,
127
+ hasValidSwatches,
128
+ hasInvalidColor,
129
+ isInvalid: computed(() => isControlInvalid() || hasInvalidColor.value),
130
+ colorValidationMessage: computed(() => hasInvalidColor.value ? props.invalidColorMessage : void 0)
131
+ };
132
+ }
133
+ //#endregion
134
+ //#region src/components/color-input/useColorInput.ts
135
+ function useColorInput(props, emit) {
136
+ const control = useControlState(props);
137
+ const value = useColorInputValue(props, () => control.invalid);
138
+ const popover = useColorInputPopover(() => props.inputAttrs);
139
+ const popoverDisabled = computed(() => control.disabled || Boolean(props.readonly) || Boolean(props.swatchesOnly) && !value.hasValidSwatches.value);
140
+ const eyeDropper = useColorInputEyeDropper({
141
+ enabled: () => props.withEyeDropper !== false && !props.swatchesOnly,
142
+ disabled: () => control.disabled || Boolean(props.readonly) || Boolean(props.swatchesOnly),
143
+ format: () => props.format ?? "hex",
144
+ update: emit.modelValue
145
+ });
146
+ const rootClass = computed(() => bem("rp-color-input", {
147
+ [`size-${props.size}`]: Boolean(props.size),
148
+ [`radius-${props.radius}`]: Boolean(props.radius),
149
+ disabled: control.disabled,
150
+ invalid: value.isInvalid.value,
151
+ valid: control.valid && !value.isInvalid.value,
152
+ readonly: props.readonly
153
+ }));
154
+ function onInputUpdate(nextValue) {
155
+ if (control.disabled || props.readonly || props.disallowInput || props.swatchesOnly) return;
156
+ emit.modelValue(nextValue);
157
+ }
158
+ function onPickerUpdate(nextValue) {
159
+ if (control.disabled || props.readonly) return;
160
+ emit.modelValue(nextValue);
161
+ }
162
+ function onOpenUpdate(open) {
163
+ emit.open(open);
164
+ }
165
+ return {
166
+ control,
167
+ rootClass,
168
+ popoverDisabled,
169
+ ...value,
170
+ ...popover,
171
+ ...eyeDropper,
172
+ onInputUpdate,
173
+ onPickerUpdate,
174
+ onOpenUpdate
175
+ };
176
+ }
177
+ //#endregion
178
+ //#region src/components/color-input/color-input.vue?vue&type=script&setup=true&vapor=true&lang.ts
179
+ var t0 = template("<span data-v-bae38f91 class=\"rp-color-input__preview rp-color-input__preview--empty\"aria-hidden=true>", 2);
180
+ var t1 = template("<button data-v-bae38f91 class=rp-color-input__eye-dropper type=button><span data-v-bae38f91 class=rp-color-input__eye-dropper-icon aria-hidden=true></button>");
181
+ //#endregion
182
+ //#region src/components/color-input/color-input.vue
183
+ var color_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
184
+ name: "RpColorInput",
185
+ __name: "color-input",
186
+ props: {
187
+ id: {},
188
+ name: {},
189
+ modelValue: {},
190
+ format: { default: "hex" },
191
+ size: {},
192
+ radius: {},
193
+ placeholder: { default: "" },
194
+ disabled: {
195
+ type: Boolean,
196
+ default: void 0
197
+ },
198
+ readonly: {
199
+ type: Boolean,
200
+ default: false
201
+ },
202
+ disallowInput: {
203
+ type: Boolean,
204
+ default: false
205
+ },
206
+ swatchesOnly: {
207
+ type: Boolean,
208
+ default: false
209
+ },
210
+ required: {
211
+ type: Boolean,
212
+ default: void 0
213
+ },
214
+ invalid: {
215
+ type: Boolean,
216
+ default: void 0
217
+ },
218
+ valid: {
219
+ type: Boolean,
220
+ default: void 0
221
+ },
222
+ ariaLabel: {},
223
+ describedby: {},
224
+ labelledby: {},
225
+ inputAttrs: {},
226
+ validateColor: {
227
+ type: Boolean,
228
+ default: false
229
+ },
230
+ invalidColorMessage: { default: "Enter a valid color." },
231
+ swatches: {},
232
+ swatchesPerRow: {},
233
+ placement: { default: "bottom-start" },
234
+ open: {
235
+ type: Boolean,
236
+ default: void 0
237
+ },
238
+ popoverId: {},
239
+ pickerAriaLabel: { default: "Choose color" },
240
+ withEyeDropper: {
241
+ type: Boolean,
242
+ default: true
243
+ },
244
+ eyeDropperAriaLabel: { default: "Pick color from screen" }
245
+ },
246
+ emits: ["update:modelValue", "update:open"],
247
+ setup(__props, { emit: __emit }) {
248
+ const props = __props;
249
+ const emit = __emit;
250
+ const { control, rootClass, previewColor, isInvalid, colorValidationMessage, popoverDisabled, getInputTriggerAttrs, rememberClose, onPickerKeydown, onFocusOut, showEyeDropper, isPickingColor, pickScreenColor, onInputUpdate, onPickerUpdate, onOpenUpdate } = useColorInput(props, {
251
+ modelValue: (value) => emit("update:modelValue", value),
252
+ open: (value) => emit("update:open", value)
253
+ });
254
+ return createComponent(popover_default, {
255
+ id: () => __props.popoverId,
256
+ class: () => unref(rootClass),
257
+ placement: () => __props.placement,
258
+ open: () => __props.open,
259
+ disabled: () => unref(popoverDisabled),
260
+ "aria-label": () => __props.pickerAriaLabel,
261
+ onFocusout: () => unref(onFocusOut),
262
+ "onUpdate:open": () => unref(onOpenUpdate)
263
+ }, {
264
+ "default": (slotProps) => {
265
+ return createComponent(input_default, {
266
+ id: () => unref(control).id,
267
+ name: () => __props.name,
268
+ "model-value": () => __props.modelValue,
269
+ type: "text",
270
+ size: () => __props.size,
271
+ radius: () => __props.radius,
272
+ placeholder: () => __props.placeholder,
273
+ disabled: () => unref(control).disabled || void 0,
274
+ readonly: () => __props.readonly || __props.disallowInput || __props.swatchesOnly || void 0,
275
+ required: () => unref(control).required || void 0,
276
+ invalid: () => unref(isInvalid) || void 0,
277
+ valid: () => unref(control).valid && !unref(isInvalid) ? true : void 0,
278
+ "aria-label": () => __props.ariaLabel,
279
+ describedby: () => __props.describedby,
280
+ labelledby: () => __props.labelledby,
281
+ "input-attrs": () => unref(getInputTriggerAttrs)(slotProps),
282
+ "validation-message": () => unref(colorValidationMessage),
283
+ "onUpdate:modelValue": () => unref(onInputUpdate)
284
+ }, {
285
+ "left": extend(() => {
286
+ return createSlot("left", {
287
+ color: () => unref(previewColor),
288
+ empty: () => !unref(previewColor)
289
+ }, () => {
290
+ return createIf(() => unref(previewColor), () => {
291
+ return createComponent(color_swatch_default, {
292
+ class: "rp-color-input__preview",
293
+ color: () => unref(previewColor),
294
+ size: "var(--_rp-color-input-preview-size)",
295
+ "aria-hidden": "true"
296
+ });
297
+ }, () => {
298
+ return t0();
299
+ }, 389);
300
+ }, 1);
301
+ }, { _: 8 }),
302
+ $: [() => unref(showEyeDropper) ? {
303
+ name: "right",
304
+ fn: () => {
305
+ const n13 = t1();
306
+ const n12 = child(n13);
307
+ renderEffect(() => {
308
+ const _isPickingColor = unref(isPickingColor);
309
+ setProp(n13, "disabled", unref(control).disabled || __props.readonly || _isPickingColor);
310
+ setAttr(n13, "aria-label", __props.eyeDropperAriaLabel);
311
+ setAttr(n13, "aria-busy", _isPickingColor || void 0);
312
+ });
313
+ setInsertionState(n12, null, 0);
314
+ createSlot("eye-dropper-icon", null, () => {
315
+ return createComponent(unref(crosshair_default));
316
+ }, 1);
317
+ on(n13, "click", withModifiers(() => unref(pickScreenColor)(slotProps.close), ["stop"]));
318
+ return n13;
319
+ }
320
+ } : void 0]
321
+ });
322
+ },
323
+ "content": (slotProps) => {
324
+ const _on_focusin = () => unref(rememberClose)(slotProps);
325
+ const _on_keydown = ($event) => unref(onPickerKeydown)($event, slotProps);
326
+ return createComponent(color_picker_default, {
327
+ "model-value": () => __props.modelValue,
328
+ format: () => __props.format,
329
+ size: () => __props.size,
330
+ readonly: () => __props.readonly,
331
+ "with-picker": () => !__props.swatchesOnly,
332
+ swatches: () => __props.swatches,
333
+ "swatches-per-row": () => __props.swatchesPerRow,
334
+ "aria-label": () => __props.pickerAriaLabel,
335
+ onFocusin: () => _on_focusin,
336
+ onKeydown: () => _on_keydown,
337
+ "onUpdate:modelValue": () => unref(onPickerUpdate)
338
+ });
339
+ }
340
+ }, true);
341
+ }
342
+ }), [["__scopeId", "data-v-bae38f91"]]);
343
+ //#endregion
344
+ export { color_input_default as t };