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.
- package/dist/accordion.css +10 -10
- package/dist/accordion.js +2 -2
- package/dist/alert.css +109 -0
- package/dist/alert.js +168 -0
- package/dist/aspect-ratio.css +17 -0
- package/dist/aspect-ratio.js +26 -0
- package/dist/avatar.css +97 -0
- package/dist/avatar.js +161 -0
- package/dist/badge.css +40 -115
- package/dist/badge.js +19 -16
- package/dist/base.css +609 -180
- package/dist/button-link.css +161 -0
- package/dist/button-link.js +108 -0
- package/dist/button.css +50 -229
- package/dist/button.js +7 -9
- package/dist/card.css +12 -12
- package/dist/check.js +12 -0
- package/dist/checkbox.css +16 -57
- package/dist/checkbox.js +14 -31
- package/dist/collapse.css +2 -2
- package/dist/collapse.js +1 -1
- package/dist/color-input.css +108 -0
- package/dist/color-input.js +349 -0
- package/dist/color-picker.css +304 -0
- package/dist/color-picker.js +797 -0
- package/dist/color-picker2.js +18 -0
- package/dist/color-swatch.css +50 -0
- package/dist/color-swatch.js +73 -0
- package/dist/color.js +190 -0
- package/dist/componentColors.js +206 -13
- package/dist/components/accordion/accordion-item.d.ts +4 -4
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/index.d.ts +4 -4
- package/dist/components/accordion/types.d.ts +1 -1
- package/dist/components/accordion/useAccordion.d.ts +1 -1
- package/dist/components/alert/alert.d.ts +30 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/types.d.ts +20 -0
- package/dist/components/alert/useAlertColor.d.ts +3 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/aspect-ratio/index.js +2 -0
- package/dist/components/aspect-ratio/types.d.ts +3 -0
- package/dist/components/avatar/avatar.d.ts +24 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/types.d.ts +20 -0
- package/dist/components/avatar/useAvatarColor.d.ts +3 -0
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/badge/index.d.ts +3 -3
- package/dist/components/badge/types.d.ts +3 -2
- package/dist/components/badge/useBadgeColor.d.ts +3 -8
- package/dist/components/button/button.d.ts +1 -1
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/button/types.d.ts +2 -1
- package/dist/components/button/useButtonColor.d.ts +3 -13
- package/dist/components/button-group/button-group.d.ts +1 -1
- package/dist/components/button-group/index.d.ts +2 -2
- package/dist/components/button-link/button-link.d.ts +27 -0
- package/dist/components/button-link/index.d.ts +2 -0
- package/dist/components/button-link/index.js +2 -0
- package/dist/components/button-link/types.d.ts +20 -0
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/card/index.d.ts +2 -2
- package/dist/components/checkbox/checkbox.d.ts +1 -1
- package/dist/components/checkbox/index.d.ts +2 -2
- package/dist/components/checkbox/types.d.ts +2 -1
- package/dist/components/checkbox/useCheckbox.d.ts +4 -6
- package/dist/components/collapse/collapse.d.ts +2 -2
- package/dist/components/collapse/index.d.ts +3 -3
- package/dist/components/collapse/useCollapse.d.ts +1 -1
- package/dist/components/color-input/color-input.d.ts +29 -0
- package/dist/components/color-input/index.d.ts +2 -0
- package/dist/components/color-input/index.js +2 -0
- package/dist/components/color-input/types.d.ts +35 -0
- package/dist/components/color-input/useColorInput.d.ts +27 -0
- package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
- package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
- package/dist/components/color-input/useColorInputValue.d.ts +8 -0
- package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
- package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
- package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
- package/dist/components/color-picker/color-picker.d.ts +23 -0
- package/dist/components/color-picker/index.d.ts +3 -0
- package/dist/components/color-picker/index.js +3 -0
- package/dist/components/color-picker/types.d.ts +39 -0
- package/dist/components/color-picker/useColorPickerDrag.d.ts +16 -0
- package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
- package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
- package/dist/components/color-swatch/color-swatch.d.ts +21 -0
- package/dist/components/color-swatch/index.d.ts +2 -0
- package/dist/components/color-swatch/index.js +2 -0
- package/dist/components/color-swatch/types.d.ts +6 -0
- package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
- package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +15 -6
- package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
- package/dist/components/dropdown-menu/index.d.ts +3 -3
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -10
- package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +3 -3
- package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +12 -4
- package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +3 -3
- package/dist/components/field/field.d.ts +2 -2
- package/dist/components/field/index.d.ts +2 -2
- package/dist/components/field/types.d.ts +0 -2
- package/dist/components/field/useField.d.ts +1 -3
- package/dist/components/icon-button/icon-button.d.ts +1 -1
- package/dist/components/icon-button/index.d.ts +2 -2
- package/dist/components/icon-button/types.d.ts +2 -1
- package/dist/components/input/index.d.ts +2 -2
- package/dist/components/input/input.d.ts +1 -1
- package/dist/components/input/types.d.ts +3 -0
- package/dist/components/input/useInput.d.ts +2 -2
- package/dist/components/modal/index.d.ts +2 -2
- package/dist/components/modal/modal.d.ts +1 -1
- package/dist/components/modal/types.d.ts +1 -1
- package/dist/components/modal/useModal.d.ts +1 -1
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-input/index.js +2 -0
- package/dist/components/number-input/number-input.d.ts +29 -0
- package/dist/components/number-input/types.d.ts +34 -0
- package/dist/components/number-input/useNumberInput.d.ts +31 -0
- package/dist/components/overlay/index.d.ts +2 -2
- package/dist/components/overlay/overlay.d.ts +1 -1
- package/dist/components/overlay/useOverlay.d.ts +1 -1
- package/dist/components/popover/index.d.ts +3 -2
- package/dist/components/popover/index.js +2 -1
- package/dist/components/popover/popover.d.ts +2 -2
- package/dist/components/popover/types.d.ts +3 -1
- package/dist/components/popover/usePopover.d.ts +2 -1
- package/dist/components/progress/index.d.ts +3 -3
- package/dist/components/progress/progress.d.ts +1 -1
- package/dist/components/progress/types.d.ts +2 -2
- package/dist/components/progress/useProgress.d.ts +2 -2
- package/dist/components/radio/index.d.ts +3 -3
- package/dist/components/radio/radio-group.d.ts +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/radio/types.d.ts +4 -1
- package/dist/components/radio/useRadio.d.ts +4 -6
- package/dist/components/select/index.d.ts +2 -2
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/select/types.d.ts +3 -0
- package/dist/components/select/useSelect.d.ts +2 -2
- package/dist/components/slider/index.d.ts +4 -3
- package/dist/components/slider/index.js +2 -2
- package/dist/components/slider/range-slider-tooltip.d.ts +34 -0
- package/dist/components/slider/range-slider.d.ts +37 -0
- package/dist/components/slider/slider.d.ts +1 -1
- package/dist/components/slider/sliderCore.d.ts +35 -0
- package/dist/components/slider/types.d.ts +15 -6
- package/dist/components/slider/useRangeSlider.d.ts +57 -0
- package/dist/components/slider/useRangeSliderPointer.d.ts +19 -0
- package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +36 -0
- package/dist/components/slider/useRangeSliderTooltipState.d.ts +23 -0
- package/dist/components/slider/useSlider.d.ts +11 -15
- package/dist/components/switch/index.d.ts +2 -2
- package/dist/components/switch/switch.d.ts +1 -1
- package/dist/components/switch/types.d.ts +1 -1
- package/dist/components/switch/useSwitch.d.ts +4 -5
- package/dist/components/tabs/index.d.ts +6 -6
- package/dist/components/tabs/tabs-content.d.ts +2 -2
- package/dist/components/tabs/tabs-list.d.ts +4 -4
- package/dist/components/tabs/tabs-trigger.d.ts +5 -5
- package/dist/components/tabs/tabs.d.ts +5 -5
- package/dist/components/tabs/useTabs.d.ts +1 -1
- package/dist/components/textarea/index.d.ts +2 -2
- package/dist/components/textarea/textarea.d.ts +1 -1
- package/dist/components/textarea/useTextarea.d.ts +2 -2
- package/dist/components/toast/defaults.d.ts +7 -0
- package/dist/components/toast/index.d.ts +7 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/toast-provider.d.ts +21 -0
- package/dist/components/toast/toast-viewport.d.ts +34 -0
- package/dist/components/toast/toast.d.ts +31 -0
- package/dist/components/toast/types.d.ts +106 -0
- package/dist/components/toast/useToast.d.ts +4 -0
- package/dist/components/toast/useToastColor.d.ts +3 -0
- package/dist/components/toast/useToastState.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts +2 -2
- package/dist/components/tooltip/tooltip.d.ts +2 -2
- package/dist/components/tooltip/types.d.ts +2 -1
- package/dist/components/tooltip/useTooltip.d.ts +3 -1
- package/dist/dropdown-menu.css +17 -17
- package/dist/dropdown-menu.js +160 -39
- package/dist/field.css +15 -18
- package/dist/field.js +17 -35
- package/dist/icon-button.css +57 -236
- package/dist/icon-button.js +5 -6
- package/dist/index.d.ts +31 -22
- package/dist/index.js +17 -4
- package/dist/input.css +40 -46
- package/dist/input.js +39 -21
- package/dist/minus.js +12 -0
- package/dist/modal.css +9 -9
- package/dist/modal.js +1 -1
- package/dist/number-input.css +86 -0
- package/dist/number-input.js +350 -0
- package/dist/overlay.css +5 -5
- package/dist/overlay.js +3 -3
- package/dist/popover.css +62 -29
- package/dist/popover.js +33 -19
- package/dist/popover2.js +17 -0
- package/dist/progress.css +9 -30
- package/dist/progress.js +3 -6
- package/dist/radio.css +34 -62
- package/dist/radio.js +28 -16
- package/dist/rafScheduler.js +34 -0
- package/dist/select.css +105 -61
- package/dist/select.js +12 -8
- package/dist/slider.css +719 -125
- package/dist/slider.js +1251 -149
- package/dist/switch.css +19 -44
- package/dist/switch.js +4 -5
- package/dist/tabs.css +36 -36
- package/dist/tabs.js +1 -1
- package/dist/textarea.css +33 -25
- package/dist/textarea.js +8 -2
- package/dist/toast.css +232 -0
- package/dist/toast.js +679 -0
- package/dist/tooltip.css +7 -35
- package/dist/tooltip.js +30 -18
- package/dist/useButtonColor.js +16 -14
- package/dist/utils/componentColors.d.ts +60 -0
- package/package.json +55 -15
- package/src/styles/_mixins.scss +25 -41
- package/src/styles/_tokens.scss +615 -182
- package/src/styles/_variables.scss +177 -49
package/dist/dropdown-menu.js
CHANGED
|
@@ -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(
|
|
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:
|
|
572
|
-
slotProps: getItemSlotProps(item, path, focused, disabled),
|
|
573
|
-
children:
|
|
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
|
|
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,
|
|
695
|
+
class: getItemClass(item, focused, disabled, hasSubmenu, resolvedSubmenuOpen),
|
|
587
696
|
"aria-controls": hasSubmenu ? getSubmenuId(path) : void 0,
|
|
588
|
-
"aria-expanded": hasSubmenu ?
|
|
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:
|
|
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:
|
|
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,
|
|
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), {
|
|
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-
|
|
2
|
-
--_rp-field-danger: var(--rp-color-
|
|
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-
|
|
10
|
-
--_rp-field-danger: var(--rp-color-
|
|
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-
|
|
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-
|
|
20
|
+
line-height: var(--rp-line-height-md);
|
|
21
21
|
}
|
|
22
|
-
.rp-field__required[data-v-
|
|
22
|
+
.rp-field__required[data-v-f9e37351] {
|
|
23
23
|
color: var(--_rp-field-danger);
|
|
24
|
-
line-height:
|
|
24
|
+
line-height: 1;
|
|
25
25
|
}
|
|
26
|
-
.rp-field__label + .rp-field__control[data-v-
|
|
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-
|
|
29
|
+
.rp-field__control[data-v-f9e37351] {
|
|
30
30
|
min-width: 0;
|
|
31
31
|
}
|
|
32
|
-
.rp-field__description[data-v-
|
|
32
|
+
.rp-field__description[data-v-f9e37351] {
|
|
33
33
|
margin: 0;
|
|
34
|
-
color: var(--rp-color-
|
|
34
|
+
color: var(--rp-color-dimmed);
|
|
35
35
|
font-size: var(--rp-font-size-sm);
|
|
36
|
-
line-height: var(--rp-line-height-
|
|
36
|
+
line-height: var(--rp-line-height-md);
|
|
37
37
|
}
|
|
38
|
-
.rp-field--
|
|
39
|
-
color: var(--
|
|
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
|
|
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(
|
|
27
|
+
const hasMessage = computed(() => Boolean(slots.message));
|
|
30
28
|
const controlLabelledby = computed(() => hasLabel.value ? labelId.value : void 0);
|
|
31
|
-
const controlDescribedby = computed(() =>
|
|
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-
|
|
74
|
-
var t2 = template("<label data-v-
|
|
75
|
-
var t3 = template("<p data-v-
|
|
76
|
-
var t4 = template("<
|
|
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,
|
|
105
|
-
const
|
|
106
|
-
const n10 = child(
|
|
107
|
-
renderEffect(() => setClass(
|
|
108
|
-
setInsertionState(
|
|
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(
|
|
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(
|
|
143
|
+
setInsertionState(n20, null, 3);
|
|
151
144
|
createIf(() => unref(hasMessage), () => {
|
|
152
|
-
|
|
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
|
|
147
|
+
return n20;
|
|
166
148
|
}
|
|
167
|
-
}), [["__scopeId", "data-v-
|
|
149
|
+
}), [["__scopeId", "data-v-f9e37351"]]);
|
|
168
150
|
//#endregion
|
|
169
151
|
export { field_default as t };
|