ropav 0.1.6 → 0.1.8

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 (310) hide show
  1. package/README.md +7 -1
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +123 -155
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +10 -11
  6. package/dist/ancestry.js +136 -0
  7. package/dist/aria.js +14 -0
  8. package/dist/aspect-ratio.js +1 -1
  9. package/dist/attributes.js +9 -0
  10. package/dist/attributes2.js +29 -0
  11. package/dist/avatar.css +19 -19
  12. package/dist/avatar.js +9 -17
  13. package/dist/badge.css +16 -16
  14. package/dist/badge.js +5 -5
  15. package/dist/button-group.js +1 -1
  16. package/dist/button-link.js +4 -3
  17. package/dist/button.js +4 -3
  18. package/dist/button.scss_vue_type_style_index_0_src_true_lang.js +1 -1
  19. package/dist/calendar.css +173 -0
  20. package/dist/calendar.js +714 -0
  21. package/dist/calendar2.js +37 -0
  22. package/dist/card.js +1 -1
  23. package/dist/checkbox.css +32 -32
  24. package/dist/checkbox.js +22 -28
  25. package/dist/chevron-left.js +12 -0
  26. package/dist/collapse.css +6 -6
  27. package/dist/collapse.js +7 -6
  28. package/dist/collectionNavigation.js +2 -99
  29. package/dist/color-input.css +19 -19
  30. package/dist/color-input.js +14 -13
  31. package/dist/color-picker.css +40 -40
  32. package/dist/color-picker.js +247 -276
  33. package/dist/color-picker2.js +1 -9
  34. package/dist/color-swatch.css +4 -4
  35. package/dist/color-swatch.js +6 -8
  36. package/dist/color.js +5 -10
  37. package/dist/combobox.css +251 -0
  38. package/dist/combobox.js +410 -0
  39. package/dist/componentColors.js +125 -84
  40. package/dist/componentRef.js +26 -0
  41. package/dist/components/accordion/accordionContext.d.ts +3 -0
  42. package/dist/components/accordion/accordionModel.d.ts +14 -0
  43. package/dist/components/accordion/index.d.ts +2 -1
  44. package/dist/components/accordion/index.js +1 -1
  45. package/dist/components/accordion/types.d.ts +1 -2
  46. package/dist/components/accordion/useAccordion.d.ts +2 -2
  47. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  48. package/dist/components/calendar/calendar.d.ts +30 -0
  49. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  50. package/dist/components/calendar/index.d.ts +3 -0
  51. package/dist/components/calendar/index.js +3 -0
  52. package/dist/components/calendar/types.d.ts +53 -0
  53. package/dist/components/calendar/useCalendar.d.ts +24 -0
  54. package/dist/components/checkbox/useCheckbox.d.ts +1 -2
  55. package/dist/components/color-picker/index.js +2 -2
  56. package/dist/components/color-picker/types.d.ts +2 -2
  57. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  58. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  59. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  60. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  61. package/dist/components/combobox/combobox.d.ts +29 -0
  62. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  63. package/dist/components/combobox/index.d.ts +3 -0
  64. package/dist/components/combobox/index.js +2 -0
  65. package/dist/components/combobox/types.d.ts +43 -0
  66. package/dist/components/combobox/useCombobox.d.ts +45 -0
  67. package/dist/components/date-picker/date-picker.d.ts +33 -0
  68. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  69. package/dist/components/date-picker/index.d.ts +4 -0
  70. package/dist/components/date-picker/index.js +2 -0
  71. package/dist/components/date-picker/types.d.ts +57 -0
  72. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  73. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  74. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +1 -5
  75. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  76. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  77. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  78. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  79. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  80. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  81. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  82. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  83. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  84. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  85. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  86. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -30
  87. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  88. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  89. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  90. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  91. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +114 -0
  92. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  93. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  94. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +35 -0
  95. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +24 -0
  96. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  97. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  98. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  99. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  100. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +28 -0
  101. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  102. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  103. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  104. package/dist/components/dropzone/dropzone.d.ts +31 -0
  105. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  106. package/dist/components/dropzone/index.d.ts +3 -0
  107. package/dist/components/dropzone/index.js +2 -0
  108. package/dist/components/dropzone/types.d.ts +56 -0
  109. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  110. package/dist/components/file-input/file-input.d.ts +29 -0
  111. package/dist/components/file-input/index.d.ts +3 -0
  112. package/dist/components/file-input/index.js +2 -0
  113. package/dist/components/file-input/types.d.ts +37 -0
  114. package/dist/components/file-input/useFileInput.d.ts +15 -0
  115. package/dist/components/floating/index.js +2 -2
  116. package/dist/components/floating/useFloatingPosition.d.ts +1 -14
  117. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  118. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  119. package/dist/components/hover-card/hover-card.d.ts +25 -0
  120. package/dist/components/hover-card/index.d.ts +3 -0
  121. package/dist/components/hover-card/index.js +2 -0
  122. package/dist/components/hover-card/types.d.ts +45 -0
  123. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  124. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  125. package/dist/components/multi-select/index.d.ts +3 -0
  126. package/dist/components/multi-select/index.js +2 -0
  127. package/dist/components/multi-select/multi-select.d.ts +30 -0
  128. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  129. package/dist/components/multi-select/types.d.ts +49 -0
  130. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  131. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  132. package/dist/components/number-input/useNumberInput.d.ts +3 -19
  133. package/dist/components/pagination/index.d.ts +1 -1
  134. package/dist/components/pagination/index.js +1 -1
  135. package/dist/components/pagination/paginationModel.d.ts +4 -0
  136. package/dist/components/pagination/types.d.ts +15 -0
  137. package/dist/components/pagination/usePagination.d.ts +3 -19
  138. package/dist/components/popover/usePopoverBindings.d.ts +13 -0
  139. package/dist/components/progress/progressModel.d.ts +8 -0
  140. package/dist/components/progress/useProgress.d.ts +0 -6
  141. package/dist/components/radio/useRadio.d.ts +1 -2
  142. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  143. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  144. package/dist/components/scroll-area/useScrollArea.d.ts +70 -53
  145. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -17
  146. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  147. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  148. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +11 -9
  149. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  150. package/dist/components/segmented-control/index.d.ts +3 -0
  151. package/dist/components/segmented-control/index.js +2 -0
  152. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  153. package/dist/components/segmented-control/types.d.ts +47 -0
  154. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  155. package/dist/components/select/useSelect.d.ts +31 -19
  156. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  157. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +0 -1
  158. package/dist/components/slider/useRangeSlider.d.ts +9 -17
  159. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  160. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  161. package/dist/components/slider/useSlider.d.ts +7 -13
  162. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  163. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  164. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  165. package/dist/components/tags-input/index.d.ts +3 -0
  166. package/dist/components/tags-input/index.js +2 -0
  167. package/dist/components/tags-input/tags-input.d.ts +27 -0
  168. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  169. package/dist/components/tags-input/types.d.ts +37 -0
  170. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  171. package/dist/components/teleport-provider/index.js +1 -1
  172. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  173. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  174. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  175. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  176. package/dist/css.js +12 -0
  177. package/dist/date-picker.css +49 -0
  178. package/dist/date-picker.js +809 -0
  179. package/dist/dialog.js +215 -218
  180. package/dist/direction.js +6 -0
  181. package/dist/dropdown-menu.css +21 -3
  182. package/dist/dropdown-menu.js +1626 -1185
  183. package/dist/dropzone.css +135 -0
  184. package/dist/dropzone.js +431 -0
  185. package/dist/events.js +59 -0
  186. package/dist/field.css +8 -8
  187. package/dist/field.js +13 -25
  188. package/dist/file-input.css +135 -0
  189. package/dist/file-input.js +198 -0
  190. package/dist/floatingOffset.js +11 -0
  191. package/dist/focus-trap.js +7 -5
  192. package/dist/focusNavigation.js +37 -0
  193. package/dist/hover-card.css +80 -0
  194. package/dist/hover-card.js +402 -0
  195. package/dist/icon-button.css +8 -8
  196. package/dist/icon-button.js +7 -6
  197. package/dist/index.d.ts +9 -0
  198. package/dist/index.js +20 -9
  199. package/dist/input.css +24 -24
  200. package/dist/input.js +19 -31
  201. package/dist/interactive.js +18 -0
  202. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  203. package/dist/modal.js +2 -2
  204. package/dist/multi-select.css +316 -0
  205. package/dist/multi-select.js +481 -0
  206. package/dist/nativeChoice.js +169 -0
  207. package/dist/number-input.css +18 -18
  208. package/dist/number-input.js +44 -44
  209. package/dist/number.js +22 -0
  210. package/dist/overlay.js +3 -2
  211. package/dist/pagination.css +28 -28
  212. package/dist/pagination.js +66 -73
  213. package/dist/pointerSession.js +130 -0
  214. package/dist/popover.css +55 -37
  215. package/dist/popover.js +75 -101
  216. package/dist/progress.js +10 -13
  217. package/dist/query.js +40 -0
  218. package/dist/radio.css +18 -18
  219. package/dist/radio.js +30 -36
  220. package/dist/rafScheduler.js +34 -0
  221. package/dist/scroll-area.css +28 -28
  222. package/dist/scroll-area.js +540 -554
  223. package/dist/segmented-control.css +176 -0
  224. package/dist/segmented-control.js +382 -0
  225. package/dist/select.css +50 -48
  226. package/dist/select.js +131 -289
  227. package/dist/slider.css +191 -191
  228. package/dist/slider.js +720 -706
  229. package/dist/styles-api.d.ts +0 -1
  230. package/dist/styles-api.js +1 -4
  231. package/dist/switch.css +17 -17
  232. package/dist/switch.js +14 -15
  233. package/dist/tabs.css +43 -43
  234. package/dist/tabs.js +29 -56
  235. package/dist/tags-input.css +197 -0
  236. package/dist/tags-input.js +380 -0
  237. package/dist/text.js +17 -0
  238. package/dist/textarea.css +26 -26
  239. package/dist/textarea.js +21 -32
  240. package/dist/toast.css +26 -26
  241. package/dist/toast.js +141 -118
  242. package/dist/tooltip.css +12 -12
  243. package/dist/tooltip.js +64 -63
  244. package/dist/useCollapse.js +8 -11
  245. package/dist/useControlState.js +3 -6
  246. package/dist/useEditableOptionList.js +216 -0
  247. package/dist/useFlatOptionCollection.js +134 -0
  248. package/dist/useFloatingPosition.js +14 -40
  249. package/dist/useFloatingTargetLifecycle.js +127 -0
  250. package/dist/useFormControl.js +1 -0
  251. package/dist/useHoverDisclosure.js +561 -0
  252. package/dist/useNativeChoiceTransaction.js +46 -0
  253. package/dist/useNativeFileSelection.js +86 -0
  254. package/dist/useOverlayZIndex.js +246 -19
  255. package/dist/useTeleportTarget.js +3 -14
  256. package/dist/useTypeahead.js +94 -0
  257. package/dist/utils/aria.d.ts +3 -0
  258. package/dist/utils/attributes.d.ts +2 -0
  259. package/dist/utils/bem.d.ts +3 -0
  260. package/dist/utils/collectionNavigation.d.ts +2 -0
  261. package/dist/utils/color.d.ts +7 -0
  262. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  263. package/dist/utils/componentColors.d.ts +7 -0
  264. package/dist/utils/css.d.ts +3 -0
  265. package/dist/utils/date.d.ts +13 -0
  266. package/dist/utils/dateAvailability.d.ts +7 -0
  267. package/dist/utils/dom/ancestry.d.ts +8 -0
  268. package/dist/utils/dom/attributes.d.ts +16 -0
  269. package/dist/utils/dom/componentRef.d.ts +4 -0
  270. package/dist/utils/dom/direction.d.ts +2 -0
  271. package/dist/utils/dom/events.d.ts +5 -0
  272. package/dist/utils/dom/files.d.ts +3 -0
  273. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  274. package/dist/utils/dom/interactive.d.ts +2 -0
  275. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  276. package/dist/utils/dom/pointerSession.d.ts +20 -0
  277. package/dist/utils/dom/query.d.ts +4 -0
  278. package/dist/utils/dom/scroll.d.ts +24 -0
  279. package/dist/utils/floatingOffset.d.ts +10 -0
  280. package/dist/utils/geometry.d.ts +14 -0
  281. package/dist/utils/indexPath.d.ts +6 -0
  282. package/dist/utils/number.d.ts +4 -0
  283. package/dist/utils/optionFilter.d.ts +5 -0
  284. package/dist/utils/rafScheduler.d.ts +4 -0
  285. package/dist/utils/text.d.ts +2 -0
  286. package/docs/code-architecture.md +118 -0
  287. package/docs/public-floating-api.md +13 -9
  288. package/docs/public-styles-api.md +25 -12
  289. package/package.json +51 -14
  290. package/src/styles/_mixins.scss +26 -0
  291. package/src/styles/styles-manifest.json +1 -2
  292. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  293. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  294. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -36
  295. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  296. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  297. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  298. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  299. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -30
  300. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  301. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -38
  302. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  303. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  304. package/dist/floating.js +0 -415
  305. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  306. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  307. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  308. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  309. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  310. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
package/dist/tabs.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import './tabs.css';
2
2
  import { t as useControllableValue } from "./useControllableValue.js";
3
- import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { t as useRequiredInject } from "./useRequiredInject.js";
3
+ import { t as useStylesApi } from "./styles-api.js";
4
+ import { n as toPresenceAttribute, t as toOptionalAttribute } from "./attributes.js";
5
5
  import { t as bem } from "./bem.js";
6
+ import { t as getFocusNavigationTarget } from "./focusNavigation.js";
7
+ import { t as useRequiredInject } from "./useRequiredInject.js";
6
8
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
7
9
  import { t as scroll_area_default } from "./scroll-area.js";
8
10
  import { computed, createComponent, createIf, createSlot, defineVaporComponent, extend, mergeProps, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, shallowRef, template, unref, useId, watch } from "vue";
@@ -15,19 +17,6 @@ var DEFAULT_ORIENTATION = "horizontal";
15
17
  var DEFAULT_PLACEMENT = "left";
16
18
  var DEFAULT_ACTIVATION_MODE = "automatic";
17
19
  var tabsKey = Symbol("tabs");
18
- var ORIENTATION_NAVIGATION_KEYS = {
19
- horizontal: {
20
- ArrowRight: 1,
21
- ArrowLeft: -1
22
- },
23
- vertical: {
24
- ArrowDown: 1,
25
- ArrowUp: -1
26
- }
27
- };
28
- function optionalAttr(value) {
29
- return value || void 0;
30
- }
31
20
  function toTabsState(active) {
32
21
  return active ? "active" : "inactive";
33
22
  }
@@ -36,9 +25,9 @@ function getDefaultAlign(orientation) {
36
25
  }
37
26
  function getAriaProps(label, labelledby, describedby) {
38
27
  return {
39
- "aria-label": optionalAttr(label),
40
- "aria-labelledby": optionalAttr(labelledby),
41
- "aria-describedby": optionalAttr(describedby)
28
+ "aria-label": toOptionalAttribute(label),
29
+ "aria-labelledby": toOptionalAttribute(labelledby),
30
+ "aria-describedby": toOptionalAttribute(describedby)
42
31
  };
43
32
  }
44
33
  function getOrientationClasses(disabled, orientation) {
@@ -101,24 +90,6 @@ function useTabsRegistration(getRegistration, register, unregister, watchSource)
101
90
  if (registeredId.value) unregister(registeredId.value);
102
91
  });
103
92
  }
104
- function getTabsTrigger(event, list) {
105
- const target = event.target;
106
- const trigger = target instanceof Element ? target.closest(TRIGGER_SELECTOR) : void 0;
107
- return trigger?.closest(TABLIST_SELECTOR) === list ? trigger : void 0;
108
- }
109
- function getTabsTriggers(list) {
110
- return Array.from(list.querySelectorAll(TRIGGER_SELECTOR)).filter((trigger) => trigger.closest(TABLIST_SELECTOR) === list && !trigger.disabled);
111
- }
112
- function getNextTrigger(list, currentTrigger, key, orientation) {
113
- const triggers = getTabsTriggers(list);
114
- const currentIndex = triggers.indexOf(currentTrigger);
115
- if (currentIndex === -1 || triggers.length === 0) return void 0;
116
- if (key === "Home") return triggers[0];
117
- if (key === "End") return triggers[triggers.length - 1];
118
- const direction = ORIENTATION_NAVIGATION_KEYS[orientation][key];
119
- if (!direction) return void 0;
120
- return triggers[(currentIndex + (orientation === "horizontal" && list.ownerDocument.defaultView?.getComputedStyle(list).direction === "rtl" ? -direction : direction) + triggers.length) % triggers.length];
121
- }
122
93
  function useTabsItem(componentName, props, suffix) {
123
94
  const group = useRequiredInject(tabsKey, componentName);
124
95
  const generatedId = useId();
@@ -160,11 +131,11 @@ function useTabs(props, emitUpdate) {
160
131
  const rootProps = computed(() => ({
161
132
  id: props.id,
162
133
  class: rootClass.value,
163
- "data-disabled": optionalAttr(isDisabled.value),
134
+ "data-disabled": toOptionalAttribute(isDisabled.value),
164
135
  "data-size": size.value,
165
136
  "data-variant": variant.value,
166
137
  "data-orientation": orientation.value,
167
- "data-placement": optionalAttr(orientation.value === "vertical" ? placement.value : void 0),
138
+ "data-placement": toOptionalAttribute(orientation.value === "vertical" ? placement.value : void 0),
168
139
  "data-activation-mode": activationMode.value,
169
140
  ...getAriaProps(props.ariaLabel, props.labelledby, props.describedby)
170
141
  }));
@@ -208,9 +179,11 @@ function useTabs(props, emitUpdate) {
208
179
  function onListKeydown(event) {
209
180
  const list = event.currentTarget;
210
181
  if (!list || isDisabled.value) return;
211
- const trigger = getTabsTrigger(event, list);
212
- if (!trigger) return;
213
- 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
+ });
214
187
  if (!nextTrigger) return;
215
188
  event.preventDefault();
216
189
  nextTrigger.focus();
@@ -285,10 +258,10 @@ function useTabsList(props) {
285
258
  id: props.id,
286
259
  class: rootClass.value,
287
260
  role: "tablist",
288
- "data-disabled": optionalAttr(group.disabled),
261
+ "data-disabled": toOptionalAttribute(group.disabled),
289
262
  "data-variant": group.variant,
290
263
  "data-orientation": group.orientation,
291
- "data-placement": optionalAttr(group.orientation === "vertical" ? group.placement : void 0),
264
+ "data-placement": toOptionalAttribute(group.orientation === "vertical" ? group.placement : void 0),
292
265
  "aria-orientation": group.orientation,
293
266
  ...getAriaProps(props.ariaLabel ?? group.ariaLabel, props.ariaLabelledby ?? group.labelledby, props.ariaDescribedby ?? group.describedby),
294
267
  onKeydown: group.onListKeydown
@@ -313,15 +286,15 @@ function useTabsTrigger(props) {
313
286
  class: rootClass.value,
314
287
  role: "tab",
315
288
  type: "button",
316
- disabled: optionalAttr(isDisabled.value),
289
+ disabled: toOptionalAttribute(isDisabled.value),
317
290
  tabIndex: isFocusable.value ? 0 : -1,
318
291
  "data-state": state.value,
319
- "data-disabled": optionalAttr(isDisabled.value),
292
+ "data-disabled": toOptionalAttribute(isDisabled.value),
320
293
  "data-variant": group.variant,
321
- "data-align": optionalAttr(align.value),
294
+ "data-align": toOptionalAttribute(align.value),
322
295
  "aria-selected": isSelected.value,
323
296
  "aria-controls": group.getContentId(props.value),
324
- "aria-disabled": optionalAttr(isDisabled.value),
297
+ "aria-disabled": toOptionalAttribute(isDisabled.value),
325
298
  onClick: select,
326
299
  onFocus,
327
300
  onKeydown
@@ -376,7 +349,7 @@ function useTabsContent(props) {
376
349
  class: rootClass.value,
377
350
  role: "tabpanel",
378
351
  tabIndex: 0,
379
- hidden: optionalAttr(!isSelected.value),
352
+ hidden: toOptionalAttribute(!isSelected.value),
380
353
  "data-state": state.value,
381
354
  ...getAriaProps(props.ariaLabel, props.ariaLabelledby ?? group.getTriggerId(props.value), props.ariaDescribedby)
382
355
  }));
@@ -400,7 +373,7 @@ function useTabsContent(props) {
400
373
  }
401
374
  //#endregion
402
375
  //#region src/components/tabs/tabs.vue?vue&type=script&setup=true&vapor=true&lang.ts
403
- var t0$2 = template("<div data-v-163486d1>", 1);
376
+ var t0$2 = template("<div data-v-6c4b3ab7>", 1);
404
377
  //#endregion
405
378
  //#region src/components/tabs/tabs.vue
406
379
  var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -441,7 +414,7 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
441
414
  const { getRootAttrs } = useStylesApi(props, "root");
442
415
  const rootAttrs = computed(() => getRootAttrs({
443
416
  ...internalRootProps.value,
444
- "data-disabled": presence(props.disabled)
417
+ "data-disabled": toPresenceAttribute(props.disabled)
445
418
  }));
446
419
  const n1 = t0$2();
447
420
  renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
@@ -449,7 +422,7 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
449
422
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
450
423
  return n1;
451
424
  }
452
- }), [["__scopeId", "data-v-163486d1"]]);
425
+ }), [["__scopeId", "data-v-6c4b3ab7"]]);
453
426
  //#endregion
454
427
  //#region src/components/tabs/tabs-content.vue?vue&type=script&setup=true&vapor=true&lang.ts
455
428
  var t0$1 = template("<div data-v-741d0283>", 1);
@@ -511,7 +484,7 @@ var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
511
484
  return getRootAttrs({
512
485
  id: internal.id,
513
486
  class: internal.class,
514
- "data-disabled": presence(internal["data-disabled"]),
487
+ "data-disabled": toPresenceAttribute(internal["data-disabled"]),
515
488
  "data-variant": internal["data-variant"],
516
489
  "data-orientation": internal["data-orientation"],
517
490
  "data-placement": internal["data-placement"]
@@ -547,10 +520,10 @@ var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
547
520
  return createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
548
521
  }, { _: 8 }), true);
549
522
  }
550
- }), [["__scopeId", "data-v-9bb1525b"]]);
523
+ }), [["__scopeId", "data-v-5266c337"]]);
551
524
  //#endregion
552
525
  //#region src/components/tabs/tabs-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
553
- var t0 = template("<button data-v-6df68725>", 1);
526
+ var t0 = template("<button data-v-20d5c2eb>", 1);
554
527
  //#endregion
555
528
  //#region src/components/tabs/tabs-trigger.vue
556
529
  var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -574,7 +547,7 @@ var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
574
547
  const { getRootAttrs } = useStylesApi(props, "root");
575
548
  const rootAttrs = computed(() => getRootAttrs({
576
549
  ...internalRootProps.value,
577
- "data-disabled": presence(internalRootProps.value["data-disabled"])
550
+ "data-disabled": toPresenceAttribute(internalRootProps.value["data-disabled"])
578
551
  }));
579
552
  const n1 = t0();
580
553
  renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
@@ -582,7 +555,7 @@ var tabs_trigger_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
582
555
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
583
556
  return n1;
584
557
  }
585
- }), [["__scopeId", "data-v-6df68725"]]);
558
+ }), [["__scopeId", "data-v-20d5c2eb"]]);
586
559
  //#endregion
587
560
  //#region src/components/tabs/types.ts
588
561
  var tabsParts = ["root"];
@@ -0,0 +1,197 @@
1
+ @layer ropav.components {
2
+ .rp-tags-input[data-v-9fbac28f] {
3
+ --_rp-tags-input-height: var(--rp-size-control-md);
4
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-md) / 3);
5
+ --_rp-tags-input-font-size: var(--rp-font-size-md);
6
+ --_rp-tags-input-radius: var(--rp-radius-sm);
7
+ --_rp-tags-input-invalid-border: var(--rp-color-red-outline);
8
+ --_rp-tags-input-invalid-ring: color-mix(in srgb, var(--rp-color-red-outline) 32%, transparent);
9
+ position: relative;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ box-sizing: border-box;
13
+ min-width: 180px;
14
+ min-height: var(--_rp-tags-input-height);
15
+ padding: var(--rp-spacing-1) var(--_rp-tags-input-padding-x);
16
+ gap: var(--rp-spacing-2);
17
+ font-family: var(--rp-font-family);
18
+ font-size: var(--_rp-tags-input-font-size);
19
+ font-weight: var(--rp-font-weight-normal);
20
+ line-height: 1;
21
+ background-color: var(--rp-color-control-bg);
22
+ border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
23
+ border-radius: var(--_rp-tags-input-radius);
24
+ cursor: text;
25
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
26
+ }
27
+ .rp-tags-input[data-v-9fbac28f]:hover:not(.rp-tags-input--disabled):not(.rp-tags-input--invalid) {
28
+ border-color: var(--rp-color-control-border-hover);
29
+ }
30
+ .rp-tags-input[data-v-9fbac28f]:focus-within:not(.rp-tags-input--disabled):not(.rp-tags-input--invalid) {
31
+ border-color: var(--rp-color-control-border-focus);
32
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
33
+ }
34
+ .rp-tags-input__native[data-v-9fbac28f] {
35
+ position: absolute;
36
+ width: 1px;
37
+ height: 1px;
38
+ padding: 0;
39
+ margin: -1px;
40
+ overflow: hidden;
41
+ clip: rect(0, 0, 0, 0);
42
+ white-space: nowrap;
43
+ border-width: 0;
44
+ }
45
+ .rp-tags-input--size-xs[data-v-9fbac28f] {
46
+ --_rp-tags-input-height: var(--rp-size-control-xs);
47
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-xs) / 3);
48
+ --_rp-tags-input-font-size: var(--rp-font-size-xs);
49
+ }
50
+ .rp-tags-input--size-sm[data-v-9fbac28f] {
51
+ --_rp-tags-input-height: var(--rp-size-control-sm);
52
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-sm) / 3);
53
+ --_rp-tags-input-font-size: var(--rp-font-size-sm);
54
+ }
55
+ .rp-tags-input--size-md[data-v-9fbac28f] {
56
+ --_rp-tags-input-height: var(--rp-size-control-md);
57
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-md) / 3);
58
+ --_rp-tags-input-font-size: var(--rp-font-size-md);
59
+ }
60
+ .rp-tags-input--size-lg[data-v-9fbac28f] {
61
+ --_rp-tags-input-height: var(--rp-size-control-lg);
62
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-lg) / 3);
63
+ --_rp-tags-input-font-size: var(--rp-font-size-lg);
64
+ }
65
+ .rp-tags-input--size-xl[data-v-9fbac28f] {
66
+ --_rp-tags-input-height: var(--rp-size-control-xl);
67
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-xl) / 3);
68
+ --_rp-tags-input-font-size: var(--rp-font-size-xl);
69
+ }
70
+ .rp-tags-input--radius-xs[data-v-9fbac28f] {
71
+ --_rp-tags-input-radius: var(--rp-radius-xs);
72
+ }
73
+ .rp-tags-input--radius-sm[data-v-9fbac28f] {
74
+ --_rp-tags-input-radius: var(--rp-radius-sm);
75
+ }
76
+ .rp-tags-input--radius-md[data-v-9fbac28f] {
77
+ --_rp-tags-input-radius: var(--rp-radius-md);
78
+ }
79
+ .rp-tags-input--radius-lg[data-v-9fbac28f] {
80
+ --_rp-tags-input-radius: var(--rp-radius-lg);
81
+ }
82
+ .rp-tags-input--radius-xl[data-v-9fbac28f] {
83
+ --_rp-tags-input-radius: var(--rp-radius-xl);
84
+ }
85
+ .rp-tags-input--disabled[data-v-9fbac28f] {
86
+ opacity: var(--rp-opacity-disabled);
87
+ cursor: not-allowed;
88
+ }
89
+ .rp-tags-input--readonly[data-v-9fbac28f] {
90
+ background-color: var(--rp-color-control-readonly-bg);
91
+ }
92
+ .rp-tags-input--invalid[data-v-9fbac28f] {
93
+ border-color: var(--_rp-tags-input-invalid-border);
94
+ }
95
+ .rp-tags-input--invalid[data-v-9fbac28f]:focus-within:not(.rp-tags-input--disabled) {
96
+ border-color: var(--_rp-tags-input-invalid-border);
97
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-tags-input-invalid-ring);
98
+ }
99
+ .rp-tags-input__tags[data-v-9fbac28f] {
100
+ display: flex;
101
+ flex: 1;
102
+ flex-wrap: wrap;
103
+ align-items: center;
104
+ min-width: 0;
105
+ gap: var(--rp-spacing-1);
106
+ }
107
+ .rp-tags-input__tag[data-v-9fbac28f] {
108
+ display: inline-flex;
109
+ align-items: center;
110
+ box-sizing: border-box;
111
+ max-width: 100%;
112
+ min-height: calc(var(--_rp-tags-input-height) - var(--rp-spacing-3));
113
+ padding-inline: var(--rp-spacing-2) var(--rp-spacing-1);
114
+ gap: var(--rp-spacing-1);
115
+ color: var(--rp-color-control-fg);
116
+ background-color: var(--rp-color-default-hover);
117
+ border-radius: var(--_rp-tags-input-radius);
118
+ }
119
+ .rp-tags-input__tag-label[data-v-9fbac28f] {
120
+ overflow: hidden;
121
+ text-overflow: ellipsis;
122
+ white-space: nowrap;
123
+ }
124
+ .rp-tags-input__tag-remove[data-v-9fbac28f] {
125
+ display: inline-flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ padding: 0;
129
+ font: inherit;
130
+ background: none;
131
+ border: none;
132
+ cursor: pointer;
133
+ color: inherit;
134
+ opacity: 0.6;
135
+ flex-shrink: 0;
136
+ transition: opacity var(--rp-transition-fast);
137
+ }
138
+ .rp-tags-input__tag-remove[data-v-9fbac28f]:hover {
139
+ opacity: 1;
140
+ }
141
+ .rp-tags-input__tag-remove svg[data-v-9fbac28f] {
142
+ width: 100%;
143
+ height: 100%;
144
+ }
145
+ .rp-tags-input__tag-remove[data-v-9fbac28f] {
146
+ width: 1em;
147
+ height: 1em;
148
+ }
149
+ .rp-tags-input__tag-remove[data-v-9fbac28f]:disabled {
150
+ cursor: not-allowed;
151
+ }
152
+ .rp-tags-input__input[data-v-9fbac28f] {
153
+ box-sizing: border-box;
154
+ flex: 1 0 4rem;
155
+ width: 4rem;
156
+ min-width: 4rem;
157
+ min-height: calc(var(--_rp-tags-input-height) - var(--rp-spacing-2));
158
+ padding: 0;
159
+ border: none;
160
+ outline: none;
161
+ background: transparent;
162
+ font: inherit;
163
+ color: var(--rp-color-control-fg);
164
+ line-height: 1;
165
+ }
166
+ .rp-tags-input__input[data-v-9fbac28f]::placeholder {
167
+ color: var(--rp-color-control-placeholder);
168
+ }
169
+ .rp-tags-input__input[data-v-9fbac28f]:disabled {
170
+ cursor: not-allowed;
171
+ }
172
+ .rp-tags-input__clear[data-v-9fbac28f] {
173
+ padding: 0;
174
+ font: inherit;
175
+ background: none;
176
+ border: none;
177
+ cursor: pointer;
178
+ display: inline-flex;
179
+ align-items: center;
180
+ width: 1em;
181
+ height: 1em;
182
+ flex-shrink: 0;
183
+ }
184
+ .rp-tags-input__clear svg[data-v-9fbac28f] {
185
+ width: 100%;
186
+ height: 100%;
187
+ }
188
+ .rp-tags-input__clear[data-v-9fbac28f] {
189
+ flex-shrink: 0;
190
+ color: var(--rp-color-control-icon);
191
+ transform: translateX(var(--rp-spacing-1));
192
+ transition: color var(--rp-transition-fast);
193
+ }
194
+ .rp-tags-input__clear[data-v-9fbac28f]:hover {
195
+ color: var(--rp-color-control-fg);
196
+ }
197
+ }