ropav 0.1.5 → 0.1.7

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 (235) hide show
  1. package/README.md +10 -0
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +125 -154
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +20 -20
  6. package/dist/aria.js +14 -0
  7. package/dist/aspect-ratio.js +1 -1
  8. package/dist/attributes.js +9 -0
  9. package/dist/attributes2.js +29 -0
  10. package/dist/avatar.css +19 -19
  11. package/dist/avatar.js +10 -18
  12. package/dist/badge.css +16 -16
  13. package/dist/badge.js +6 -6
  14. package/dist/base.css +18 -13
  15. package/dist/button-group.js +1 -1
  16. package/dist/button-link.js +13 -14
  17. package/dist/button.css +32 -27
  18. package/dist/button.js +13 -14
  19. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +3 -2
  20. package/dist/card.js +1 -1
  21. package/dist/checkbox.css +32 -32
  22. package/dist/checkbox.js +23 -29
  23. package/dist/collapse.css +6 -6
  24. package/dist/collapse.js +8 -7
  25. package/dist/collectionNavigation.js +2 -99
  26. package/dist/color-input.css +19 -19
  27. package/dist/color-input.js +15 -14
  28. package/dist/color-picker.css +40 -40
  29. package/dist/color-picker.js +222 -202
  30. package/dist/color-picker2.js +1 -9
  31. package/dist/color-swatch.css +4 -4
  32. package/dist/color-swatch.js +7 -9
  33. package/dist/color.js +5 -10
  34. package/dist/componentColors.js +165 -84
  35. package/dist/componentRef.js +26 -0
  36. package/dist/components/accordion/accordionContext.d.ts +3 -0
  37. package/dist/components/accordion/accordionModel.d.ts +14 -0
  38. package/dist/components/accordion/index.d.ts +2 -1
  39. package/dist/components/accordion/index.js +1 -1
  40. package/dist/components/accordion/types.d.ts +1 -2
  41. package/dist/components/accordion/useAccordion.d.ts +2 -2
  42. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  43. package/dist/components/checkbox/useCheckbox.d.ts +2 -3
  44. package/dist/components/color-input/color-input.d.ts +2 -2
  45. package/dist/components/color-input/useColorInput.d.ts +1 -1
  46. package/dist/components/color-picker/index.js +2 -2
  47. package/dist/components/color-picker/types.d.ts +2 -2
  48. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  49. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  50. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  51. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +2 -6
  52. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  53. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  54. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  55. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  56. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  57. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  58. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  59. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  60. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  61. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  62. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  63. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -19
  64. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  65. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  66. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  67. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  68. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +85 -0
  69. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  70. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  71. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +34 -0
  72. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +22 -0
  73. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  74. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  75. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  76. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  77. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +29 -0
  78. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  79. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  80. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  81. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +42 -0
  82. package/dist/components/floating/index.js +1 -1
  83. package/dist/components/floating/useFloatingPosition.d.ts +0 -1
  84. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +32 -0
  85. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +25 -0
  86. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +27 -0
  87. package/dist/components/input/useInput.d.ts +1 -1
  88. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  89. package/dist/components/number-input/useNumberInput.d.ts +4 -18
  90. package/dist/components/pagination/index.d.ts +1 -1
  91. package/dist/components/pagination/index.js +1 -1
  92. package/dist/components/pagination/paginationModel.d.ts +4 -0
  93. package/dist/components/pagination/types.d.ts +15 -0
  94. package/dist/components/pagination/usePagination.d.ts +3 -19
  95. package/dist/components/popover/usePopoverBindings.d.ts +16 -0
  96. package/dist/components/progress/progressModel.d.ts +8 -0
  97. package/dist/components/progress/useProgress.d.ts +1 -7
  98. package/dist/components/radio/useRadio.d.ts +3 -4
  99. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  100. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  101. package/dist/components/scroll-area/types.d.ts +4 -0
  102. package/dist/components/scroll-area/useScrollArea.d.ts +70 -52
  103. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -14
  104. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  105. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  106. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +10 -8
  107. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  108. package/dist/components/select/useSelect.d.ts +2 -1
  109. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  110. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  111. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +2 -2
  112. package/dist/components/slider/useRangeSlider.d.ts +9 -17
  113. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  114. package/dist/components/slider/useSlider.d.ts +8 -14
  115. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  116. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  117. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  118. package/dist/components/switch/useSwitch.d.ts +1 -1
  119. package/dist/components/teleport-provider/index.js +1 -1
  120. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  121. package/dist/components/textarea/useTextarea.d.ts +1 -1
  122. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  123. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  124. package/dist/composables/index.d.ts +2 -0
  125. package/dist/composables/index.js +2 -0
  126. package/dist/composables/useControllableValue.d.ts +14 -0
  127. package/dist/css.js +12 -0
  128. package/dist/dialog.js +227 -216
  129. package/dist/dropdown-menu.js +1493 -1118
  130. package/dist/events.js +59 -0
  131. package/dist/field.css +8 -8
  132. package/dist/field.js +13 -25
  133. package/dist/floating.js +553 -312
  134. package/dist/floatingOffset.js +11 -0
  135. package/dist/focus-trap.js +7 -5
  136. package/dist/focusNavigation.js +37 -0
  137. package/dist/icon-button.css +12 -173
  138. package/dist/icon-button.js +8 -7
  139. package/dist/index.d.ts +5 -4
  140. package/dist/index.js +13 -11
  141. package/dist/input.css +24 -24
  142. package/dist/input.js +20 -32
  143. package/dist/interactive.js +18 -0
  144. package/dist/modal.js +11 -7
  145. package/dist/number-input.css +18 -18
  146. package/dist/number-input.js +15 -13
  147. package/dist/number.js +22 -0
  148. package/dist/overlay.js +3 -2
  149. package/dist/pagination.css +28 -28
  150. package/dist/pagination.js +67 -65
  151. package/dist/pointer.js +9 -0
  152. package/dist/popover.css +34 -34
  153. package/dist/popover.js +93 -91
  154. package/dist/progress.css +29 -21
  155. package/dist/progress.js +25 -21
  156. package/dist/query.js +40 -0
  157. package/dist/radio.css +18 -18
  158. package/dist/radio.js +31 -37
  159. package/dist/rafScheduler.js +34 -0
  160. package/dist/scroll-area.css +35 -26
  161. package/dist/scroll-area.js +553 -500
  162. package/dist/select.css +45 -45
  163. package/dist/select.js +70 -56
  164. package/dist/slider.css +191 -191
  165. package/dist/slider.js +695 -628
  166. package/dist/styles-api.d.ts +0 -1
  167. package/dist/styles-api.js +1 -4
  168. package/dist/switch.css +17 -17
  169. package/dist/switch.js +15 -16
  170. package/dist/tabs.css +46 -46
  171. package/dist/tabs.js +51 -68
  172. package/dist/text.js +17 -0
  173. package/dist/textarea.css +26 -26
  174. package/dist/textarea.js +22 -33
  175. package/dist/toast.css +26 -26
  176. package/dist/toast.js +157 -129
  177. package/dist/tooltip.css +12 -12
  178. package/dist/tooltip.js +46 -47
  179. package/dist/useCollapse.js +19 -17
  180. package/dist/useControlState.js +4 -7
  181. package/dist/useControllableValue.js +8 -2
  182. package/dist/useFloatingPosition.js +122 -1128
  183. package/dist/useFormControl.js +3 -2
  184. package/dist/useOverlayZIndex.js +2 -6
  185. package/dist/useRequiredInject.js +1 -1
  186. package/dist/useTeleportTarget.js +3 -14
  187. package/dist/useTypeahead.js +94 -0
  188. package/dist/utils/aria.d.ts +3 -0
  189. package/dist/utils/attributes.d.ts +2 -0
  190. package/dist/utils/bem.d.ts +3 -0
  191. package/dist/utils/collectionNavigation.d.ts +2 -0
  192. package/dist/utils/color.d.ts +7 -0
  193. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  194. package/dist/utils/componentColors.d.ts +7 -0
  195. package/dist/utils/css.d.ts +3 -0
  196. package/dist/utils/dom/ancestry.d.ts +7 -0
  197. package/dist/utils/dom/attributes.d.ts +16 -0
  198. package/dist/utils/dom/componentRef.d.ts +4 -0
  199. package/dist/utils/dom/events.d.ts +5 -0
  200. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  201. package/dist/utils/dom/interactive.d.ts +2 -0
  202. package/dist/utils/dom/pointer.d.ts +2 -0
  203. package/dist/utils/dom/query.d.ts +4 -0
  204. package/dist/utils/dom/scroll.d.ts +23 -0
  205. package/dist/utils/floatingOffset.d.ts +10 -0
  206. package/dist/utils/geometry.d.ts +14 -0
  207. package/dist/utils/indexPath.d.ts +6 -0
  208. package/dist/utils/number.d.ts +4 -0
  209. package/dist/utils/rafScheduler.d.ts +4 -0
  210. package/dist/utils/text.d.ts +2 -0
  211. package/docs/code-architecture.md +118 -0
  212. package/docs/public-composables-api.md +52 -0
  213. package/docs/public-floating-api.md +6 -5
  214. package/package.json +54 -46
  215. package/src/styles/_mixins.scss +4 -0
  216. package/src/styles/_tokens.scss +12 -12
  217. package/src/styles/_variables.scss +1 -1
  218. package/dist/button-link.css +0 -167
  219. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  220. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  221. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -37
  222. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  223. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  224. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  225. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  226. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -25
  227. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  228. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -35
  229. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  230. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  231. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  232. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  233. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  234. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
  235. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
package/dist/tabs.js CHANGED
@@ -1,8 +1,11 @@
1
1
  import './tabs.css';
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute, t as toOptionalAttribute } from "./attributes.js";
2
5
  import { t as bem } from "./bem.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
+ import { t as getFocusNavigationTarget } from "./focusNavigation.js";
5
7
  import { t as useRequiredInject } from "./useRequiredInject.js";
8
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
9
  import { t as scroll_area_default } from "./scroll-area.js";
7
10
  import { computed, createComponent, createIf, createSlot, defineVaporComponent, extend, mergeProps, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, shallowRef, template, unref, useId, watch } from "vue";
8
11
  //#region src/components/tabs/useTabs.ts
@@ -14,19 +17,6 @@ var DEFAULT_ORIENTATION = "horizontal";
14
17
  var DEFAULT_PLACEMENT = "left";
15
18
  var DEFAULT_ACTIVATION_MODE = "automatic";
16
19
  var tabsKey = Symbol("tabs");
17
- var ORIENTATION_NAVIGATION_KEYS = {
18
- horizontal: {
19
- ArrowRight: 1,
20
- ArrowLeft: -1
21
- },
22
- vertical: {
23
- ArrowDown: 1,
24
- ArrowUp: -1
25
- }
26
- };
27
- function optionalAttr(value) {
28
- return value || void 0;
29
- }
30
20
  function toTabsState(active) {
31
21
  return active ? "active" : "inactive";
32
22
  }
@@ -35,9 +25,9 @@ function getDefaultAlign(orientation) {
35
25
  }
36
26
  function getAriaProps(label, labelledby, describedby) {
37
27
  return {
38
- "aria-label": optionalAttr(label),
39
- "aria-labelledby": optionalAttr(labelledby),
40
- "aria-describedby": optionalAttr(describedby)
28
+ "aria-label": toOptionalAttribute(label),
29
+ "aria-labelledby": toOptionalAttribute(labelledby),
30
+ "aria-describedby": toOptionalAttribute(describedby)
41
31
  };
42
32
  }
43
33
  function getOrientationClasses(disabled, orientation) {
@@ -100,24 +90,6 @@ function useTabsRegistration(getRegistration, register, unregister, watchSource)
100
90
  if (registeredId.value) unregister(registeredId.value);
101
91
  });
102
92
  }
103
- function getTabsTrigger(event, list) {
104
- const target = event.target;
105
- const trigger = target instanceof Element ? target.closest(TRIGGER_SELECTOR) : void 0;
106
- return trigger?.closest(TABLIST_SELECTOR) === list ? trigger : void 0;
107
- }
108
- function getTabsTriggers(list) {
109
- return Array.from(list.querySelectorAll(TRIGGER_SELECTOR)).filter((trigger) => trigger.closest(TABLIST_SELECTOR) === list && !trigger.disabled);
110
- }
111
- function getNextTrigger(list, currentTrigger, key, orientation) {
112
- const triggers = getTabsTriggers(list);
113
- const currentIndex = triggers.indexOf(currentTrigger);
114
- if (currentIndex === -1 || triggers.length === 0) return void 0;
115
- if (key === "Home") return triggers[0];
116
- if (key === "End") return triggers[triggers.length - 1];
117
- const direction = ORIENTATION_NAVIGATION_KEYS[orientation][key];
118
- if (!direction) return void 0;
119
- return triggers[(currentIndex + direction + triggers.length) % triggers.length];
120
- }
121
93
  function useTabsItem(componentName, props, suffix) {
122
94
  const group = useRequiredInject(tabsKey, componentName);
123
95
  const generatedId = useId();
@@ -133,10 +105,15 @@ function useTabsItem(componentName, props, suffix) {
133
105
  function useTabs(props, emitUpdate) {
134
106
  const triggerRegistry = useTabsRegistry();
135
107
  const contentRegistry = useTabsRegistry();
136
- const { items: triggers, unregister: unregisterTrigger } = triggerRegistry;
108
+ const { items: triggers } = triggerRegistry;
137
109
  const { items: contents, register: registerContent, unregister: unregisterContent } = contentRegistry;
138
- const isControlled = computed(() => props.modelValue !== void 0);
139
- const uncontrolledValue = ref(props.defaultValue ?? null);
110
+ const controllable = useControllableValue({
111
+ modelValue: () => props.modelValue,
112
+ defaultValue: () => props.defaultValue ?? null,
113
+ onChange: (value) => {
114
+ if (value !== null) emitUpdate(value);
115
+ }
116
+ });
140
117
  const isDisabled = computed(() => Boolean(props.disabled));
141
118
  const size = computed(() => props.size ?? DEFAULT_SIZE);
142
119
  const variant = computed(() => props.variant ?? DEFAULT_VARIANT);
@@ -144,7 +121,7 @@ function useTabs(props, emitUpdate) {
144
121
  const placement = computed(() => props.placement ?? DEFAULT_PLACEMENT);
145
122
  const align = computed(() => props.align);
146
123
  const activationMode = computed(() => props.activationMode ?? DEFAULT_ACTIVATION_MODE);
147
- const selectedValue = computed(() => isControlled.value ? props.modelValue ?? null : uncontrolledValue.value);
124
+ const selectedValue = controllable.value;
148
125
  const firstEnabledTrigger = computed(() => triggers.value.find((trigger) => !trigger.disabled));
149
126
  const selectedEnabledTrigger = computed(() => {
150
127
  const trigger = findRegistration(triggers.value, selectedValue.value);
@@ -154,11 +131,11 @@ function useTabs(props, emitUpdate) {
154
131
  const rootProps = computed(() => ({
155
132
  id: props.id,
156
133
  class: rootClass.value,
157
- "data-disabled": optionalAttr(isDisabled.value),
134
+ "data-disabled": toOptionalAttribute(isDisabled.value),
158
135
  "data-size": size.value,
159
136
  "data-variant": variant.value,
160
137
  "data-orientation": orientation.value,
161
- "data-placement": optionalAttr(orientation.value === "vertical" ? placement.value : void 0),
138
+ "data-placement": toOptionalAttribute(orientation.value === "vertical" ? placement.value : void 0),
162
139
  "data-activation-mode": activationMode.value,
163
140
  ...getAriaProps(props.ariaLabel, props.labelledby, props.describedby)
164
141
  }));
@@ -171,16 +148,15 @@ function useTabs(props, emitUpdate) {
171
148
  align: align.value ?? getDefaultAlign(orientation.value),
172
149
  select: selectValue
173
150
  }));
174
- function syncUncontrolledValue() {
175
- if (isControlled.value || isDisabled.value) return;
151
+ function syncUncontrolledValue(reconcileMissing = false) {
152
+ if (controllable.isControlled.value || isDisabled.value) return;
176
153
  const selectedTrigger = findRegistration(triggers.value, selectedValue.value);
177
- if (selectedValue.value != null && !selectedTrigger?.disabled) return;
178
- uncontrolledValue.value = firstEnabledTrigger.value?.value ?? null;
154
+ if (selectedValue.value != null && (selectedTrigger ? !selectedTrigger.disabled : !reconcileMissing)) return;
155
+ controllable.resetValue(firstEnabledTrigger.value?.value ?? null);
179
156
  }
180
157
  function setValue(value) {
181
158
  if (isDisabled.value || value === selectedValue.value) return;
182
- if (!isControlled.value) uncontrolledValue.value = value;
183
- emitUpdate(value);
159
+ controllable.setValue(value);
184
160
  }
185
161
  function selectValue(value) {
186
162
  const trigger = findRegistration(triggers.value, value);
@@ -195,12 +171,19 @@ function useTabs(props, emitUpdate) {
195
171
  triggerRegistry.register(registration);
196
172
  syncUncontrolledValue();
197
173
  }
174
+ function unregisterTrigger(id) {
175
+ const trigger = triggers.value.find((registration) => registration.id === id);
176
+ triggerRegistry.unregister(id);
177
+ syncUncontrolledValue(trigger?.value === selectedValue.value);
178
+ }
198
179
  function onListKeydown(event) {
199
180
  const list = event.currentTarget;
200
181
  if (!list || isDisabled.value) return;
201
- const trigger = getTabsTrigger(event, list);
202
- if (!trigger) return;
203
- const nextTrigger = getNextTrigger(list, trigger, event.key, orientation.value);
182
+ const nextTrigger = getFocusNavigationTarget(event, list, {
183
+ itemSelector: TRIGGER_SELECTOR,
184
+ collectionSelector: TABLIST_SELECTOR,
185
+ orientation: orientation.value
186
+ });
204
187
  if (!nextTrigger) return;
205
188
  event.preventDefault();
206
189
  nextTrigger.focus();
@@ -275,10 +258,10 @@ function useTabsList(props) {
275
258
  id: props.id,
276
259
  class: rootClass.value,
277
260
  role: "tablist",
278
- "data-disabled": optionalAttr(group.disabled),
261
+ "data-disabled": toOptionalAttribute(group.disabled),
279
262
  "data-variant": group.variant,
280
263
  "data-orientation": group.orientation,
281
- "data-placement": optionalAttr(group.orientation === "vertical" ? group.placement : void 0),
264
+ "data-placement": toOptionalAttribute(group.orientation === "vertical" ? group.placement : void 0),
282
265
  "aria-orientation": group.orientation,
283
266
  ...getAriaProps(props.ariaLabel ?? group.ariaLabel, props.ariaLabelledby ?? group.labelledby, props.ariaDescribedby ?? group.describedby),
284
267
  onKeydown: group.onListKeydown
@@ -303,15 +286,15 @@ function useTabsTrigger(props) {
303
286
  class: rootClass.value,
304
287
  role: "tab",
305
288
  type: "button",
306
- disabled: optionalAttr(isDisabled.value),
289
+ disabled: toOptionalAttribute(isDisabled.value),
307
290
  tabIndex: isFocusable.value ? 0 : -1,
308
291
  "data-state": state.value,
309
- "data-disabled": optionalAttr(isDisabled.value),
292
+ "data-disabled": toOptionalAttribute(isDisabled.value),
310
293
  "data-variant": group.variant,
311
- "data-align": optionalAttr(align.value),
294
+ "data-align": toOptionalAttribute(align.value),
312
295
  "aria-selected": isSelected.value,
313
296
  "aria-controls": group.getContentId(props.value),
314
- "aria-disabled": optionalAttr(isDisabled.value),
297
+ "aria-disabled": toOptionalAttribute(isDisabled.value),
315
298
  onClick: select,
316
299
  onFocus,
317
300
  onKeydown
@@ -366,7 +349,7 @@ function useTabsContent(props) {
366
349
  class: rootClass.value,
367
350
  role: "tabpanel",
368
351
  tabIndex: 0,
369
- hidden: optionalAttr(!isSelected.value),
352
+ hidden: toOptionalAttribute(!isSelected.value),
370
353
  "data-state": state.value,
371
354
  ...getAriaProps(props.ariaLabel, props.ariaLabelledby ?? group.getTriggerId(props.value), props.ariaDescribedby)
372
355
  }));
@@ -390,7 +373,7 @@ function useTabsContent(props) {
390
373
  }
391
374
  //#endregion
392
375
  //#region src/components/tabs/tabs.vue?vue&type=script&setup=true&vapor=true&lang.ts
393
- var t0$2 = template("<div data-v-163486d1>", 1);
376
+ var t0$2 = template("<div data-v-6c4b3ab7>", 1);
394
377
  //#endregion
395
378
  //#region src/components/tabs/tabs.vue
396
379
  var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -431,7 +414,7 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
431
414
  const { getRootAttrs } = useStylesApi(props, "root");
432
415
  const rootAttrs = computed(() => getRootAttrs({
433
416
  ...internalRootProps.value,
434
- "data-disabled": presence(props.disabled)
417
+ "data-disabled": toPresenceAttribute(props.disabled)
435
418
  }));
436
419
  const n1 = t0$2();
437
420
  renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
@@ -439,10 +422,10 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
439
422
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
440
423
  return n1;
441
424
  }
442
- }), [["__scopeId", "data-v-163486d1"]]);
425
+ }), [["__scopeId", "data-v-6c4b3ab7"]]);
443
426
  //#endregion
444
427
  //#region src/components/tabs/tabs-content.vue?vue&type=script&setup=true&vapor=true&lang.ts
445
- var t0$1 = template("<section data-v-7206185c>", 1);
428
+ var t0$1 = template("<div data-v-741d0283>", 1);
446
429
  //#endregion
447
430
  //#region src/components/tabs/tabs-content.vue
448
431
  var tabs_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -475,7 +458,7 @@ var tabs_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
475
458
  return n3;
476
459
  });
477
460
  }
478
- }), [["__scopeId", "data-v-7206185c"]]);
461
+ }), [["__scopeId", "data-v-741d0283"]]);
479
462
  //#endregion
480
463
  //#region src/components/tabs/tabs-list.vue
481
464
  var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -501,7 +484,7 @@ var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
501
484
  return getRootAttrs({
502
485
  id: internal.id,
503
486
  class: internal.class,
504
- "data-disabled": presence(internal["data-disabled"]),
487
+ "data-disabled": toPresenceAttribute(internal["data-disabled"]),
505
488
  "data-variant": internal["data-variant"],
506
489
  "data-orientation": internal["data-orientation"],
507
490
  "data-placement": internal["data-placement"]
@@ -537,10 +520,10 @@ var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
537
520
  return createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
538
521
  }, { _: 8 }), true);
539
522
  }
540
- }), [["__scopeId", "data-v-9bb1525b"]]);
523
+ }), [["__scopeId", "data-v-5266c337"]]);
541
524
  //#endregion
542
525
  //#region src/components/tabs/tabs-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
543
- var t0 = template("<button data-v-6df68725>", 1);
526
+ var t0 = template("<button data-v-20d5c2eb>", 1);
544
527
  //#endregion
545
528
  //#region src/components/tabs/tabs-trigger.vue
546
529
  var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -564,7 +547,7 @@ var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
564
547
  const { getRootAttrs } = useStylesApi(props, "root");
565
548
  const rootAttrs = computed(() => getRootAttrs({
566
549
  ...internalRootProps.value,
567
- "data-disabled": presence(internalRootProps.value["data-disabled"])
550
+ "data-disabled": toPresenceAttribute(internalRootProps.value["data-disabled"])
568
551
  }));
569
552
  const n1 = t0();
570
553
  renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
@@ -572,7 +555,7 @@ var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
572
555
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
573
556
  return n1;
574
557
  }
575
- }), [["__scopeId", "data-v-6df68725"]]);
558
+ }), [["__scopeId", "data-v-20d5c2eb"]]);
576
559
  //#endregion
577
560
  //#region src/components/tabs/types.ts
578
561
  var tabsParts = ["root"];
package/dist/text.js ADDED
@@ -0,0 +1,17 @@
1
+ //#region src/utils/text.ts
2
+ var COMBINING_MARKS = /\p{M}/gu;
3
+ var WHITESPACE = /\s+/g;
4
+ function getNameInitials(name) {
5
+ if (!name) return "";
6
+ const parts = name.trim().split(WHITESPACE).filter(Boolean);
7
+ const firstPart = parts[0];
8
+ if (!firstPart) return "";
9
+ if (parts.length === 1) return Array.from(firstPart).slice(0, 2).join("").toLocaleUpperCase();
10
+ const lastPart = parts.at(-1) ?? firstPart;
11
+ return `${Array.from(firstPart)[0] ?? ""}${Array.from(lastPart)[0] ?? ""}`.toLocaleUpperCase();
12
+ }
13
+ function normalizeTypeaheadText(value, locales) {
14
+ return value.toLocaleLowerCase(locales).normalize("NFKD").replace(COMBINING_MARKS, "").replace(WHITESPACE, " ").trim();
15
+ }
16
+ //#endregion
17
+ export { normalizeTypeaheadText as n, getNameInitials as t };
package/dist/textarea.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-textarea[data-v-f2ee1457] {
2
+ .rp-textarea[data-v-da9cf2c9] {
3
3
  --_rp-textarea-padding-y: 7px;
4
4
  --_rp-textarea-padding-x: calc(var(--rp-size-control-md) / 3);
5
5
  --_rp-textarea-font-size: var(--rp-font-size-md);
@@ -17,58 +17,58 @@
17
17
  cursor: text;
18
18
  transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
19
19
  }
20
- .rp-textarea[data-v-f2ee1457]:hover:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
20
+ .rp-textarea[data-v-da9cf2c9]:hover:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
21
21
  border-color: var(--rp-color-control-border-hover);
22
22
  }
23
- .rp-textarea[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
23
+ .rp-textarea[data-v-da9cf2c9]:focus-within:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
24
24
  border-color: var(--rp-color-control-border-focus);
25
25
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
26
26
  }
27
- .rp-textarea[data-v-f2ee1457] {
27
+ .rp-textarea[data-v-da9cf2c9] {
28
28
  font-size: var(--_rp-textarea-font-size);
29
29
  border-radius: var(--_rp-textarea-radius);
30
30
  }
31
- .rp-textarea--size-xs[data-v-f2ee1457] {
31
+ .rp-textarea--size-xs[data-v-da9cf2c9] {
32
32
  --_rp-textarea-padding-y: 4.5px;
33
33
  --_rp-textarea-padding-x: calc(var(--rp-size-control-xs) / 3);
34
34
  --_rp-textarea-font-size: var(--rp-font-size-xs);
35
35
  }
36
- .rp-textarea--size-sm[data-v-f2ee1457] {
36
+ .rp-textarea--size-sm[data-v-da9cf2c9] {
37
37
  --_rp-textarea-padding-y: 5.5px;
38
38
  --_rp-textarea-padding-x: calc(var(--rp-size-control-sm) / 3);
39
39
  --_rp-textarea-font-size: var(--rp-font-size-sm);
40
40
  }
41
- .rp-textarea--size-md[data-v-f2ee1457] {
41
+ .rp-textarea--size-md[data-v-da9cf2c9] {
42
42
  --_rp-textarea-padding-y: 7px;
43
43
  --_rp-textarea-padding-x: calc(var(--rp-size-control-md) / 3);
44
44
  --_rp-textarea-font-size: var(--rp-font-size-md);
45
45
  }
46
- .rp-textarea--size-lg[data-v-f2ee1457] {
46
+ .rp-textarea--size-lg[data-v-da9cf2c9] {
47
47
  --_rp-textarea-padding-y: 9.5px;
48
48
  --_rp-textarea-padding-x: calc(var(--rp-size-control-lg) / 3);
49
49
  --_rp-textarea-font-size: var(--rp-font-size-lg);
50
50
  }
51
- .rp-textarea--size-xl[data-v-f2ee1457] {
51
+ .rp-textarea--size-xl[data-v-da9cf2c9] {
52
52
  --_rp-textarea-padding-y: 13px;
53
53
  --_rp-textarea-padding-x: calc(var(--rp-size-control-xl) / 3);
54
54
  --_rp-textarea-font-size: var(--rp-font-size-xl);
55
55
  }
56
- .rp-textarea--radius-xs[data-v-f2ee1457] {
56
+ .rp-textarea--radius-xs[data-v-da9cf2c9] {
57
57
  --_rp-textarea-radius: var(--rp-radius-xs);
58
58
  }
59
- .rp-textarea--radius-sm[data-v-f2ee1457] {
59
+ .rp-textarea--radius-sm[data-v-da9cf2c9] {
60
60
  --_rp-textarea-radius: var(--rp-radius-sm);
61
61
  }
62
- .rp-textarea--radius-md[data-v-f2ee1457] {
62
+ .rp-textarea--radius-md[data-v-da9cf2c9] {
63
63
  --_rp-textarea-radius: var(--rp-radius-md);
64
64
  }
65
- .rp-textarea--radius-lg[data-v-f2ee1457] {
65
+ .rp-textarea--radius-lg[data-v-da9cf2c9] {
66
66
  --_rp-textarea-radius: var(--rp-radius-lg);
67
67
  }
68
- .rp-textarea--radius-xl[data-v-f2ee1457] {
68
+ .rp-textarea--radius-xl[data-v-da9cf2c9] {
69
69
  --_rp-textarea-radius: var(--rp-radius-xl);
70
70
  }
71
- html.dark .rp-textarea[data-v-f2ee1457], [data-rp-color-scheme=dark] .rp-textarea[data-v-f2ee1457] {
71
+ html.dark .rp-textarea[data-v-da9cf2c9], [data-rp-color-scheme=dark] .rp-textarea[data-v-da9cf2c9] {
72
72
  --_rp-textarea-valid-border: var(--rp-color-green-light-color);
73
73
  --_rp-textarea-valid-ring: color-mix(
74
74
  in srgb,
@@ -82,34 +82,34 @@ html.dark .rp-textarea[data-v-f2ee1457], [data-rp-color-scheme=dark] .rp-textare
82
82
  transparent
83
83
  );
84
84
  }
85
- .rp-textarea--disabled[data-v-f2ee1457] {
85
+ .rp-textarea--disabled[data-v-da9cf2c9] {
86
86
  opacity: var(--rp-opacity-disabled);
87
87
  cursor: not-allowed;
88
88
  }
89
- .rp-textarea--valid[data-v-f2ee1457] {
89
+ .rp-textarea--valid[data-v-da9cf2c9] {
90
90
  border-color: var(--_rp-textarea-valid-border);
91
91
  }
92
- .rp-textarea--valid[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled) {
92
+ .rp-textarea--valid[data-v-da9cf2c9]:focus-within:not(.rp-textarea--disabled) {
93
93
  border-color: var(--_rp-textarea-valid-border);
94
94
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-textarea-valid-ring);
95
95
  }
96
- .rp-textarea--invalid[data-v-f2ee1457] {
96
+ .rp-textarea--invalid[data-v-da9cf2c9] {
97
97
  border-color: var(--_rp-textarea-invalid-border);
98
98
  }
99
- .rp-textarea--invalid[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled) {
99
+ .rp-textarea--invalid[data-v-da9cf2c9]:focus-within:not(.rp-textarea--disabled) {
100
100
  border-color: var(--_rp-textarea-invalid-border);
101
101
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-textarea-invalid-ring);
102
102
  }
103
- .rp-textarea--readonly[data-v-f2ee1457] {
103
+ .rp-textarea--readonly[data-v-da9cf2c9] {
104
104
  background-color: var(--rp-color-control-readonly-bg);
105
105
  }
106
- .rp-textarea--resize-vertical .rp-textarea__native[data-v-f2ee1457] {
106
+ .rp-textarea--resize-vertical .rp-textarea__native[data-v-da9cf2c9] {
107
107
  resize: vertical;
108
108
  }
109
- .rp-textarea--resize-both .rp-textarea__native[data-v-f2ee1457] {
109
+ .rp-textarea--resize-both .rp-textarea__native[data-v-da9cf2c9] {
110
110
  resize: both;
111
111
  }
112
- .rp-textarea__native[data-v-f2ee1457] {
112
+ .rp-textarea__native[data-v-da9cf2c9] {
113
113
  box-sizing: border-box;
114
114
  flex: 1;
115
115
  width: 100%;
@@ -124,10 +124,10 @@ html.dark .rp-textarea[data-v-f2ee1457], [data-rp-color-scheme=dark] .rp-textare
124
124
  color: var(--rp-color-control-fg);
125
125
  line-height: var(--rp-line-height-md);
126
126
  }
127
- .rp-textarea__native[data-v-f2ee1457]::placeholder {
127
+ .rp-textarea__native[data-v-da9cf2c9]::placeholder {
128
128
  color: var(--rp-color-control-placeholder);
129
129
  }
130
- .rp-textarea__native[data-v-f2ee1457]:disabled {
130
+ .rp-textarea__native[data-v-da9cf2c9]:disabled {
131
131
  cursor: not-allowed;
132
132
  }
133
133
  }
package/dist/textarea.js CHANGED
@@ -1,25 +1,18 @@
1
1
  import './textarea.css';
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute } from "./attributes.js";
2
5
  import { t as bem } from "./bem.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
4
6
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { t as useControllableValue } from "./useControllableValue.js";
7
+ import { t as clamp } from "./number.js";
6
8
  import { a as useTextFormControl } from "./useFormControl.js";
9
+ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./attributes2.js";
7
10
  import { t as useControlState } from "./useControlState.js";
11
+ import { t as isInteractiveElement } from "./interactive.js";
8
12
  import { child, computed, defineVaporComponent, nextTick, onMounted, ref, renderEffect, setDynamicProps, setStaticTemplateRef, template, unref, watch } from "vue";
9
13
  //#region src/components/textarea/useTextarea.ts
10
14
  var MIN_ROWS = 1;
11
- var INTERACTIVE_SELECTOR = [
12
- "button",
13
- "a[href]",
14
- "input",
15
- "select",
16
- `textarea:not(.rp-textarea__native)`,
17
- "[contenteditable=\"true\"]",
18
- "[tabindex]:not([tabindex=\"-1\"])"
19
- ].join(",");
20
- function isInteractiveElement(target) {
21
- return Boolean(target.closest(INTERACTIVE_SELECTOR));
22
- }
15
+ var NATIVE_TEXTAREA_SELECTOR = ".rp-textarea__native";
23
16
  function normalizeRows(value, fallback) {
24
17
  if (value === void 0 || !Number.isFinite(value)) return fallback;
25
18
  return Math.max(MIN_ROWS, Math.floor(value));
@@ -98,8 +91,7 @@ function useTextarea(props, emitUpdate, getValue = () => props.modelValue ?? "")
98
91
  }
99
92
  textarea.style.height = "auto";
100
93
  const { contentHeight, minHeight, maxHeight } = getAutosizeMeasurement(textarea, autosizeRows.value);
101
- const heightLimit = maxHeight ?? Number.POSITIVE_INFINITY;
102
- const nextHeight = Math.min(Math.max(contentHeight, minHeight), heightLimit);
94
+ const nextHeight = clamp(contentHeight, minHeight, maxHeight ?? Number.POSITIVE_INFINITY);
103
95
  textarea.style.height = `${nextHeight}px`;
104
96
  textarea.style.overflowY = maxHeight !== void 0 && contentHeight > maxHeight ? "auto" : "hidden";
105
97
  }
@@ -117,8 +109,7 @@ function useTextarea(props, emitUpdate, getValue = () => props.modelValue ?? "")
117
109
  }
118
110
  function focusTextarea(e) {
119
111
  if (control.disabled) return;
120
- const target = e.target;
121
- if (target instanceof Element && isInteractiveElement(target)) return;
112
+ if (isInteractiveElement(e.target, NATIVE_TEXTAREA_SELECTOR)) return;
122
113
  textareaRef.value?.focus();
123
114
  }
124
115
  function focus(options) {
@@ -138,7 +129,7 @@ function useTextarea(props, emitUpdate, getValue = () => props.modelValue ?? "")
138
129
  }
139
130
  //#endregion
140
131
  //#region src/components/textarea/textarea.vue?vue&type=script&setup=true&vapor=true&lang.ts
141
- var t0 = template("<div data-v-f2ee1457><textarea data-v-f2ee1457>", 1);
132
+ var t0 = template("<div data-v-da9cf2c9><textarea data-v-da9cf2c9>", 1);
142
133
  //#endregion
143
134
  //#region src/components/textarea/textarea.vue
144
135
  var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -205,23 +196,21 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
205
196
  const rootAttrs = computed(() => getRootAttrs({
206
197
  class: rootClass.value,
207
198
  onMousedown: focusTextarea,
208
- "data-disabled": presence(control.disabled),
209
- "data-readonly": presence(props.readonly),
210
- "data-invalid": presence(control.invalid)
199
+ "data-disabled": toPresenceAttribute(control.disabled),
200
+ "data-readonly": toPresenceAttribute(props.readonly),
201
+ "data-invalid": toPresenceAttribute(control.invalid)
211
202
  }));
212
203
  const nativeInputAttrs = computed(() => {
213
- const { class: compatibilityClass, style: compatibilityStyle, onInput: compatibilityOnInput, ...attrs } = props.inputAttrs ?? {};
204
+ const inputAttrs = props.inputAttrs ?? {};
205
+ const { compatibilityClass, compatibilityStyle, forwardedAttributes } = splitCompatibilityAttributes(inputAttrs);
214
206
  return {
215
- ...attrs,
207
+ ...forwardedAttributes,
216
208
  ...getPartAttrs("input", {
217
209
  class: "rp-textarea__native",
218
210
  compatibilityClass,
219
211
  compatibilityStyle
220
212
  }),
221
- onInput(event) {
222
- onInput(event);
223
- compatibilityOnInput?.(event);
224
- }
213
+ onInput: composeEventHandlers(onInput, inputAttrs.onInput)
225
214
  };
226
215
  });
227
216
  __expose({
@@ -235,7 +224,7 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
235
224
  const _nativeInputAttrs = nativeInputAttrs.value;
236
225
  const _control = unref(control);
237
226
  const _readonly = __props.readonly;
238
- const _presence = unref(presence);
227
+ const _toPresenceAttribute = unref(toPresenceAttribute);
239
228
  const _control_required = _control.required;
240
229
  setDynamicProps(n1, [rootAttrs.value]);
241
230
  setDynamicProps(n0, [_nativeInputAttrs, {
@@ -253,14 +242,14 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
253
242
  "aria-describedby": _control.ariaDescribedby,
254
243
  "aria-invalid": _control.invalid || void 0,
255
244
  "aria-required": _control_required || void 0,
256
- "data-disabled": _presence(_control.disabled),
257
- "data-readonly": _presence(_readonly),
258
- "data-invalid": _presence(_control.invalid)
245
+ "data-disabled": _toPresenceAttribute(_control.disabled),
246
+ "data-readonly": _toPresenceAttribute(_readonly),
247
+ "data-invalid": _toPresenceAttribute(_control.invalid)
259
248
  }]);
260
249
  });
261
250
  return n1;
262
251
  }
263
- }), [["__scopeId", "data-v-f2ee1457"]]);
252
+ }), [["__scopeId", "data-v-da9cf2c9"]]);
264
253
  //#endregion
265
254
  //#region src/components/textarea/types.ts
266
255
  var textareaParts = ["root", "input"];