ropav 0.0.8 → 0.0.10

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 (232) hide show
  1. package/dist/accordion.css +10 -10
  2. package/dist/accordion.js +2 -2
  3. package/dist/alert.css +109 -0
  4. package/dist/alert.js +168 -0
  5. package/dist/aspect-ratio.css +17 -0
  6. package/dist/aspect-ratio.js +26 -0
  7. package/dist/avatar.css +97 -0
  8. package/dist/avatar.js +161 -0
  9. package/dist/badge.css +40 -115
  10. package/dist/badge.js +19 -16
  11. package/dist/base.css +609 -180
  12. package/dist/button-link.css +161 -0
  13. package/dist/button-link.js +108 -0
  14. package/dist/button.css +50 -229
  15. package/dist/button.js +7 -9
  16. package/dist/card.css +12 -12
  17. package/dist/check.js +12 -0
  18. package/dist/checkbox.css +16 -57
  19. package/dist/checkbox.js +14 -31
  20. package/dist/collapse.css +2 -2
  21. package/dist/collapse.js +1 -1
  22. package/dist/color-input.css +108 -0
  23. package/dist/color-input.js +349 -0
  24. package/dist/color-picker.css +304 -0
  25. package/dist/color-picker.js +797 -0
  26. package/dist/color-picker2.js +18 -0
  27. package/dist/color-swatch.css +50 -0
  28. package/dist/color-swatch.js +73 -0
  29. package/dist/color.js +190 -0
  30. package/dist/componentColors.js +206 -13
  31. package/dist/components/accordion/accordion-item.d.ts +4 -4
  32. package/dist/components/accordion/accordion.d.ts +1 -1
  33. package/dist/components/accordion/index.d.ts +4 -4
  34. package/dist/components/accordion/types.d.ts +1 -1
  35. package/dist/components/accordion/useAccordion.d.ts +1 -1
  36. package/dist/components/alert/alert.d.ts +30 -0
  37. package/dist/components/alert/index.d.ts +3 -0
  38. package/dist/components/alert/index.js +2 -0
  39. package/dist/components/alert/types.d.ts +20 -0
  40. package/dist/components/alert/useAlertColor.d.ts +3 -0
  41. package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
  42. package/dist/components/aspect-ratio/index.d.ts +2 -0
  43. package/dist/components/aspect-ratio/index.js +2 -0
  44. package/dist/components/aspect-ratio/types.d.ts +3 -0
  45. package/dist/components/avatar/avatar.d.ts +24 -0
  46. package/dist/components/avatar/index.d.ts +3 -0
  47. package/dist/components/avatar/index.js +2 -0
  48. package/dist/components/avatar/types.d.ts +20 -0
  49. package/dist/components/avatar/useAvatarColor.d.ts +3 -0
  50. package/dist/components/badge/badge.d.ts +1 -1
  51. package/dist/components/badge/index.d.ts +3 -3
  52. package/dist/components/badge/types.d.ts +3 -2
  53. package/dist/components/badge/useBadgeColor.d.ts +3 -8
  54. package/dist/components/button/button.d.ts +1 -1
  55. package/dist/components/button/index.d.ts +2 -2
  56. package/dist/components/button/types.d.ts +2 -1
  57. package/dist/components/button/useButtonColor.d.ts +3 -13
  58. package/dist/components/button-group/button-group.d.ts +1 -1
  59. package/dist/components/button-group/index.d.ts +2 -2
  60. package/dist/components/button-link/button-link.d.ts +27 -0
  61. package/dist/components/button-link/index.d.ts +2 -0
  62. package/dist/components/button-link/index.js +2 -0
  63. package/dist/components/button-link/types.d.ts +20 -0
  64. package/dist/components/card/card.d.ts +1 -1
  65. package/dist/components/card/index.d.ts +2 -2
  66. package/dist/components/checkbox/checkbox.d.ts +1 -1
  67. package/dist/components/checkbox/index.d.ts +2 -2
  68. package/dist/components/checkbox/types.d.ts +2 -1
  69. package/dist/components/checkbox/useCheckbox.d.ts +4 -6
  70. package/dist/components/collapse/collapse.d.ts +2 -2
  71. package/dist/components/collapse/index.d.ts +3 -3
  72. package/dist/components/collapse/useCollapse.d.ts +1 -1
  73. package/dist/components/color-input/color-input.d.ts +29 -0
  74. package/dist/components/color-input/index.d.ts +2 -0
  75. package/dist/components/color-input/index.js +2 -0
  76. package/dist/components/color-input/types.d.ts +35 -0
  77. package/dist/components/color-input/useColorInput.d.ts +27 -0
  78. package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
  79. package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
  80. package/dist/components/color-input/useColorInputValue.d.ts +8 -0
  81. package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
  82. package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
  83. package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
  84. package/dist/components/color-picker/color-picker.d.ts +23 -0
  85. package/dist/components/color-picker/index.d.ts +3 -0
  86. package/dist/components/color-picker/index.js +3 -0
  87. package/dist/components/color-picker/types.d.ts +39 -0
  88. package/dist/components/color-picker/useColorPickerDrag.d.ts +16 -0
  89. package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
  90. package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
  91. package/dist/components/color-swatch/color-swatch.d.ts +21 -0
  92. package/dist/components/color-swatch/index.d.ts +2 -0
  93. package/dist/components/color-swatch/index.js +2 -0
  94. package/dist/components/color-swatch/types.d.ts +6 -0
  95. package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
  96. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +15 -6
  97. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +1 -1
  98. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  99. package/dist/components/dropdown-menu/index.d.ts +3 -3
  100. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -10
  101. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +2 -2
  102. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -2
  103. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +2 -2
  104. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -2
  105. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +3 -3
  106. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +12 -4
  107. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +3 -3
  108. package/dist/components/field/field.d.ts +2 -2
  109. package/dist/components/field/index.d.ts +2 -2
  110. package/dist/components/field/types.d.ts +0 -2
  111. package/dist/components/field/useField.d.ts +1 -3
  112. package/dist/components/icon-button/icon-button.d.ts +1 -1
  113. package/dist/components/icon-button/index.d.ts +2 -2
  114. package/dist/components/icon-button/types.d.ts +2 -1
  115. package/dist/components/input/index.d.ts +2 -2
  116. package/dist/components/input/input.d.ts +1 -1
  117. package/dist/components/input/types.d.ts +3 -0
  118. package/dist/components/input/useInput.d.ts +2 -2
  119. package/dist/components/modal/index.d.ts +2 -2
  120. package/dist/components/modal/modal.d.ts +1 -1
  121. package/dist/components/modal/types.d.ts +1 -1
  122. package/dist/components/modal/useModal.d.ts +1 -1
  123. package/dist/components/number-input/index.d.ts +2 -0
  124. package/dist/components/number-input/index.js +2 -0
  125. package/dist/components/number-input/number-input.d.ts +29 -0
  126. package/dist/components/number-input/types.d.ts +34 -0
  127. package/dist/components/number-input/useNumberInput.d.ts +31 -0
  128. package/dist/components/overlay/index.d.ts +2 -2
  129. package/dist/components/overlay/overlay.d.ts +1 -1
  130. package/dist/components/overlay/useOverlay.d.ts +1 -1
  131. package/dist/components/popover/index.d.ts +3 -2
  132. package/dist/components/popover/index.js +2 -1
  133. package/dist/components/popover/popover.d.ts +2 -2
  134. package/dist/components/popover/types.d.ts +3 -1
  135. package/dist/components/popover/usePopover.d.ts +2 -1
  136. package/dist/components/progress/index.d.ts +3 -3
  137. package/dist/components/progress/progress.d.ts +1 -1
  138. package/dist/components/progress/types.d.ts +2 -2
  139. package/dist/components/progress/useProgress.d.ts +2 -2
  140. package/dist/components/radio/index.d.ts +3 -3
  141. package/dist/components/radio/radio-group.d.ts +1 -1
  142. package/dist/components/radio/radio.d.ts +1 -1
  143. package/dist/components/radio/types.d.ts +4 -1
  144. package/dist/components/radio/useRadio.d.ts +4 -6
  145. package/dist/components/select/index.d.ts +2 -2
  146. package/dist/components/select/select.d.ts +1 -1
  147. package/dist/components/select/types.d.ts +3 -0
  148. package/dist/components/select/useSelect.d.ts +2 -2
  149. package/dist/components/slider/index.d.ts +4 -3
  150. package/dist/components/slider/index.js +2 -2
  151. package/dist/components/slider/range-slider-tooltip.d.ts +34 -0
  152. package/dist/components/slider/range-slider.d.ts +37 -0
  153. package/dist/components/slider/slider.d.ts +1 -1
  154. package/dist/components/slider/sliderCore.d.ts +35 -0
  155. package/dist/components/slider/types.d.ts +15 -6
  156. package/dist/components/slider/useRangeSlider.d.ts +57 -0
  157. package/dist/components/slider/useRangeSliderPointer.d.ts +19 -0
  158. package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +36 -0
  159. package/dist/components/slider/useRangeSliderTooltipState.d.ts +23 -0
  160. package/dist/components/slider/useSlider.d.ts +11 -15
  161. package/dist/components/switch/index.d.ts +2 -2
  162. package/dist/components/switch/switch.d.ts +1 -1
  163. package/dist/components/switch/types.d.ts +1 -1
  164. package/dist/components/switch/useSwitch.d.ts +4 -5
  165. package/dist/components/tabs/index.d.ts +6 -6
  166. package/dist/components/tabs/tabs-content.d.ts +2 -2
  167. package/dist/components/tabs/tabs-list.d.ts +4 -4
  168. package/dist/components/tabs/tabs-trigger.d.ts +5 -5
  169. package/dist/components/tabs/tabs.d.ts +5 -5
  170. package/dist/components/tabs/useTabs.d.ts +1 -1
  171. package/dist/components/textarea/index.d.ts +2 -2
  172. package/dist/components/textarea/textarea.d.ts +1 -1
  173. package/dist/components/textarea/useTextarea.d.ts +2 -2
  174. package/dist/components/toast/defaults.d.ts +7 -0
  175. package/dist/components/toast/index.d.ts +7 -0
  176. package/dist/components/toast/index.js +2 -0
  177. package/dist/components/toast/toast-provider.d.ts +21 -0
  178. package/dist/components/toast/toast-viewport.d.ts +34 -0
  179. package/dist/components/toast/toast.d.ts +31 -0
  180. package/dist/components/toast/types.d.ts +106 -0
  181. package/dist/components/toast/useToast.d.ts +4 -0
  182. package/dist/components/toast/useToastColor.d.ts +3 -0
  183. package/dist/components/toast/useToastState.d.ts +2 -0
  184. package/dist/components/tooltip/index.d.ts +2 -2
  185. package/dist/components/tooltip/tooltip.d.ts +2 -2
  186. package/dist/components/tooltip/types.d.ts +2 -1
  187. package/dist/components/tooltip/useTooltip.d.ts +3 -1
  188. package/dist/dropdown-menu.css +17 -17
  189. package/dist/dropdown-menu.js +160 -39
  190. package/dist/field.css +15 -18
  191. package/dist/field.js +17 -35
  192. package/dist/icon-button.css +57 -236
  193. package/dist/icon-button.js +5 -6
  194. package/dist/index.d.ts +31 -22
  195. package/dist/index.js +17 -4
  196. package/dist/input.css +40 -46
  197. package/dist/input.js +39 -21
  198. package/dist/minus.js +12 -0
  199. package/dist/modal.css +9 -9
  200. package/dist/modal.js +1 -1
  201. package/dist/number-input.css +86 -0
  202. package/dist/number-input.js +350 -0
  203. package/dist/overlay.css +5 -5
  204. package/dist/overlay.js +3 -3
  205. package/dist/popover.css +62 -29
  206. package/dist/popover.js +33 -19
  207. package/dist/popover2.js +17 -0
  208. package/dist/progress.css +9 -30
  209. package/dist/progress.js +3 -6
  210. package/dist/radio.css +34 -62
  211. package/dist/radio.js +28 -16
  212. package/dist/rafScheduler.js +34 -0
  213. package/dist/select.css +105 -61
  214. package/dist/select.js +12 -8
  215. package/dist/slider.css +719 -125
  216. package/dist/slider.js +1251 -149
  217. package/dist/switch.css +19 -44
  218. package/dist/switch.js +4 -5
  219. package/dist/tabs.css +36 -36
  220. package/dist/tabs.js +1 -1
  221. package/dist/textarea.css +33 -25
  222. package/dist/textarea.js +8 -2
  223. package/dist/toast.css +232 -0
  224. package/dist/toast.js +679 -0
  225. package/dist/tooltip.css +7 -35
  226. package/dist/tooltip.js +30 -18
  227. package/dist/useButtonColor.js +16 -14
  228. package/dist/utils/componentColors.d.ts +60 -0
  229. package/package.json +55 -15
  230. package/src/styles/_mixins.scss +25 -41
  231. package/src/styles/_tokens.scss +615 -182
  232. package/src/styles/_variables.scss +177 -49
@@ -11,29 +11,6 @@ var chevron_right_default = markRaw(defineVaporComponent({
11
11
  name: "lucide-chevron-right",
12
12
  render
13
13
  }));
14
- //#endregion
15
- //#region src/components/dropdown-menu/dropdown-menu-items.ts
16
- var dropdown_menu_items_default = defineComponent({
17
- name: "RpDropdownMenuItems",
18
- props: { items: {
19
- type: Array,
20
- required: true
21
- } },
22
- setup(props, { slots }) {
23
- function renderItems(items) {
24
- return items.map((renderedItem) => {
25
- const children = [h("button", renderedItem.props, slots.item?.(renderedItem.slotProps))];
26
- if (renderedItem.hasSubmenu && renderedItem.submenuOpen) children.push(h("div", renderedItem.submenuProps, renderItems(renderedItem.children)));
27
- return h("div", {
28
- key: renderedItem.key,
29
- class: "rp-dropdown-menu__item-wrap",
30
- role: "none"
31
- }, children);
32
- });
33
- }
34
- return () => renderItems(props.items);
35
- }
36
- });
37
14
  var DEFAULT_FOCUS_TARGET = "first";
38
15
  function getOpenFocusTarget(options) {
39
16
  if (typeof options === "string") return options;
@@ -52,7 +29,7 @@ function hasItemSubmenu(item) {
52
29
  return (item.children?.length ?? 0) > 0;
53
30
  }
54
31
  function hasNestedItems(items) {
55
- return items.some((item) => hasItemSubmenu(item) || hasNestedItems(item.children ?? []));
32
+ return items.some(hasItemSubmenu);
56
33
  }
57
34
  function getPathKey(path) {
58
35
  return path.length === 0 ? "root" : path.join("-");
@@ -95,6 +72,138 @@ function getNextEnabledIndex(items, index, direction) {
95
72
  return enabledIndexes[enabledIndexes.length - 1];
96
73
  }
97
74
  //#endregion
75
+ //#region src/components/dropdown-menu/dropdown-menu-items.ts
76
+ var contextProp = {
77
+ type: Object,
78
+ required: true
79
+ };
80
+ var renderItemProp = {
81
+ type: Function,
82
+ required: true
83
+ };
84
+ var DropdownMenuItemRow = defineComponent({
85
+ name: "RpDropdownMenuItemRow",
86
+ props: {
87
+ context: contextProp,
88
+ disabled: {
89
+ type: Boolean,
90
+ required: true
91
+ },
92
+ focused: {
93
+ type: Boolean,
94
+ required: true
95
+ },
96
+ index: {
97
+ type: Number,
98
+ required: true
99
+ },
100
+ item: {
101
+ type: Object,
102
+ required: true
103
+ },
104
+ parentPath: {
105
+ type: Array,
106
+ required: true
107
+ },
108
+ renderItem: renderItemProp,
109
+ submenuOpen: {
110
+ type: Boolean,
111
+ required: true
112
+ }
113
+ },
114
+ setup(props) {
115
+ const path = computed(() => [...props.parentPath, props.index]);
116
+ return () => {
117
+ const currentPath = path.value;
118
+ const hasSubmenu = hasItemSubmenu(props.item);
119
+ const children = [h("button", props.context.getItemProps(props.item, currentPath, props.focused, props.disabled, props.submenuOpen), props.renderItem(props.context.getItemSlotProps(props.item, currentPath, props.focused, props.disabled, props.submenuOpen)))];
120
+ if (hasSubmenu && props.submenuOpen) children.push(h(DropdownMenuSubmenu, {
121
+ context: props.context,
122
+ item: props.item,
123
+ path: currentPath,
124
+ renderItem: props.renderItem
125
+ }));
126
+ return h("div", {
127
+ class: "rp-dropdown-menu__item-wrap",
128
+ role: "none"
129
+ }, children);
130
+ };
131
+ }
132
+ });
133
+ var DropdownMenuItemsList = defineComponent({
134
+ name: "RpDropdownMenuItemsList",
135
+ props: {
136
+ context: contextProp,
137
+ items: {
138
+ type: Array,
139
+ required: true
140
+ },
141
+ parentPath: {
142
+ type: Array,
143
+ default: () => []
144
+ },
145
+ renderItem: renderItemProp
146
+ },
147
+ setup(props) {
148
+ return () => props.items.map((item, index) => {
149
+ const path = [...props.parentPath, index];
150
+ const hasSubmenu = hasItemSubmenu(item);
151
+ return h(DropdownMenuItemRow, {
152
+ key: `${getPathKey(path)}:${String(item.value)}`,
153
+ context: props.context,
154
+ disabled: Boolean(item.disabled),
155
+ focused: props.context.isItemFocused(path),
156
+ index,
157
+ item,
158
+ parentPath: props.parentPath,
159
+ renderItem: props.renderItem,
160
+ submenuOpen: hasSubmenu && props.context.isSubmenuOpen(path)
161
+ });
162
+ });
163
+ }
164
+ });
165
+ var DropdownMenuSubmenu = defineComponent({
166
+ name: "RpDropdownMenuSubmenu",
167
+ props: {
168
+ context: contextProp,
169
+ item: {
170
+ type: Object,
171
+ required: true
172
+ },
173
+ path: {
174
+ type: Array,
175
+ required: true
176
+ },
177
+ renderItem: renderItemProp
178
+ },
179
+ setup(props) {
180
+ return () => h("div", props.context.getSubmenuProps(props.item, props.path, true), [h(DropdownMenuItemsList, {
181
+ context: props.context,
182
+ items: props.item.children ?? [],
183
+ parentPath: props.path,
184
+ renderItem: props.renderItem
185
+ })]);
186
+ }
187
+ });
188
+ var dropdown_menu_items_default = defineComponent({
189
+ name: "RpDropdownMenuItems",
190
+ props: {
191
+ context: contextProp,
192
+ items: {
193
+ type: Array,
194
+ required: true
195
+ }
196
+ },
197
+ setup(props, { slots }) {
198
+ const renderItem = (slotProps) => slots.item?.(slotProps);
199
+ return () => h(DropdownMenuItemsList, {
200
+ context: props.context,
201
+ items: props.items,
202
+ renderItem
203
+ });
204
+ }
205
+ });
206
+ //#endregion
98
207
  //#region src/components/dropdown-menu/useDropdownMenuDisclosure.ts
99
208
  function useDropdownMenuDisclosure({ props, emit, rootRef, uncontrolledOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger }) {
100
209
  function setOpen(nextOpen) {
@@ -567,25 +676,25 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
567
676
  disabled,
568
677
  hasSubmenu,
569
678
  submenuOpen,
570
- props: getItemProps(item, path, focused, disabled),
571
- submenuProps: hasSubmenu ? getSubmenuProps(item, path) : void 0,
572
- slotProps: getItemSlotProps(item, path, focused, disabled),
573
- children: hasSubmenu ? getRenderedItems(item.children ?? [], path) : []
679
+ props: getItemProps(item, path, focused, disabled, submenuOpen),
680
+ submenuProps: submenuOpen ? getSubmenuProps(item, path, true) : void 0,
681
+ slotProps: getItemSlotProps(item, path, focused, disabled, submenuOpen),
682
+ children: submenuOpen ? getRenderedItems(item.children ?? [], path) : []
574
683
  };
575
684
  });
576
685
  }
577
- function getItemProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled)) {
686
+ function getItemProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled), submenuOpen) {
578
687
  const path = normalizePath(indexOrPath);
579
688
  const hasSubmenu = hasItemSubmenu(item);
580
- const submenuOpen = hasSubmenu && isSubmenuOpen(path);
689
+ const resolvedSubmenuOpen = submenuOpen ?? (hasSubmenu ? isSubmenuOpen(path) : false);
581
690
  return {
582
691
  id: getItemId(path),
583
692
  type: "button",
584
693
  role: "menuitem",
585
694
  tabindex: -1,
586
- class: getItemClass(item, focused, disabled, hasSubmenu, submenuOpen),
695
+ class: getItemClass(item, focused, disabled, hasSubmenu, resolvedSubmenuOpen),
587
696
  "aria-controls": hasSubmenu ? getSubmenuId(path) : void 0,
588
- "aria-expanded": hasSubmenu ? submenuOpen : void 0,
697
+ "aria-expanded": hasSubmenu ? resolvedSubmenuOpen : void 0,
589
698
  "aria-haspopup": hasSubmenu ? "menu" : void 0,
590
699
  "aria-disabled": disabled || void 0,
591
700
  "data-disabled": disabled || void 0,
@@ -595,21 +704,22 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
595
704
  onMouseenter: (event) => focusHoveredItem(item, path, event)
596
705
  };
597
706
  }
598
- function getSubmenuProps(item, path) {
707
+ function getSubmenuProps(item, path, submenuOpen = isSubmenuOpen(path)) {
599
708
  return {
600
709
  id: getSubmenuId(path),
601
710
  role: "menu",
602
711
  class: bem("rp-dropdown-menu__submenu", {
603
- open: isSubmenuOpen(path),
712
+ open: submenuOpen,
604
713
  "has-submenu": hasNestedItems(item.children ?? [])
605
714
  }),
606
715
  "aria-label": item.label,
607
716
  "aria-activedescendant": getMenuActiveDescendant(path)
608
717
  };
609
718
  }
610
- function getItemSlotProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled)) {
719
+ function getItemSlotProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled), submenuOpen) {
611
720
  const path = normalizePath(indexOrPath);
612
721
  const hasSubmenu = hasItemSubmenu(item);
722
+ const resolvedSubmenuOpen = submenuOpen ?? (hasSubmenu ? isSubmenuOpen(path) : false);
613
723
  return {
614
724
  item,
615
725
  index: path[path.length - 1] ?? -1,
@@ -618,7 +728,7 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
618
728
  focused,
619
729
  disabled,
620
730
  hasSubmenu,
621
- isSubmenuOpen: hasSubmenu && isSubmenuOpen(path),
731
+ isSubmenuOpen: resolvedSubmenuOpen,
622
732
  select: () => selectItem(item),
623
733
  openSubmenu: (focus = DEFAULT_FOCUS_TARGET) => openSubmenu(path, focus),
624
734
  closeSubmenu: () => closeSubmenu(path),
@@ -627,6 +737,13 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
627
737
  }
628
738
  return {
629
739
  renderedItems,
740
+ renderContext: {
741
+ isItemFocused,
742
+ isSubmenuOpen,
743
+ getItemProps,
744
+ getSubmenuProps,
745
+ getItemSlotProps
746
+ },
630
747
  getItemProps,
631
748
  getItemSlotProps
632
749
  };
@@ -768,7 +885,7 @@ function useDropdownMenu(props, emit = {}) {
768
885
  close,
769
886
  toggle
770
887
  }));
771
- const { renderedItems, getItemProps, getItemSlotProps } = useDropdownMenuRenderItems({
888
+ const { renderedItems, renderContext, getItemProps, getItemSlotProps } = useDropdownMenuRenderItems({
772
889
  items: visibleItems,
773
890
  getItemId,
774
891
  getSubmenuId,
@@ -790,6 +907,7 @@ function useDropdownMenu(props, emit = {}) {
790
907
  isEmpty,
791
908
  visibleItems,
792
909
  renderedItems,
910
+ renderContext,
793
911
  focusedIndex,
794
912
  focusedPath,
795
913
  activeDescendantId,
@@ -847,7 +965,7 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
847
965
  setup(__props, { emit: __emit }) {
848
966
  const props = __props;
849
967
  const emit = __emit;
850
- const { rootRef, menuRef, isVisible, isEmpty, renderedItems, rootClass, contentClass, contentProps, slotProps } = useDropdownMenu(props, {
968
+ const { rootRef, menuRef, isVisible, isEmpty, visibleItems, renderContext, rootClass, contentClass, contentProps, slotProps } = useDropdownMenu(props, {
851
969
  openChange: (open) => emit("update:open", open),
852
970
  select: (item) => emit("select", item)
853
971
  });
@@ -871,7 +989,10 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
871
989
  return n8;
872
990
  });
873
991
  setInsertionState(n21, null, 1);
874
- createComponent(unref(dropdown_menu_items_default), { items: () => unref(renderedItems) }, { "item": extend((itemSlotProps) => {
992
+ createComponent(unref(dropdown_menu_items_default), {
993
+ items: () => unref(visibleItems),
994
+ context: () => unref(renderContext)
995
+ }, { "item": extend((itemSlotProps) => {
875
996
  return [createSlot("item", { $: [() => itemSlotProps] }, () => {
876
997
  const n11 = t2();
877
998
  const x11 = txt(n11);
package/dist/field.css CHANGED
@@ -1,15 +1,15 @@
1
- .rp-field[data-v-0d027ead] {
2
- --_rp-field-danger: var(--rp-color-danger);
1
+ .rp-field[data-v-f9e37351] {
2
+ --_rp-field-danger: var(--rp-color-red-filled);
3
3
  display: grid;
4
4
  gap: var(--rp-spacing-1);
5
5
  min-width: 0;
6
6
  font-family: var(--rp-font-family);
7
7
  color: var(--rp-color-text);
8
8
  }
9
- html.dark .rp-field[data-v-0d027ead] {
10
- --_rp-field-danger: var(--rp-color-danger-fg);
9
+ html.dark .rp-field[data-v-f9e37351], [data-rp-color-scheme=dark] .rp-field[data-v-f9e37351] {
10
+ --_rp-field-danger: var(--rp-color-red-light-color);
11
11
  }
12
- .rp-field__label[data-v-0d027ead] {
12
+ .rp-field__label[data-v-f9e37351] {
13
13
  display: inline-flex;
14
14
  width: fit-content;
15
15
  align-items: center;
@@ -17,27 +17,24 @@ html.dark .rp-field[data-v-0d027ead] {
17
17
  color: var(--rp-color-text);
18
18
  font-size: var(--rp-font-size-sm);
19
19
  font-weight: var(--rp-font-weight-medium);
20
- line-height: var(--rp-line-height-normal);
20
+ line-height: var(--rp-line-height-md);
21
21
  }
22
- .rp-field__required[data-v-0d027ead] {
22
+ .rp-field__required[data-v-f9e37351] {
23
23
  color: var(--_rp-field-danger);
24
- line-height: var(--rp-line-height-none);
24
+ line-height: 1;
25
25
  }
26
- .rp-field__label + .rp-field__control[data-v-0d027ead] {
26
+ .rp-field__label + .rp-field__control[data-v-f9e37351] {
27
27
  margin-block-start: var(--rp-spacing-1);
28
28
  }
29
- .rp-field__control[data-v-0d027ead] {
29
+ .rp-field__control[data-v-f9e37351] {
30
30
  min-width: 0;
31
31
  }
32
- .rp-field__description[data-v-0d027ead], .rp-field__message[data-v-0d027ead] {
32
+ .rp-field__description[data-v-f9e37351] {
33
33
  margin: 0;
34
- color: var(--rp-color-text-secondary);
34
+ color: var(--rp-color-dimmed);
35
35
  font-size: var(--rp-font-size-sm);
36
- line-height: var(--rp-line-height-normal);
36
+ line-height: var(--rp-line-height-md);
37
37
  }
38
- .rp-field--invalid .rp-field__message[data-v-0d027ead] {
39
- color: var(--_rp-field-danger);
40
- }
41
- .rp-field--disabled .rp-field__label[data-v-0d027ead], .rp-field--disabled .rp-field__description[data-v-0d027ead], .rp-field--disabled .rp-field__message[data-v-0d027ead] {
42
- color: var(--rp-color-text-disabled);
38
+ .rp-field--disabled .rp-field__label[data-v-f9e37351], .rp-field--disabled .rp-field__description[data-v-f9e37351] {
39
+ color: var(--rp-color-disabled-color);
43
40
  }
package/dist/field.js CHANGED
@@ -21,14 +21,12 @@ function useField(props) {
21
21
  const controlId = computed(() => props.id ?? `${generatedId}-control`);
22
22
  const labelId = computed(() => `${controlId.value}-label`);
23
23
  const descriptionId = computed(() => `${controlId.value}-description`);
24
- const messageId = computed(() => `${controlId.value}-message`);
25
- const isInvalid = computed(() => Boolean(props.invalid || props.error));
26
- const messageText = computed(() => props.error || props.message);
24
+ const isInvalid = computed(() => Boolean(props.invalid));
27
25
  const hasLabel = computed(() => Boolean(props.label || slots.label));
28
26
  const hasDescription = computed(() => Boolean(props.description || slots.description));
29
- const hasMessage = computed(() => Boolean(messageText.value || slots.message));
27
+ const hasMessage = computed(() => Boolean(slots.message));
30
28
  const controlLabelledby = computed(() => hasLabel.value ? labelId.value : void 0);
31
- const controlDescribedby = computed(() => [hasDescription.value ? descriptionId.value : void 0, hasMessage.value ? messageId.value : void 0].filter(Boolean).join(" ") || void 0);
29
+ const controlDescribedby = computed(() => hasDescription.value ? descriptionId.value : void 0);
32
30
  const rootClass = computed(() => bem("rp-field", {
33
31
  disabled: props.disabled,
34
32
  required: props.required,
@@ -54,9 +52,7 @@ function useField(props) {
54
52
  controlId,
55
53
  labelId,
56
54
  descriptionId,
57
- messageId,
58
55
  isInvalid,
59
- messageText,
60
56
  hasLabel,
61
57
  hasDescription,
62
58
  hasMessage,
@@ -70,11 +66,10 @@ function useField(props) {
70
66
  //#endregion
71
67
  //#region src/components/field/field.vue?vue&type=script&setup=true&vapor=true&lang.ts
72
68
  var t0 = template(" ");
73
- var t1 = template("<span data-v-0d027ead class=rp-field__required aria-hidden=true>*", 2);
74
- var t2 = template("<label data-v-0d027ead class=rp-field__label>");
75
- var t3 = template("<p data-v-0d027ead class=rp-field__description>");
76
- var t4 = template("<p data-v-0d027ead class=rp-field__message>");
77
- var t5 = template("<div data-v-0d027ead><div data-v-0d027ead class=rp-field__control></div>", 1);
69
+ var t1 = template("<span data-v-f9e37351 class=rp-field__required aria-hidden=true>*", 2);
70
+ var t2 = template("<label data-v-f9e37351 class=rp-field__label>");
71
+ var t3 = template("<p data-v-f9e37351 class=rp-field__description>");
72
+ var t4 = template("<div data-v-f9e37351><div data-v-f9e37351 class=rp-field__control></div>", 1);
78
73
  delegateEvents("mousedown");
79
74
  //#endregion
80
75
  //#region src/components/field/field.vue
@@ -85,8 +80,6 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
85
80
  id: {},
86
81
  label: { default: "" },
87
82
  description: { default: "" },
88
- message: { default: "" },
89
- error: { default: "" },
90
83
  disabled: {
91
84
  type: Boolean,
92
85
  default: void 0
@@ -101,11 +94,11 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
101
94
  }
102
95
  },
103
96
  setup(__props) {
104
- const { controlId, labelId, descriptionId, messageId, isInvalid, messageText, hasLabel, hasDescription, hasMessage, controlLabelledby, controlDescribedby, rootClass, controlProps, focusControl } = useField(__props);
105
- const n23 = t5();
106
- const n10 = child(n23, 1);
107
- renderEffect(() => setClass(n23, unref(rootClass)));
108
- setInsertionState(n23, 0, 0);
97
+ const { controlId, labelId, descriptionId, isInvalid, hasLabel, hasDescription, hasMessage, controlLabelledby, controlDescribedby, rootClass, controlProps, focusControl } = useField(__props);
98
+ const n20 = t4();
99
+ const n10 = child(n20, 1);
100
+ renderEffect(() => setClass(n20, unref(rootClass)));
101
+ setInsertionState(n20, 0, 0);
109
102
  createIf(() => unref(hasLabel), () => {
110
103
  const n8 = t2();
111
104
  renderEffect(() => {
@@ -135,7 +128,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
135
128
  describedby: () => unref(controlDescribedby),
136
129
  controlProps: () => unref(controlProps)
137
130
  }, null, 1);
138
- setInsertionState(n23, null, 2);
131
+ setInsertionState(n20, null, 2);
139
132
  createIf(() => unref(hasDescription), () => {
140
133
  const n16 = t3();
141
134
  renderEffect(() => setProp(n16, "id", unref(descriptionId)));
@@ -147,23 +140,12 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
147
140
  }, 1);
148
141
  return n16;
149
142
  });
150
- setInsertionState(n23, null, 3);
143
+ setInsertionState(n20, null, 3);
151
144
  createIf(() => unref(hasMessage), () => {
152
- const n22 = t4();
153
- renderEffect(() => {
154
- setProp(n22, "id", unref(messageId));
155
- setProp(n22, "role", unref(isInvalid) ? "alert" : void 0);
156
- });
157
- setInsertionState(n22, null, 0);
158
- createSlot("message", null, () => {
159
- const n21 = t0();
160
- renderEffect(() => setText(n21, toDisplayString(unref(messageText))));
161
- return n21;
162
- }, 1);
163
- return n22;
145
+ return createSlot("message", null, null, 1);
164
146
  });
165
- return n23;
147
+ return n20;
166
148
  }
167
- }), [["__scopeId", "data-v-0d027ead"]]);
149
+ }), [["__scopeId", "data-v-f9e37351"]]);
168
150
  //#endregion
169
151
  export { field_default as t };