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
@@ -0,0 +1,136 @@
1
+ import { t as isElement } from "./query.js";
2
+ import { t as createRafScheduler } from "./rafScheduler.js";
3
+ //#region src/utils/dom/ancestry.ts
4
+ function getFrameElement(documentNode) {
5
+ try {
6
+ const frameElement = documentNode.defaultView?.frameElement;
7
+ return isElement(frameElement) ? frameElement : null;
8
+ } catch {
9
+ return null;
10
+ }
11
+ }
12
+ function getComposedParent(node) {
13
+ if (isElement(node) && node.assignedSlot) return node.assignedSlot;
14
+ if (node.parentNode) return node.parentNode;
15
+ if (node.nodeType === 9) return getFrameElement(node);
16
+ const host = "host" in node ? node.host : null;
17
+ return isElement(host) ? host : null;
18
+ }
19
+ function getComposedAncestry(node) {
20
+ const ancestry = [];
21
+ let current = node ?? null;
22
+ while (current) {
23
+ current = getComposedParent(current);
24
+ if (current) ancestry.push(current);
25
+ }
26
+ return ancestry;
27
+ }
28
+ function areNodeListsIdentical(left, right) {
29
+ return left.length === right.length && left.every((node, index) => node === right[index]);
30
+ }
31
+ function readComposedAncestryPaths(nodes) {
32
+ return nodes.map((node) => node ? [node, ...getComposedAncestry(node)] : []);
33
+ }
34
+ function areAncestryPathsIdentical(left, right) {
35
+ return left.length === right.length && left.every((path, index) => areNodeListsIdentical(path, right[index] ?? []));
36
+ }
37
+ function getNodeDocument(node) {
38
+ return node.nodeType === 9 ? node : node.ownerDocument;
39
+ }
40
+ function getMutationObserverConstructor(node) {
41
+ return getNodeDocument(node)?.defaultView?.MutationObserver ?? globalThis.MutationObserver;
42
+ }
43
+ function isShadowRootNode(node) {
44
+ return node.nodeType === 11 && "host" in node && isElement(node.host);
45
+ }
46
+ function hasDisconnectedAncestry(nodes) {
47
+ return nodes.some((node) => node != null && [node, ...getComposedAncestry(node)].some((ancestor) => !ancestor.isConnected));
48
+ }
49
+ function observeComposedAncestry(getNodes, onChange, options = {}) {
50
+ let paths = readComposedAncestryPaths(getNodes());
51
+ let mutationObservers = [];
52
+ let slotRoots = [];
53
+ let disposed = false;
54
+ let disconnectNotified = false;
55
+ const reconnectScheduler = createRafScheduler(check, getView);
56
+ function getView() {
57
+ for (const node of getNodes()) {
58
+ const view = node ? getNodeDocument(node)?.defaultView : null;
59
+ if (view) return view;
60
+ }
61
+ return null;
62
+ }
63
+ function scheduleReconnectCheck(nodes) {
64
+ if (!hasDisconnectedAncestry(nodes)) return;
65
+ if (!getView()?.requestAnimationFrame) return;
66
+ reconnectScheduler.schedule();
67
+ }
68
+ function disconnectTargets() {
69
+ for (const observer of mutationObservers) observer.disconnect();
70
+ mutationObservers = [];
71
+ for (const root of slotRoots) root.removeEventListener("slotchange", check);
72
+ slotRoots = [];
73
+ }
74
+ function observeTargets(nodes, nextPaths) {
75
+ const observedNodes = new Set(nextPaths.flat());
76
+ const nextSlotRoots = /* @__PURE__ */ new Set();
77
+ const observersByConstructor = /* @__PURE__ */ new Map();
78
+ for (const node of observedNodes) {
79
+ if (isElement(node) && node.shadowRoot) nextSlotRoots.add(node.shadowRoot);
80
+ if (isShadowRootNode(node)) nextSlotRoots.add(node);
81
+ const MutationObserverConstructor = getMutationObserverConstructor(node);
82
+ if (!MutationObserverConstructor) continue;
83
+ let observer = observersByConstructor.get(MutationObserverConstructor);
84
+ if (!observer) {
85
+ observer = new MutationObserverConstructor(check);
86
+ observersByConstructor.set(MutationObserverConstructor, observer);
87
+ }
88
+ if (isElement(node)) observer.observe(node, {
89
+ childList: true,
90
+ attributes: true,
91
+ attributeFilter: ["slot", "name"]
92
+ });
93
+ else observer.observe(node, { childList: true });
94
+ }
95
+ mutationObservers = [...observersByConstructor.values()];
96
+ slotRoots = [...nextSlotRoots];
97
+ for (const root of slotRoots) root.addEventListener("slotchange", check);
98
+ scheduleReconnectCheck(nodes);
99
+ }
100
+ function rebind(nodes, nextPaths) {
101
+ disconnectTargets();
102
+ paths = nextPaths;
103
+ observeTargets(nodes, paths);
104
+ }
105
+ function check() {
106
+ if (disposed) return;
107
+ const nodes = getNodes();
108
+ if (options.deferWhileDisconnected && hasDisconnectedAncestry(nodes)) {
109
+ if (options.notifyOnDisconnect && !disconnectNotified) onChange();
110
+ disconnectNotified = true;
111
+ scheduleReconnectCheck(nodes);
112
+ return;
113
+ }
114
+ const shouldNotifyReconnect = disconnectNotified && options.notifyOnDisconnect;
115
+ disconnectNotified = false;
116
+ reconnectScheduler.cancel();
117
+ const nextPaths = readComposedAncestryPaths(nodes);
118
+ if (areAncestryPathsIdentical(paths, nextPaths)) {
119
+ if (shouldNotifyReconnect) onChange();
120
+ return;
121
+ }
122
+ rebind(nodes, nextPaths);
123
+ onChange();
124
+ }
125
+ const initialNodes = getNodes();
126
+ paths = readComposedAncestryPaths(initialNodes);
127
+ observeTargets(initialNodes, paths);
128
+ return () => {
129
+ if (disposed) return;
130
+ disposed = true;
131
+ reconnectScheduler.cancel();
132
+ disconnectTargets();
133
+ };
134
+ }
135
+ //#endregion
136
+ export { observeComposedAncestry as n, getComposedAncestry as t };
package/dist/aria.js ADDED
@@ -0,0 +1,14 @@
1
+ import { n as hasAttributeToken, r as parseAttributeTokens } from "./attributes2.js";
2
+ //#region src/utils/aria.ts
3
+ function parseAriaIdRefs(value) {
4
+ return parseAttributeTokens(value);
5
+ }
6
+ function hasAriaIdRef(value, id) {
7
+ return hasAttributeToken(value, id);
8
+ }
9
+ function mergeAriaIdRefs(...values) {
10
+ const ids = values.flatMap(parseAriaIdRefs);
11
+ return ids.length > 0 ? Array.from(new Set(ids)).join(" ") : void 0;
12
+ }
13
+ //#endregion
14
+ export { mergeAriaIdRefs as n, parseAriaIdRefs as r, hasAriaIdRef as t };
@@ -1,5 +1,5 @@
1
1
  import './aspect-ratio.css';
2
- import { n as useStylesApi } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
4
  import { computed, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template } from "vue";
5
5
  //#region src/components/aspect-ratio/aspect-ratio.vue?vue&type=script&setup=true&vapor=true&lang.ts
@@ -0,0 +1,9 @@
1
+ //#region src/utils/attributes.ts
2
+ function toPresenceAttribute(value) {
3
+ return value ? "" : void 0;
4
+ }
5
+ function toOptionalAttribute(value) {
6
+ return value || void 0;
7
+ }
8
+ //#endregion
9
+ export { toPresenceAttribute as n, toOptionalAttribute as t };
@@ -0,0 +1,29 @@
1
+ //#region src/utils/dom/attributes.ts
2
+ function splitCompatibilityAttributes(attributes) {
3
+ const { class: compatibilityClass, style: compatibilityStyle, ...forwardedAttributes } = attributes;
4
+ return {
5
+ compatibilityClass,
6
+ compatibilityStyle,
7
+ forwardedAttributes
8
+ };
9
+ }
10
+ function composeEventHandlers(...handlers) {
11
+ return (event) => {
12
+ for (const handler of handlers) handler?.(event);
13
+ };
14
+ }
15
+ function parseAttributeTokens(value) {
16
+ return value?.split(/\s+/).filter(Boolean) ?? [];
17
+ }
18
+ function hasAttributeToken(value, token) {
19
+ return parseAttributeTokens(value).includes(token);
20
+ }
21
+ function snapshotAttributes(element, attributes) {
22
+ return new Map(attributes.map((attribute) => [attribute, element.getAttribute(attribute)]));
23
+ }
24
+ function restoreAttributes(element, snapshot) {
25
+ for (const [attribute, value] of snapshot) if (value == null) element.removeAttribute(attribute);
26
+ else element.setAttribute(attribute, value);
27
+ }
28
+ //#endregion
29
+ export { snapshotAttributes as a, restoreAttributes as i, hasAttributeToken as n, splitCompatibilityAttributes as o, parseAttributeTokens as r, composeEventHandlers as t };
package/dist/avatar.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-avatar[data-v-416c3281] {
2
+ .rp-avatar[data-v-36d66f33] {
3
3
  --_rp-avatar-size: var(--rp-size-control-md);
4
4
  --_rp-avatar-font-size: var(--rp-font-size-md);
5
5
  --_rp-avatar-radius: var(--rp-radius-full);
@@ -27,72 +27,72 @@
27
27
  border-radius: var(--_rp-avatar-radius);
28
28
  user-select: none;
29
29
  }
30
- .rp-avatar--surface[data-v-416c3281], .rp-avatar--outline[data-v-416c3281] {
30
+ .rp-avatar--surface[data-v-36d66f33], .rp-avatar--outline[data-v-36d66f33] {
31
31
  --_rp-avatar-border-width: var(--rp-border-width-thin);
32
32
  }
33
- .rp-avatar--size-xs[data-v-416c3281] {
33
+ .rp-avatar--size-xs[data-v-36d66f33] {
34
34
  --_rp-avatar-size: var(--rp-size-control-xs);
35
35
  --_rp-avatar-font-size: var(--rp-font-size-xs);
36
36
  }
37
- .rp-avatar--size-sm[data-v-416c3281] {
37
+ .rp-avatar--size-sm[data-v-36d66f33] {
38
38
  --_rp-avatar-size: var(--rp-size-control-sm);
39
39
  --_rp-avatar-font-size: var(--rp-font-size-sm);
40
40
  }
41
- .rp-avatar--size-md[data-v-416c3281] {
41
+ .rp-avatar--size-md[data-v-36d66f33] {
42
42
  --_rp-avatar-size: var(--rp-size-control-md);
43
43
  --_rp-avatar-font-size: var(--rp-font-size-md);
44
44
  }
45
- .rp-avatar--size-lg[data-v-416c3281] {
45
+ .rp-avatar--size-lg[data-v-36d66f33] {
46
46
  --_rp-avatar-size: var(--rp-size-control-lg);
47
47
  --_rp-avatar-font-size: var(--rp-font-size-lg);
48
48
  }
49
- .rp-avatar--size-xl[data-v-416c3281] {
49
+ .rp-avatar--size-xl[data-v-36d66f33] {
50
50
  --_rp-avatar-size: var(--rp-size-control-xl);
51
51
  --_rp-avatar-font-size: var(--rp-font-size-xl);
52
52
  }
53
- .rp-avatar--radius-none[data-v-416c3281] {
53
+ .rp-avatar--radius-none[data-v-36d66f33] {
54
54
  --_rp-avatar-radius: var(--rp-radius-none);
55
55
  }
56
- .rp-avatar--radius-xs[data-v-416c3281] {
56
+ .rp-avatar--radius-xs[data-v-36d66f33] {
57
57
  --_rp-avatar-radius: var(--rp-radius-xs);
58
58
  }
59
- .rp-avatar--radius-sm[data-v-416c3281] {
59
+ .rp-avatar--radius-sm[data-v-36d66f33] {
60
60
  --_rp-avatar-radius: var(--rp-radius-sm);
61
61
  }
62
- .rp-avatar--radius-md[data-v-416c3281] {
62
+ .rp-avatar--radius-md[data-v-36d66f33] {
63
63
  --_rp-avatar-radius: var(--rp-radius-md);
64
64
  }
65
- .rp-avatar--radius-lg[data-v-416c3281] {
65
+ .rp-avatar--radius-lg[data-v-36d66f33] {
66
66
  --_rp-avatar-radius: var(--rp-radius-lg);
67
67
  }
68
- .rp-avatar--radius-xl[data-v-416c3281] {
68
+ .rp-avatar--radius-xl[data-v-36d66f33] {
69
69
  --_rp-avatar-radius: var(--rp-radius-xl);
70
70
  }
71
- .rp-avatar--radius-full[data-v-416c3281] {
71
+ .rp-avatar--radius-full[data-v-36d66f33] {
72
72
  --_rp-avatar-radius: var(--rp-radius-full);
73
73
  }
74
- .rp-avatar__image[data-v-416c3281] {
74
+ .rp-avatar__image[data-v-36d66f33] {
75
75
  display: block;
76
76
  width: 100%;
77
77
  height: 100%;
78
78
  object-fit: cover;
79
79
  }
80
- .rp-avatar__fallback[data-v-416c3281] {
80
+ .rp-avatar__fallback[data-v-36d66f33] {
81
81
  display: inline-flex;
82
82
  align-items: center;
83
83
  justify-content: center;
84
84
  width: 100%;
85
85
  height: 100%;
86
86
  }
87
- .rp-avatar__fallback[data-v-416c3281] > svg {
87
+ .rp-avatar__fallback[data-v-36d66f33] > svg {
88
88
  display: block;
89
89
  width: 50%;
90
90
  height: 50%;
91
91
  }
92
- .rp-avatar__initials[data-v-416c3281] {
92
+ .rp-avatar__initials[data-v-36d66f33] {
93
93
  text-transform: uppercase;
94
94
  }
95
- .rp-avatar__icon[data-v-416c3281] {
95
+ .rp-avatar__icon[data-v-36d66f33] {
96
96
  width: 50%;
97
97
  height: 50%;
98
98
  }
package/dist/avatar.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import './avatar.css';
2
- import { n as useStylesApi } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
3
  import { t as bem } from "./bem.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { a as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
6
+ import { t as getNameInitials } from "./text.js";
6
7
  import { computed, createComponent, createIf, createSlot, defineVaporComponent, markRaw, on, ref, renderEffect, setAttr, setClass, setDynamicProps, setInsertionState, setProp, setStyle, setText, template, toDisplayString, txt, unref, watch } from "vue";
7
8
  //#region ~icons/lucide/user
8
9
  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><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"></path><circle cx=12 cy=7 r=4>", 3, 1);
@@ -14,7 +15,7 @@ var user_default = markRaw(defineVaporComponent({
14
15
  render
15
16
  }));
16
17
  //#endregion
17
- //#region src/components/avatar/useAvatarColor.ts
18
+ //#region src/components/avatar/avatarColor.ts
18
19
  function getAvatarColorStyle(color, variant, autoContrast, contrastColor) {
19
20
  if (!color && !variant) return void 0;
20
21
  const roles = getComponentVariantColorRoles({
@@ -32,10 +33,10 @@ function getAvatarColorStyle(color, variant, autoContrast, contrastColor) {
32
33
  }
33
34
  //#endregion
34
35
  //#region src/components/avatar/avatar.vue?vue&type=script&setup=true&vapor=true&lang.ts
35
- var t0 = template("<img data-v-416c3281>");
36
- var t1 = template("<span data-v-416c3281 class=rp-avatar__initials> ");
37
- var t2 = template("<span data-v-416c3281>");
38
- var t3 = template("<span data-v-416c3281>", 1);
36
+ var t0 = template("<img data-v-36d66f33>");
37
+ var t1 = template("<span data-v-36d66f33 class=rp-avatar__initials> ");
38
+ var t2 = template("<span data-v-36d66f33>");
39
+ var t3 = template("<span data-v-36d66f33>", 1);
39
40
  //#endregion
40
41
  //#region src/components/avatar/avatar.vue
41
42
  var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -75,7 +76,7 @@ var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
75
76
  const rootRole = computed(() => !showsImage.value && accessibleName.value ? "img" : void 0);
76
77
  const rootAriaLabel = computed(() => rootRole.value ? accessibleName.value : void 0);
77
78
  const fallbackAriaHidden = computed(() => isHidden.value || rootAriaLabel.value ? true : void 0);
78
- const initials = computed(() => getInitials(props.name));
79
+ const initials = computed(() => getNameInitials(props.name));
79
80
  const rootClass = computed(() => bem("rp-avatar", {
80
81
  [props.variant ?? ""]: Boolean(props.variant),
81
82
  [`size-${props.size}`]: Boolean(props.size),
@@ -98,15 +99,6 @@ var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
98
99
  imageFailed.value = true;
99
100
  emit("error", event);
100
101
  }
101
- function getInitials(name) {
102
- if (!name) return "";
103
- const parts = name.trim().split(/\s+/).filter(Boolean);
104
- const firstPart = parts[0];
105
- if (!firstPart) return "";
106
- if (parts.length === 1) return Array.from(firstPart).slice(0, 2).join("").toLocaleUpperCase();
107
- const lastPart = parts.at(-1) ?? firstPart;
108
- return `${Array.from(firstPart)[0] ?? ""}${Array.from(lastPart)[0] ?? ""}`.toLocaleUpperCase();
109
- }
110
102
  const n13 = t3();
111
103
  renderEffect(() => setDynamicProps(n13, [rootAttrs.value]));
112
104
  setInsertionState(n13, null, 0);
@@ -142,7 +134,7 @@ var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
142
134
  }, 261);
143
135
  return n13;
144
136
  }
145
- }), [["__scopeId", "data-v-416c3281"]]);
137
+ }), [["__scopeId", "data-v-36d66f33"]]);
146
138
  //#endregion
147
139
  //#region src/components/avatar/types.ts
148
140
  var avatarParts = [
package/dist/badge.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-badge[data-v-1bf7c45c] {
2
+ .rp-badge[data-v-5da092ee] {
3
3
  --_rp-badge-height: 20px;
4
4
  --_rp-badge-padding-x: 10px;
5
5
  --_rp-badge-font-size: 11px;
@@ -28,65 +28,65 @@
28
28
  border-radius: var(--_rp-badge-radius);
29
29
  transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast);
30
30
  }
31
- .rp-badge--size-xs[data-v-1bf7c45c] {
31
+ .rp-badge--size-xs[data-v-5da092ee] {
32
32
  --_rp-badge-height: 16px;
33
33
  --_rp-badge-padding-x: 6px;
34
34
  --_rp-badge-font-size: 9px;
35
35
  }
36
- .rp-badge--size-sm[data-v-1bf7c45c] {
36
+ .rp-badge--size-sm[data-v-5da092ee] {
37
37
  --_rp-badge-height: 18px;
38
38
  --_rp-badge-padding-x: 8px;
39
39
  --_rp-badge-font-size: 10px;
40
40
  }
41
- .rp-badge--size-md[data-v-1bf7c45c] {
41
+ .rp-badge--size-md[data-v-5da092ee] {
42
42
  --_rp-badge-height: 20px;
43
43
  --_rp-badge-padding-x: 10px;
44
44
  --_rp-badge-font-size: 11px;
45
45
  }
46
- .rp-badge--size-lg[data-v-1bf7c45c] {
46
+ .rp-badge--size-lg[data-v-5da092ee] {
47
47
  --_rp-badge-height: 26px;
48
48
  --_rp-badge-padding-x: 12px;
49
49
  --_rp-badge-font-size: 13px;
50
50
  }
51
- .rp-badge--size-xl[data-v-1bf7c45c] {
51
+ .rp-badge--size-xl[data-v-5da092ee] {
52
52
  --_rp-badge-height: 32px;
53
53
  --_rp-badge-padding-x: 16px;
54
54
  --_rp-badge-font-size: 16px;
55
55
  }
56
- .rp-badge--radius-none[data-v-1bf7c45c] {
56
+ .rp-badge--radius-none[data-v-5da092ee] {
57
57
  --_rp-badge-radius: var(--rp-radius-none);
58
58
  }
59
- .rp-badge--radius-xs[data-v-1bf7c45c] {
59
+ .rp-badge--radius-xs[data-v-5da092ee] {
60
60
  --_rp-badge-radius: var(--rp-radius-xs);
61
61
  }
62
- .rp-badge--radius-sm[data-v-1bf7c45c] {
62
+ .rp-badge--radius-sm[data-v-5da092ee] {
63
63
  --_rp-badge-radius: var(--rp-radius-sm);
64
64
  }
65
- .rp-badge--radius-md[data-v-1bf7c45c] {
65
+ .rp-badge--radius-md[data-v-5da092ee] {
66
66
  --_rp-badge-radius: var(--rp-radius-md);
67
67
  }
68
- .rp-badge--radius-lg[data-v-1bf7c45c] {
68
+ .rp-badge--radius-lg[data-v-5da092ee] {
69
69
  --_rp-badge-radius: var(--rp-radius-lg);
70
70
  }
71
- .rp-badge--radius-xl[data-v-1bf7c45c] {
71
+ .rp-badge--radius-xl[data-v-5da092ee] {
72
72
  --_rp-badge-radius: var(--rp-radius-xl);
73
73
  }
74
- .rp-badge--radius-full[data-v-1bf7c45c] {
74
+ .rp-badge--radius-full[data-v-5da092ee] {
75
75
  --_rp-badge-radius: var(--rp-radius-full);
76
76
  }
77
- .rp-badge__left[data-v-1bf7c45c], .rp-badge__right[data-v-1bf7c45c] {
77
+ .rp-badge__left[data-v-5da092ee], .rp-badge__right[data-v-5da092ee] {
78
78
  display: inline-flex;
79
79
  align-items: center;
80
80
  justify-content: center;
81
81
  flex: 0 0 auto;
82
82
  line-height: 0;
83
83
  }
84
- .rp-badge__left[data-v-1bf7c45c] > svg, .rp-badge__right[data-v-1bf7c45c] > svg {
84
+ .rp-badge__left[data-v-5da092ee] > svg, .rp-badge__right[data-v-5da092ee] > svg {
85
85
  display: block;
86
86
  width: 1em;
87
87
  height: 1em;
88
88
  }
89
- .rp-badge__label[data-v-1bf7c45c] {
89
+ .rp-badge__label[data-v-5da092ee] {
90
90
  display: inline-block;
91
91
  min-width: 0;
92
92
  overflow: hidden;
package/dist/badge.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import './badge.css';
2
- import { n as useStylesApi } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
3
  import { t as bem } from "./bem.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { a as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
6
6
  import { computed, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
- //#region src/components/badge/useBadgeColor.ts
7
+ //#region src/components/badge/badgeColor.ts
8
8
  function getBadgeColorStyle(color, variant, autoContrast, contrastColor) {
9
9
  if (!color && !variant) return void 0;
10
10
  const roles = getComponentVariantColorRoles({
@@ -22,8 +22,8 @@ function getBadgeColorStyle(color, variant, autoContrast, contrastColor) {
22
22
  }
23
23
  //#endregion
24
24
  //#region src/components/badge/badge.vue?vue&type=script&setup=true&vapor=true&lang.ts
25
- var t0 = template("<span data-v-1bf7c45c>");
26
- var t1 = template("<span data-v-1bf7c45c>", 1);
25
+ var t0 = template("<span data-v-5da092ee>");
26
+ var t1 = template("<span data-v-5da092ee>", 1);
27
27
  //#endregion
28
28
  //#region src/components/badge/badge.vue
29
29
  var badge_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -86,7 +86,7 @@ var badge_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
86
86
  });
87
87
  return n12;
88
88
  }
89
- }), [["__scopeId", "data-v-1bf7c45c"]]);
89
+ }), [["__scopeId", "data-v-5da092ee"]]);
90
90
  //#endregion
91
91
  //#region src/components/badge/types.ts
92
92
  var badgeParts = [
@@ -1,5 +1,5 @@
1
1
  import './button-group.css';
2
- import { n as useStylesApi } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
3
  import { t as bem } from "./bem.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { computed, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template } from "vue";
@@ -1,4 +1,5 @@
1
- import { n as useStylesApi, t as presence } from "./styles-api.js";
1
+ import { t as useStylesApi } from "./styles-api.js";
2
+ import { n as toPresenceAttribute } from "./attributes.js";
2
3
  import { t as bem } from "./bem.js";
3
4
  import { n as loader_circle_default, t as getButtonColorStyle } from "./button.scss_vue_type_style_index_0_src_true_lang.js";
4
5
  import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
@@ -71,8 +72,8 @@ var button_link_default = /* @__PURE__ */ defineVaporComponent({
71
72
  "aria-disabled": isUnavailable.value || void 0,
72
73
  "aria-busy": props.loading || void 0,
73
74
  tabindex: isUnavailable.value ? -1 : void 0,
74
- "data-disabled": presence(isUnavailable.value),
75
- "data-loading": presence(props.loading),
75
+ "data-disabled": toPresenceAttribute(isUnavailable.value),
76
+ "data-loading": toPresenceAttribute(props.loading),
76
77
  onClickCapture: onDisabledClick
77
78
  }));
78
79
  function onDisabledClick(event) {
package/dist/button.js CHANGED
@@ -1,4 +1,5 @@
1
- import { n as useStylesApi, t as presence } from "./styles-api.js";
1
+ import { t as useStylesApi } from "./styles-api.js";
2
+ import { n as toPresenceAttribute } from "./attributes.js";
2
3
  import { t as bem } from "./bem.js";
3
4
  import { n as loader_circle_default, t as getButtonColorStyle } from "./button.scss_vue_type_style_index_0_src_true_lang.js";
4
5
  import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
@@ -49,8 +50,8 @@ var button_default = /* @__PURE__ */ defineVaporComponent({
49
50
  disabled: props.disabled || props.loading || void 0,
50
51
  type: props.type,
51
52
  "aria-busy": props.loading || void 0,
52
- "data-disabled": presence(props.disabled || props.loading),
53
- "data-loading": presence(props.loading)
53
+ "data-disabled": toPresenceAttribute(props.disabled || props.loading),
54
+ "data-loading": toPresenceAttribute(props.loading)
54
55
  }));
55
56
  const n17 = t1();
56
57
  const n16 = child(n17, 1);
@@ -11,7 +11,7 @@ var loader_circle_default = markRaw(defineVaporComponent({
11
11
  render
12
12
  }));
13
13
  //#endregion
14
- //#region src/components/button/useButtonColor.ts
14
+ //#region src/components/button/buttonColor.ts
15
15
  function getButtonColorStyle(color, variant, autoContrast, contrastColor) {
16
16
  if (!color && !variant) return void 0;
17
17
  const roles = getComponentVariantColorRoles({