ropav 0.0.6 → 0.0.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.
- package/dist/_plugin-vue_export-helper.js +1 -11
- package/dist/accordion.css +112 -0
- package/dist/accordion.js +358 -0
- package/dist/badge.css +169 -0
- package/dist/badge.js +101 -0
- package/dist/bem.js +9 -0
- package/dist/button-group.css +8 -8
- package/dist/button-group.js +2 -3
- package/dist/button.js +3 -4
- package/dist/card.css +40 -20
- package/dist/card.js +71 -39
- package/dist/checkbox.js +2 -3
- package/dist/collapse.css +32 -0
- package/dist/collapse.js +62 -0
- package/dist/componentColors.js +0 -2
- package/dist/components/accordion/accordion-item.d.ts +40 -0
- package/dist/components/accordion/accordion.d.ts +23 -0
- package/dist/components/accordion/index.d.ts +4 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/accordion/types.d.ts +100 -0
- package/dist/components/accordion/useAccordion.d.ts +3 -0
- package/dist/components/badge/badge.d.ts +25 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/types.d.ts +16 -0
- package/dist/components/badge/useBadgeColor.d.ts +8 -0
- package/dist/components/card/card.d.ts +4 -0
- package/dist/components/card/types.d.ts +4 -0
- package/dist/components/collapse/collapse.d.ts +36 -0
- package/dist/components/collapse/index.d.ts +3 -0
- package/dist/components/collapse/index.js +3 -0
- package/dist/components/collapse/types.d.ts +74 -0
- package/dist/components/collapse/useCollapse.d.ts +2 -0
- package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +16 -0
- package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +23 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +26 -0
- package/dist/components/dropdown-menu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dropdown-menu/types.d.ts +104 -0
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +32 -0
- package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +30 -0
- package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +28 -0
- package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +24 -0
- package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +51 -0
- package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +16 -0
- package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +25 -0
- package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +18 -0
- package/dist/components/field/field.d.ts +2 -2
- package/dist/components/field/useField.d.ts +17 -0
- package/dist/components/input/useInput.d.ts +8 -0
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/index.js +2 -0
- package/dist/components/modal/modal.d.ts +42 -0
- package/dist/components/modal/types.d.ts +31 -0
- package/dist/components/modal/useModal.d.ts +29 -0
- package/dist/components/overlay/index.d.ts +2 -0
- package/dist/components/overlay/index.js +2 -0
- package/dist/components/overlay/overlay.d.ts +19 -0
- package/dist/components/overlay/types.d.ts +12 -0
- package/dist/components/overlay/useOverlay.d.ts +7 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/popover.d.ts +43 -0
- package/dist/components/popover/types.d.ts +43 -0
- package/dist/components/popover/usePopover.d.ts +23 -0
- package/dist/components/tabs/index.d.ts +6 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/tabs-content.d.ts +24 -0
- package/dist/components/tabs/tabs-list.d.ts +26 -0
- package/dist/components/tabs/tabs-trigger.d.ts +29 -0
- package/dist/components/tabs/tabs.d.ts +31 -0
- package/dist/components/tabs/types.d.ts +160 -0
- package/dist/components/tabs/useTabs.d.ts +5 -0
- package/dist/dropdown-menu.css +159 -0
- package/dist/dropdown-menu.js +901 -0
- package/dist/field.css +11 -8
- package/dist/field.js +93 -52
- package/dist/icon-button.css +1 -1
- package/dist/icon-button.js +3 -4
- package/dist/index.d.ts +8 -0
- package/dist/index.js +12 -1
- package/dist/input.css +25 -25
- package/dist/input.js +57 -40
- package/dist/modal.css +134 -0
- package/dist/modal.js +427 -0
- package/dist/overlay.css +28 -0
- package/dist/overlay.js +82 -0
- package/dist/popover.css +75 -0
- package/dist/popover.js +377 -0
- package/dist/progress.js +2 -3
- package/dist/radio.js +4 -11
- package/dist/select.js +8 -39
- package/dist/slider.js +2 -3
- package/dist/switch.js +2 -3
- package/dist/tabs.css +279 -0
- package/dist/tabs.js +513 -0
- package/dist/textarea.js +2 -3
- package/dist/tooltip.js +2 -3
- package/dist/useButtonColor.js +0 -2
- package/dist/useClickOutside.js +24 -0
- package/dist/useCollapse.js +92 -0
- package/dist/useControlState.js +0 -2
- package/dist/useRequiredInject.js +9 -0
- package/dist/x.js +12 -0
- package/package.json +40 -4
- package/dist/_plugin-vue_export-helper.js.map +0 -1
- package/dist/button-group.js.map +0 -1
- package/dist/button.js.map +0 -1
- package/dist/card.js.map +0 -1
- package/dist/checkbox.js.map +0 -1
- package/dist/componentColors.js.map +0 -1
- package/dist/field.js.map +0 -1
- package/dist/icon-button.js.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/progress.js.map +0 -1
- package/dist/radio.js.map +0 -1
- package/dist/select.js.map +0 -1
- package/dist/slider.js.map +0 -1
- package/dist/switch.js.map +0 -1
- package/dist/textarea.js.map +0 -1
- package/dist/tooltip.js.map +0 -1
- package/dist/useButtonColor.js.map +0 -1
- package/dist/useControlState.js.map +0 -1
package/dist/field.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.rp-field[data-v-
|
|
1
|
+
.rp-field[data-v-0d027ead] {
|
|
2
2
|
--_rp-field-danger: var(--rp-color-danger);
|
|
3
3
|
display: grid;
|
|
4
4
|
gap: var(--rp-spacing-1);
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
font-family: var(--rp-font-family);
|
|
7
7
|
color: var(--rp-color-text);
|
|
8
8
|
}
|
|
9
|
-
html.dark .rp-field[data-v-
|
|
9
|
+
html.dark .rp-field[data-v-0d027ead] {
|
|
10
10
|
--_rp-field-danger: var(--rp-color-danger-fg);
|
|
11
11
|
}
|
|
12
|
-
.rp-field__label[data-v-
|
|
12
|
+
.rp-field__label[data-v-0d027ead] {
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
width: fit-content;
|
|
15
15
|
align-items: center;
|
|
@@ -19,22 +19,25 @@ html.dark .rp-field[data-v-b8c3dcbe] {
|
|
|
19
19
|
font-weight: var(--rp-font-weight-medium);
|
|
20
20
|
line-height: var(--rp-line-height-normal);
|
|
21
21
|
}
|
|
22
|
-
.rp-field__required[data-v-
|
|
22
|
+
.rp-field__required[data-v-0d027ead] {
|
|
23
23
|
color: var(--_rp-field-danger);
|
|
24
24
|
line-height: var(--rp-line-height-none);
|
|
25
25
|
}
|
|
26
|
-
.rp-field__control[data-v-
|
|
26
|
+
.rp-field__label + .rp-field__control[data-v-0d027ead] {
|
|
27
|
+
margin-block-start: var(--rp-spacing-1);
|
|
28
|
+
}
|
|
29
|
+
.rp-field__control[data-v-0d027ead] {
|
|
27
30
|
min-width: 0;
|
|
28
31
|
}
|
|
29
|
-
.rp-field__description[data-v-
|
|
32
|
+
.rp-field__description[data-v-0d027ead], .rp-field__message[data-v-0d027ead] {
|
|
30
33
|
margin: 0;
|
|
31
34
|
color: var(--rp-color-text-secondary);
|
|
32
35
|
font-size: var(--rp-font-size-sm);
|
|
33
36
|
line-height: var(--rp-line-height-normal);
|
|
34
37
|
}
|
|
35
|
-
.rp-field--invalid .rp-field__message[data-v-
|
|
38
|
+
.rp-field--invalid .rp-field__message[data-v-0d027ead] {
|
|
36
39
|
color: var(--_rp-field-danger);
|
|
37
40
|
}
|
|
38
|
-
.rp-field--disabled .rp-field__label[data-v-
|
|
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] {
|
|
39
42
|
color: var(--rp-color-text-disabled);
|
|
40
43
|
}
|
package/dist/field.js
CHANGED
|
@@ -1,13 +1,81 @@
|
|
|
1
1
|
import './field.css';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { t as bem } from "./bem.js";
|
|
3
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
4
|
+
import { child, computed, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, renderEffect, setClass, setInsertionState, setProp, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
|
|
5
|
+
//#region src/components/field/useField.ts
|
|
6
|
+
var INTERACTIVE_LABEL_SELECTOR = [
|
|
7
|
+
"button",
|
|
8
|
+
"a[href]",
|
|
9
|
+
"input",
|
|
10
|
+
"select",
|
|
11
|
+
"textarea",
|
|
12
|
+
"[contenteditable=\"true\"]",
|
|
13
|
+
"[tabindex]:not([tabindex=\"-1\"])"
|
|
14
|
+
].join(",");
|
|
15
|
+
function isInteractiveLabelTarget(target) {
|
|
16
|
+
return Boolean(target.closest(INTERACTIVE_LABEL_SELECTOR));
|
|
17
|
+
}
|
|
18
|
+
function useField(props) {
|
|
19
|
+
const slots = useSlots();
|
|
20
|
+
const generatedId = useId();
|
|
21
|
+
const controlId = computed(() => props.id ?? `${generatedId}-control`);
|
|
22
|
+
const labelId = computed(() => `${controlId.value}-label`);
|
|
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);
|
|
27
|
+
const hasLabel = computed(() => Boolean(props.label || slots.label));
|
|
28
|
+
const hasDescription = computed(() => Boolean(props.description || slots.description));
|
|
29
|
+
const hasMessage = computed(() => Boolean(messageText.value || slots.message));
|
|
30
|
+
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);
|
|
32
|
+
const rootClass = computed(() => bem("rp-field", {
|
|
33
|
+
disabled: props.disabled,
|
|
34
|
+
required: props.required,
|
|
35
|
+
invalid: isInvalid.value
|
|
36
|
+
}));
|
|
37
|
+
const controlProps = computed(() => ({
|
|
38
|
+
id: controlId.value,
|
|
39
|
+
disabled: props.disabled || void 0,
|
|
40
|
+
required: props.required || void 0,
|
|
41
|
+
invalid: isInvalid.value || void 0,
|
|
42
|
+
labelledby: controlLabelledby.value,
|
|
43
|
+
describedby: controlDescribedby.value
|
|
44
|
+
}));
|
|
45
|
+
function focusControl(e) {
|
|
46
|
+
if (props.disabled) return;
|
|
47
|
+
const target = e.target;
|
|
48
|
+
if (target instanceof Element && isInteractiveLabelTarget(target)) return;
|
|
49
|
+
const label = e.currentTarget;
|
|
50
|
+
const control = label instanceof HTMLLabelElement ? label.control ?? label.ownerDocument.getElementById(controlId.value) : void 0;
|
|
51
|
+
if (control instanceof HTMLElement) control.focus();
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
controlId,
|
|
55
|
+
labelId,
|
|
56
|
+
descriptionId,
|
|
57
|
+
messageId,
|
|
58
|
+
isInvalid,
|
|
59
|
+
messageText,
|
|
60
|
+
hasLabel,
|
|
61
|
+
hasDescription,
|
|
62
|
+
hasMessage,
|
|
63
|
+
controlLabelledby,
|
|
64
|
+
controlDescribedby,
|
|
65
|
+
rootClass,
|
|
66
|
+
controlProps,
|
|
67
|
+
focusControl
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
4
71
|
//#region src/components/field/field.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
5
72
|
var t0 = template(" ");
|
|
6
|
-
var t1 = template("<span data-v-
|
|
7
|
-
var t2 = template("<label data-v-
|
|
8
|
-
var t3 = template("<p data-v-
|
|
9
|
-
var t4 = template("<p data-v-
|
|
10
|
-
var t5 = template("<div data-v-
|
|
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);
|
|
78
|
+
delegateEvents("mousedown");
|
|
11
79
|
//#endregion
|
|
12
80
|
//#region src/components/field/field.vue
|
|
13
81
|
var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
@@ -33,42 +101,16 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
33
101
|
}
|
|
34
102
|
},
|
|
35
103
|
setup(__props) {
|
|
36
|
-
const
|
|
37
|
-
const slots = useSlots();
|
|
38
|
-
const generatedId = useId();
|
|
39
|
-
const controlId = computed(() => props.id ?? `${generatedId}-control`);
|
|
40
|
-
const labelId = computed(() => `${controlId.value}-label`);
|
|
41
|
-
const descriptionId = computed(() => `${controlId.value}-description`);
|
|
42
|
-
const messageId = computed(() => `${controlId.value}-message`);
|
|
43
|
-
const isInvalid = computed(() => Boolean(props.invalid || props.error));
|
|
44
|
-
const messageText = computed(() => props.error || props.message);
|
|
45
|
-
const hasLabel = computed(() => Boolean(props.label || slots.label));
|
|
46
|
-
const hasDescription = computed(() => Boolean(props.description || slots.description));
|
|
47
|
-
const hasMessage = computed(() => Boolean(messageText.value || slots.message));
|
|
48
|
-
const controlLabelledby = computed(() => hasLabel.value ? labelId.value : void 0);
|
|
49
|
-
const controlDescribedby = computed(() => [hasDescription.value ? descriptionId.value : void 0, hasMessage.value ? messageId.value : void 0].filter(Boolean).join(" ") || void 0);
|
|
50
|
-
const rootClass = computed(() => bem("rp-field", {
|
|
51
|
-
disabled: props.disabled,
|
|
52
|
-
required: props.required,
|
|
53
|
-
invalid: isInvalid.value
|
|
54
|
-
}));
|
|
55
|
-
const controlProps = computed(() => ({
|
|
56
|
-
id: controlId.value,
|
|
57
|
-
disabled: props.disabled || void 0,
|
|
58
|
-
required: props.required || void 0,
|
|
59
|
-
invalid: isInvalid.value || void 0,
|
|
60
|
-
labelledby: controlLabelledby.value,
|
|
61
|
-
describedby: controlDescribedby.value
|
|
62
|
-
}));
|
|
104
|
+
const { controlId, labelId, descriptionId, messageId, isInvalid, messageText, hasLabel, hasDescription, hasMessage, controlLabelledby, controlDescribedby, rootClass, controlProps, focusControl } = useField(__props);
|
|
63
105
|
const n23 = t5();
|
|
64
106
|
const n10 = child(n23, 1);
|
|
65
|
-
renderEffect(() => setClass(n23, rootClass
|
|
107
|
+
renderEffect(() => setClass(n23, unref(rootClass)));
|
|
66
108
|
setInsertionState(n23, 0, 0);
|
|
67
|
-
createIf(() => hasLabel
|
|
109
|
+
createIf(() => unref(hasLabel), () => {
|
|
68
110
|
const n8 = t2();
|
|
69
111
|
renderEffect(() => {
|
|
70
|
-
setProp(n8, "id", labelId
|
|
71
|
-
setProp(n8, "for", controlId
|
|
112
|
+
setProp(n8, "id", unref(labelId));
|
|
113
|
+
setProp(n8, "for", unref(controlId));
|
|
72
114
|
});
|
|
73
115
|
setInsertionState(n8, null, 0);
|
|
74
116
|
createSlot("label", null, () => {
|
|
@@ -80,22 +122,23 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
80
122
|
createIf(() => __props.required, () => {
|
|
81
123
|
return t1();
|
|
82
124
|
});
|
|
125
|
+
n8.$evtmousedown = createInvoker((e) => unref(focusControl)(e));
|
|
83
126
|
return n8;
|
|
84
127
|
});
|
|
85
128
|
setInsertionState(n10, null, 0);
|
|
86
129
|
createSlot("default", {
|
|
87
|
-
id: () => controlId
|
|
130
|
+
id: () => unref(controlId),
|
|
88
131
|
disabled: () => __props.disabled || void 0,
|
|
89
132
|
required: () => __props.required || void 0,
|
|
90
|
-
invalid: () => isInvalid
|
|
91
|
-
labelledby: () => controlLabelledby
|
|
92
|
-
describedby: () => controlDescribedby
|
|
93
|
-
controlProps: () => controlProps
|
|
133
|
+
invalid: () => unref(isInvalid) || void 0,
|
|
134
|
+
labelledby: () => unref(controlLabelledby),
|
|
135
|
+
describedby: () => unref(controlDescribedby),
|
|
136
|
+
controlProps: () => unref(controlProps)
|
|
94
137
|
}, null, 1);
|
|
95
138
|
setInsertionState(n23, null, 2);
|
|
96
|
-
createIf(() => hasDescription
|
|
139
|
+
createIf(() => unref(hasDescription), () => {
|
|
97
140
|
const n16 = t3();
|
|
98
|
-
renderEffect(() => setProp(n16, "id", descriptionId
|
|
141
|
+
renderEffect(() => setProp(n16, "id", unref(descriptionId)));
|
|
99
142
|
setInsertionState(n16, null, 0);
|
|
100
143
|
createSlot("description", null, () => {
|
|
101
144
|
const n15 = t0();
|
|
@@ -105,24 +148,22 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
105
148
|
return n16;
|
|
106
149
|
});
|
|
107
150
|
setInsertionState(n23, null, 3);
|
|
108
|
-
createIf(() => hasMessage
|
|
151
|
+
createIf(() => unref(hasMessage), () => {
|
|
109
152
|
const n22 = t4();
|
|
110
153
|
renderEffect(() => {
|
|
111
|
-
setProp(n22, "id", messageId
|
|
112
|
-
setProp(n22, "role", isInvalid
|
|
154
|
+
setProp(n22, "id", unref(messageId));
|
|
155
|
+
setProp(n22, "role", unref(isInvalid) ? "alert" : void 0);
|
|
113
156
|
});
|
|
114
157
|
setInsertionState(n22, null, 0);
|
|
115
158
|
createSlot("message", null, () => {
|
|
116
159
|
const n21 = t0();
|
|
117
|
-
renderEffect(() => setText(n21, toDisplayString(messageText
|
|
160
|
+
renderEffect(() => setText(n21, toDisplayString(unref(messageText))));
|
|
118
161
|
return n21;
|
|
119
162
|
}, 1);
|
|
120
163
|
return n22;
|
|
121
164
|
});
|
|
122
165
|
return n23;
|
|
123
166
|
}
|
|
124
|
-
}), [["__scopeId", "data-v-
|
|
167
|
+
}), [["__scopeId", "data-v-0d027ead"]]);
|
|
125
168
|
//#endregion
|
|
126
169
|
export { field_default as t };
|
|
127
|
-
|
|
128
|
-
//# sourceMappingURL=field.js.map
|
package/dist/icon-button.css
CHANGED
package/dist/icon-button.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import './icon-button.css';
|
|
2
|
-
import {
|
|
2
|
+
import { t as bem } from "./bem.js";
|
|
3
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
3
4
|
import { r as isComponentPresetColor } from "./componentColors.js";
|
|
4
|
-
import { n as
|
|
5
|
+
import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
|
|
5
6
|
import { computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, template, unref } from "vue";
|
|
6
7
|
//#region src/components/icon-button/icon-button.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
7
8
|
var t0 = template("<span data-v-7005752e class=rp-icon-button__icon aria-hidden=true>");
|
|
@@ -63,5 +64,3 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
63
64
|
}), [["__scopeId", "data-v-7005752e"]]);
|
|
64
65
|
//#endregion
|
|
65
66
|
export { icon_button_default as t };
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=icon-button.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
export * from './components/accordion';
|
|
2
|
+
export * from './components/badge';
|
|
1
3
|
export * from './components/button';
|
|
2
4
|
export * from './components/button-group';
|
|
3
5
|
export * from './components/card';
|
|
4
6
|
export * from './components/checkbox';
|
|
7
|
+
export * from './components/collapse';
|
|
8
|
+
export * from './components/dropdown-menu';
|
|
5
9
|
export * from './components/field';
|
|
6
10
|
export * from './components/icon-button';
|
|
7
11
|
export * from './components/input';
|
|
12
|
+
export * from './components/modal';
|
|
13
|
+
export * from './components/overlay';
|
|
14
|
+
export * from './components/popover';
|
|
8
15
|
export * from './components/progress';
|
|
9
16
|
export * from './components/radio';
|
|
10
17
|
export * from './components/select';
|
|
11
18
|
export * from './components/slider';
|
|
12
19
|
export * from './components/switch';
|
|
20
|
+
export * from './components/tabs';
|
|
13
21
|
export * from './components/textarea';
|
|
14
22
|
export * from './components/tooltip';
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
|
+
import { t as useCollapse } from "./useCollapse.js";
|
|
2
|
+
import { i as useAccordionItem, n as accordion_default, r as useAccordion, t as accordion_item_default } from "./accordion.js";
|
|
3
|
+
import { a as badge_default, i as badgeVariants, n as badgeRadiuses, r as badgeSizes, t as badgeColors } from "./badge.js";
|
|
1
4
|
import { t as button_default } from "./button.js";
|
|
2
5
|
import { t as button_group_default } from "./button-group.js";
|
|
3
6
|
import { t as card_default } from "./card.js";
|
|
4
7
|
import { t as checkbox_default } from "./checkbox.js";
|
|
8
|
+
import { t as collapse_default } from "./collapse.js";
|
|
9
|
+
import { n as useDropdownMenu, t as dropdown_menu_default } from "./dropdown-menu.js";
|
|
5
10
|
import { t as field_default } from "./field.js";
|
|
6
11
|
import { t as icon_button_default } from "./icon-button.js";
|
|
12
|
+
import "./components/icon-button/index.js";
|
|
7
13
|
import { t as input_default } from "./input.js";
|
|
14
|
+
import { t as overlay_default } from "./overlay.js";
|
|
15
|
+
import { t as modal_default } from "./modal.js";
|
|
16
|
+
import "./components/overlay/index.js";
|
|
17
|
+
import { t as popover_default } from "./popover.js";
|
|
8
18
|
import { i as progress_default, n as progressRadiuses, r as progressSizes, t as progressColors } from "./progress.js";
|
|
9
19
|
import { n as radio_default, t as radio_group_default } from "./radio.js";
|
|
10
20
|
import { t as select_default } from "./select.js";
|
|
11
21
|
import { t as tooltip_default } from "./tooltip.js";
|
|
12
22
|
import { i as sliderSizes, n as sliderColors, r as sliderOrientations, t as slider_default } from "./slider.js";
|
|
13
23
|
import { t as switch_default } from "./switch.js";
|
|
24
|
+
import { a as useTabs, c as useTabsTrigger, i as tabs_default, n as tabs_list_default, o as useTabsContent, r as tabs_content_default, s as useTabsList, t as tabs_trigger_default } from "./tabs.js";
|
|
14
25
|
import { t as textarea_default } from "./textarea.js";
|
|
15
26
|
import "./components/tooltip/index.js";
|
|
16
|
-
export { button_default as Button, button_group_default as ButtonGroup, card_default as Card, checkbox_default as Checkbox, field_default as Field, icon_button_default as IconButton, input_default as Input, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, select_default as Select, slider_default as Slider, switch_default as Switch, textarea_default as Textarea, tooltip_default as Tooltip, progressColors, progressRadiuses, progressSizes, sliderColors, sliderOrientations, sliderSizes };
|
|
27
|
+
export { accordion_default as Accordion, accordion_item_default as AccordionItem, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, dropdown_menu_default as DropdownMenu, field_default as Field, icon_button_default as IconButton, input_default as Input, modal_default as Modal, overlay_default as Overlay, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, textarea_default as Textarea, tooltip_default as Tooltip, badgeColors, badgeRadiuses, badgeSizes, badgeVariants, progressColors, progressRadiuses, progressSizes, sliderColors, sliderOrientations, sliderSizes, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useTabs, useTabsContent, useTabsList, useTabsTrigger };
|
package/dist/input.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.rp-input[data-v-
|
|
1
|
+
.rp-input[data-v-e5ad32a7] {
|
|
2
2
|
--_rp-input-height: var(--rp-size-control-md);
|
|
3
3
|
--_rp-input-padding-x: var(--rp-spacing-3);
|
|
4
4
|
--_rp-input-font-size: var(--rp-font-size-base);
|
|
@@ -19,87 +19,87 @@
|
|
|
19
19
|
cursor: text;
|
|
20
20
|
transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
|
|
21
21
|
}
|
|
22
|
-
.rp-input[data-v-
|
|
22
|
+
.rp-input[data-v-e5ad32a7]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
|
|
23
23
|
border-color: var(--rp-color-control-border-hover);
|
|
24
24
|
}
|
|
25
|
-
.rp-input[data-v-
|
|
25
|
+
.rp-input[data-v-e5ad32a7]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
|
|
26
26
|
border-color: var(--rp-color-control-border-focus);
|
|
27
27
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
|
|
28
28
|
}
|
|
29
|
-
.rp-input[data-v-
|
|
29
|
+
.rp-input[data-v-e5ad32a7] {
|
|
30
30
|
height: var(--_rp-input-height);
|
|
31
31
|
padding: 0 var(--_rp-input-padding-x);
|
|
32
32
|
font-size: var(--_rp-input-font-size);
|
|
33
33
|
border-radius: var(--_rp-input-radius);
|
|
34
34
|
}
|
|
35
|
-
.rp-input--size-xs[data-v-
|
|
35
|
+
.rp-input--size-xs[data-v-e5ad32a7] {
|
|
36
36
|
--_rp-input-height: calc(var(--rp-size-control-sm) - var(--rp-spacing-1));
|
|
37
37
|
--_rp-input-padding-x: var(--rp-spacing-1);
|
|
38
38
|
--_rp-input-font-size: var(--rp-font-size-xs);
|
|
39
39
|
}
|
|
40
|
-
.rp-input--size-sm[data-v-
|
|
40
|
+
.rp-input--size-sm[data-v-e5ad32a7] {
|
|
41
41
|
--_rp-input-height: var(--rp-size-control-sm);
|
|
42
42
|
--_rp-input-padding-x: var(--rp-spacing-2);
|
|
43
43
|
--_rp-input-font-size: var(--rp-font-size-sm);
|
|
44
44
|
}
|
|
45
|
-
.rp-input--size-md[data-v-
|
|
45
|
+
.rp-input--size-md[data-v-e5ad32a7] {
|
|
46
46
|
--_rp-input-height: var(--rp-size-control-md);
|
|
47
47
|
--_rp-input-padding-x: var(--rp-spacing-3);
|
|
48
48
|
--_rp-input-font-size: var(--rp-font-size-base);
|
|
49
49
|
}
|
|
50
|
-
.rp-input--size-lg[data-v-
|
|
50
|
+
.rp-input--size-lg[data-v-e5ad32a7] {
|
|
51
51
|
--_rp-input-height: var(--rp-size-control-lg);
|
|
52
52
|
--_rp-input-padding-x: var(--rp-spacing-4);
|
|
53
53
|
--_rp-input-font-size: var(--rp-font-size-lg);
|
|
54
54
|
}
|
|
55
|
-
.rp-input--size-xl[data-v-
|
|
55
|
+
.rp-input--size-xl[data-v-e5ad32a7] {
|
|
56
56
|
--_rp-input-height: calc(var(--rp-size-control-lg) + var(--rp-spacing-2));
|
|
57
57
|
--_rp-input-padding-x: var(--rp-spacing-5);
|
|
58
58
|
--_rp-input-font-size: var(--rp-font-size-lg);
|
|
59
59
|
}
|
|
60
|
-
.rp-input--radius-xs[data-v-
|
|
60
|
+
.rp-input--radius-xs[data-v-e5ad32a7] {
|
|
61
61
|
--_rp-input-radius: var(--rp-radius-xs);
|
|
62
62
|
}
|
|
63
|
-
.rp-input--radius-sm[data-v-
|
|
63
|
+
.rp-input--radius-sm[data-v-e5ad32a7] {
|
|
64
64
|
--_rp-input-radius: var(--rp-radius-sm);
|
|
65
65
|
}
|
|
66
|
-
.rp-input--radius-md[data-v-
|
|
66
|
+
.rp-input--radius-md[data-v-e5ad32a7] {
|
|
67
67
|
--_rp-input-radius: var(--rp-radius-md);
|
|
68
68
|
}
|
|
69
|
-
.rp-input--radius-lg[data-v-
|
|
69
|
+
.rp-input--radius-lg[data-v-e5ad32a7] {
|
|
70
70
|
--_rp-input-radius: var(--rp-radius-lg);
|
|
71
71
|
}
|
|
72
|
-
.rp-input--radius-xl[data-v-
|
|
72
|
+
.rp-input--radius-xl[data-v-e5ad32a7] {
|
|
73
73
|
--_rp-input-radius: var(--rp-radius-xl);
|
|
74
74
|
}
|
|
75
|
-
html.dark .rp-input[data-v-
|
|
75
|
+
html.dark .rp-input[data-v-e5ad32a7] {
|
|
76
76
|
--_rp-input-valid-border: var(--rp-color-success-fg);
|
|
77
77
|
--_rp-input-valid-ring: color-mix(in srgb, var(--rp-color-success-fg) 32%, transparent);
|
|
78
78
|
--_rp-input-invalid-border: var(--rp-color-danger-fg);
|
|
79
79
|
--_rp-input-invalid-ring: color-mix(in srgb, var(--rp-color-danger-fg) 32%, transparent);
|
|
80
80
|
}
|
|
81
|
-
.rp-input--disabled[data-v-
|
|
81
|
+
.rp-input--disabled[data-v-e5ad32a7] {
|
|
82
82
|
opacity: var(--rp-opacity-disabled);
|
|
83
83
|
cursor: not-allowed;
|
|
84
84
|
}
|
|
85
|
-
.rp-input--valid[data-v-
|
|
85
|
+
.rp-input--valid[data-v-e5ad32a7] {
|
|
86
86
|
border-color: var(--_rp-input-valid-border);
|
|
87
87
|
}
|
|
88
|
-
.rp-input--valid[data-v-
|
|
88
|
+
.rp-input--valid[data-v-e5ad32a7]:focus-within:not(.rp-input--disabled) {
|
|
89
89
|
border-color: var(--_rp-input-valid-border);
|
|
90
90
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-valid-ring);
|
|
91
91
|
}
|
|
92
|
-
.rp-input--invalid[data-v-
|
|
92
|
+
.rp-input--invalid[data-v-e5ad32a7] {
|
|
93
93
|
border-color: var(--_rp-input-invalid-border);
|
|
94
94
|
}
|
|
95
|
-
.rp-input--invalid[data-v-
|
|
95
|
+
.rp-input--invalid[data-v-e5ad32a7]:focus-within:not(.rp-input--disabled) {
|
|
96
96
|
border-color: var(--_rp-input-invalid-border);
|
|
97
97
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-invalid-ring);
|
|
98
98
|
}
|
|
99
|
-
.rp-input--readonly[data-v-
|
|
99
|
+
.rp-input--readonly[data-v-e5ad32a7] {
|
|
100
100
|
background-color: var(--rp-color-control-readonly-bg);
|
|
101
101
|
}
|
|
102
|
-
.rp-input__native[data-v-
|
|
102
|
+
.rp-input__native[data-v-e5ad32a7] {
|
|
103
103
|
box-sizing: border-box;
|
|
104
104
|
flex: 1;
|
|
105
105
|
width: 100%;
|
|
@@ -113,13 +113,13 @@ html.dark .rp-input[data-v-fedf15e7] {
|
|
|
113
113
|
color: var(--rp-color-control-fg);
|
|
114
114
|
line-height: var(--rp-line-height-none);
|
|
115
115
|
}
|
|
116
|
-
.rp-input__native[data-v-
|
|
116
|
+
.rp-input__native[data-v-e5ad32a7]::placeholder {
|
|
117
117
|
color: var(--rp-color-control-placeholder);
|
|
118
118
|
}
|
|
119
|
-
.rp-input__native[data-v-
|
|
119
|
+
.rp-input__native[data-v-e5ad32a7]:disabled {
|
|
120
120
|
cursor: not-allowed;
|
|
121
121
|
}
|
|
122
|
-
.rp-input__left[data-v-
|
|
122
|
+
.rp-input__left[data-v-e5ad32a7], .rp-input__right[data-v-e5ad32a7] {
|
|
123
123
|
display: inline-flex;
|
|
124
124
|
align-items: center;
|
|
125
125
|
flex-shrink: 0;
|
package/dist/input.js
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
1
|
import './input.css';
|
|
2
|
-
import {
|
|
2
|
+
import { t as bem } from "./bem.js";
|
|
3
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
3
4
|
import { t as useControlState } from "./useControlState.js";
|
|
4
|
-
import { child, computed, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, renderEffect, setAttr, setClass, setInsertionState, setProp, setValue, template, unref } from "vue";
|
|
5
|
+
import { child, computed, createIf, createInvoker, createSlot, createTemplateRefSetter, defineVaporComponent, delegateEvents, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setValue, template, unref } from "vue";
|
|
6
|
+
//#region src/components/input/useInput.ts
|
|
7
|
+
var INTERACTIVE_SELECTOR = [
|
|
8
|
+
"button",
|
|
9
|
+
"a[href]",
|
|
10
|
+
`input:not(.rp-input__native)`,
|
|
11
|
+
"select",
|
|
12
|
+
"textarea",
|
|
13
|
+
"[contenteditable=\"true\"]",
|
|
14
|
+
"[tabindex]:not([tabindex=\"-1\"])"
|
|
15
|
+
].join(",");
|
|
16
|
+
function isInteractiveElement(target) {
|
|
17
|
+
return Boolean(target.closest(INTERACTIVE_SELECTOR));
|
|
18
|
+
}
|
|
19
|
+
function useInput(props, emitUpdate) {
|
|
20
|
+
const inputRef = ref(null);
|
|
21
|
+
const control = useControlState(props);
|
|
22
|
+
const rootClass = computed(() => bem("rp-input", {
|
|
23
|
+
[`size-${props.size}`]: Boolean(props.size),
|
|
24
|
+
[`radius-${props.radius}`]: Boolean(props.radius),
|
|
25
|
+
disabled: control.disabled,
|
|
26
|
+
invalid: control.invalid,
|
|
27
|
+
valid: control.valid && !control.invalid,
|
|
28
|
+
readonly: props.readonly
|
|
29
|
+
}));
|
|
30
|
+
function onInput(e) {
|
|
31
|
+
emitUpdate(e.target.value);
|
|
32
|
+
}
|
|
33
|
+
function focusInput(e) {
|
|
34
|
+
if (control.disabled) return;
|
|
35
|
+
const target = e.target;
|
|
36
|
+
if (target instanceof Element && isInteractiveElement(target)) return;
|
|
37
|
+
inputRef.value?.focus();
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
inputRef,
|
|
41
|
+
control,
|
|
42
|
+
rootClass,
|
|
43
|
+
onInput,
|
|
44
|
+
focusInput
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
5
48
|
//#region src/components/input/input.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
6
|
-
var t0 = template("<span data-v-
|
|
7
|
-
var t1 = template("<span data-v-
|
|
8
|
-
var t2 = template("<label data-v-
|
|
49
|
+
var t0 = template("<span data-v-e5ad32a7 class=rp-input__left>");
|
|
50
|
+
var t1 = template("<span data-v-e5ad32a7 class=rp-input__right>");
|
|
51
|
+
var t2 = template("<label data-v-e5ad32a7><input data-v-e5ad32a7 class=rp-input__native>", 1);
|
|
9
52
|
delegateEvents("input", "mousedown");
|
|
10
53
|
//#endregion
|
|
11
54
|
//#region src/components/input/input.vue
|
|
@@ -48,38 +91,13 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
48
91
|
setup(__props, { emit: __emit, slots: $slots }) {
|
|
49
92
|
const props = __props;
|
|
50
93
|
const emit = __emit;
|
|
51
|
-
const control =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
disabled: control.disabled,
|
|
56
|
-
invalid: control.invalid,
|
|
57
|
-
valid: control.valid && !control.invalid,
|
|
58
|
-
readonly: props.readonly
|
|
59
|
-
}));
|
|
60
|
-
function onInput(e) {
|
|
61
|
-
emit("update:modelValue", e.target.value);
|
|
62
|
-
}
|
|
63
|
-
function focusInput(e) {
|
|
64
|
-
if (control.disabled) return;
|
|
65
|
-
const target = e.target;
|
|
66
|
-
if (target instanceof Element && isInteractiveElement(target)) return;
|
|
67
|
-
e.currentTarget.querySelector(".rp-input__native")?.focus();
|
|
68
|
-
}
|
|
69
|
-
function isInteractiveElement(target) {
|
|
70
|
-
return Boolean(target.closest([
|
|
71
|
-
"button",
|
|
72
|
-
"a[href]",
|
|
73
|
-
"input:not(.rp-input__native)",
|
|
74
|
-
"select",
|
|
75
|
-
"textarea",
|
|
76
|
-
"[contenteditable=\"true\"]",
|
|
77
|
-
"[tabindex]:not([tabindex=\"-1\"])"
|
|
78
|
-
].join(",")));
|
|
79
|
-
}
|
|
94
|
+
const { inputRef, control, rootClass, onInput, focusInput } = useInput(props, (value) => {
|
|
95
|
+
emit("update:modelValue", value);
|
|
96
|
+
});
|
|
97
|
+
const _setTemplateRef = createTemplateRefSetter();
|
|
80
98
|
const n9 = t2();
|
|
81
99
|
const n4 = child(n9, 1);
|
|
82
|
-
renderEffect(() => setClass(n9, rootClass
|
|
100
|
+
renderEffect(() => setClass(n9, unref(rootClass)));
|
|
83
101
|
setInsertionState(n9, 0, 0);
|
|
84
102
|
createIf(() => $slots.left, () => {
|
|
85
103
|
const n3 = t0();
|
|
@@ -87,7 +105,8 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
87
105
|
createSlot("left", null, null, 1);
|
|
88
106
|
return n3;
|
|
89
107
|
});
|
|
90
|
-
n4.$evtinput = createInvoker(onInput);
|
|
108
|
+
n4.$evtinput = createInvoker((e) => unref(onInput)(e));
|
|
109
|
+
_setTemplateRef(n4, inputRef, null, "inputRef");
|
|
91
110
|
renderEffect(() => {
|
|
92
111
|
const _control = unref(control);
|
|
93
112
|
const _control_required = _control.required;
|
|
@@ -112,11 +131,9 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
112
131
|
createSlot("right", null, null, 1);
|
|
113
132
|
return n8;
|
|
114
133
|
});
|
|
115
|
-
n9.$evtmousedown = createInvoker(focusInput);
|
|
134
|
+
n9.$evtmousedown = createInvoker((e) => unref(focusInput)(e));
|
|
116
135
|
return n9;
|
|
117
136
|
}
|
|
118
|
-
}), [["__scopeId", "data-v-
|
|
137
|
+
}), [["__scopeId", "data-v-e5ad32a7"]]);
|
|
119
138
|
//#endregion
|
|
120
139
|
export { input_default as t };
|
|
121
|
-
|
|
122
|
-
//# sourceMappingURL=input.js.map
|