ropav 0.0.11 → 0.0.13
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/README.md +3 -0
- package/dist/checkbox.css +32 -32
- package/dist/checkbox.js +33 -14
- package/dist/color-input.css +19 -19
- package/dist/color-input.js +35 -17
- package/dist/components/checkbox/types.d.ts +5 -1
- package/dist/components/checkbox/useCheckbox.d.ts +1 -1
- package/dist/components/color-input/types.d.ts +4 -1
- package/dist/components/color-input/useColorInput.d.ts +1 -1
- package/dist/components/color-input/useColorInputValue.d.ts +1 -1
- package/dist/components/dialog/dialog-close.d.ts +21 -0
- package/dist/components/dialog/dialog-content.d.ts +32 -0
- package/dist/components/dialog/dialog-core.d.ts +27 -0
- package/dist/components/dialog/dialog-description.d.ts +21 -0
- package/dist/components/dialog/dialog-overlay.d.ts +21 -0
- package/dist/components/dialog/dialog-portal.d.ts +21 -0
- package/dist/components/dialog/dialog-root.d.ts +28 -0
- package/dist/components/dialog/dialog-title.d.ts +21 -0
- package/dist/components/dialog/dialog-trigger.d.ts +23 -0
- package/dist/components/dialog/index.d.ts +9 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dialog/types.d.ts +61 -0
- package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +24 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +34 -0
- package/dist/components/dropdown-menu/dropdown-menu-context-trigger.d.ts +23 -0
- package/dist/components/dropdown-menu/dropdown-menu-item-indicator.d.ts +24 -0
- package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +28 -0
- package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +23 -0
- package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +24 -22
- package/dist/components/dropdown-menu/dropdown-menu-label.d.ts +21 -0
- package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +3 -0
- package/dist/components/dropdown-menu/dropdown-menu-portal.d.ts +21 -0
- package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +110 -0
- package/dist/components/dropdown-menu/dropdown-menu-primitives.d.ts +15 -724
- package/dist/components/dropdown-menu/dropdown-menu-radio-group.d.ts +25 -0
- package/dist/components/dropdown-menu/dropdown-menu-radio-item.d.ts +23 -0
- package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +30 -0
- package/dist/components/dropdown-menu/dropdown-menu-separator.d.ts +19 -0
- package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +34 -0
- package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +28 -0
- package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +28 -0
- package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +23 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +5 -2
- package/dist/components/dropdown-menu/index.d.ts +28 -49
- package/dist/components/dropdown-menu/index.js +2 -2
- package/dist/components/dropdown-menu/types.d.ts +8 -3
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +8 -4
- package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +7 -2
- package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +3 -3
- package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +27 -0
- package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +2 -0
- package/dist/components/floating/index.d.ts +3 -1
- package/dist/components/floating/index.js +3 -0
- package/dist/components/floating/types.d.ts +86 -1
- package/dist/components/floating/useFloatingPosition.d.ts +3 -26
- package/dist/components/floating/useHoverDisclosure.d.ts +2 -0
- package/dist/components/input/input.d.ts +4 -1
- package/dist/components/input/types.d.ts +3 -1
- package/dist/components/modal/index.d.ts +1 -1
- package/dist/components/modal/modal.d.ts +3 -1
- package/dist/components/modal/types.d.ts +3 -0
- package/dist/components/modal/useModal.d.ts +7 -4
- package/dist/components/number-input/types.d.ts +3 -1
- package/dist/components/number-input/useNumberInput.d.ts +2 -1
- package/dist/components/popover/usePopover.d.ts +2 -2
- package/dist/components/radio/types.d.ts +17 -1
- package/dist/components/radio/useRadio.d.ts +3 -0
- package/dist/components/select/select.d.ts +4 -1
- package/dist/components/select/types.d.ts +6 -1
- package/dist/components/select/useSelect.d.ts +3 -2
- package/dist/components/slider/index.d.ts +1 -1
- package/dist/components/slider/range-slider.d.ts +3 -3
- package/dist/components/slider/types.d.ts +11 -3
- package/dist/components/slider/useRangeSlider.d.ts +1 -1
- package/dist/components/slider/useSlider.d.ts +1 -1
- package/dist/components/switch/types.d.ts +5 -1
- package/dist/components/switch/useSwitch.d.ts +1 -1
- package/dist/components/teleport-provider/index.d.ts +1 -0
- package/dist/components/teleport-provider/index.js +2 -1
- package/dist/components/teleport-provider/useTeleportTarget.d.ts +4 -3
- package/dist/components/textarea/types.d.ts +4 -1
- package/dist/components/textarea/useTextarea.d.ts +1 -1
- package/dist/components/toast/index.d.ts +2 -1
- package/dist/components/toast/index.js +2 -2
- package/dist/components/toast/toast-store.d.ts +2 -0
- package/dist/components/toast/types.d.ts +10 -4
- package/dist/components/toast/useToast.d.ts +2 -2
- package/dist/components/tooltip/useTooltip.d.ts +3 -3
- package/dist/composables/useOverlayLayer.d.ts +32 -0
- package/dist/dialog.js +510 -0
- package/dist/dropdown-menu.css +4 -5
- package/dist/dropdown-menu.js +1155 -886
- package/dist/floating.js +403 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -4
- package/dist/input.css +24 -24
- package/dist/input.js +21 -11
- package/dist/legacy-unlayered.css +424 -503
- package/dist/modal.css +28 -28
- package/dist/modal.js +141 -200
- package/dist/number-input.css +20 -20
- package/dist/number-input.js +44 -16
- package/dist/popover.css +4 -4
- package/dist/popover.js +29 -40
- package/dist/radio.css +18 -18
- package/dist/radio.js +96 -18
- package/dist/select.css +54 -43
- package/dist/select.js +185 -67
- package/dist/slider.css +183 -202
- package/dist/slider.js +138 -37
- package/dist/switch.css +17 -17
- package/dist/switch.js +31 -13
- package/dist/textarea.css +26 -26
- package/dist/textarea.js +19 -9
- package/dist/toast.js +110 -99
- package/dist/tooltip.css +5 -80
- package/dist/tooltip.js +11 -3
- package/dist/useControlState.js +4 -0
- package/dist/useFloatingPosition.js +86 -39
- package/dist/useFormControl.js +107 -0
- package/dist/useOverlayLayer.js +262 -0
- package/dist/useTeleportTarget.js +21 -10
- package/docs/public-floating-api.md +159 -0
- package/docs/public-styles-api.md +2 -1
- package/package.json +10 -6
- package/dist/useClickOutside.js +0 -24
package/dist/textarea.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@layer ropav.components {
|
|
2
|
-
.rp-textarea[data-v-
|
|
2
|
+
.rp-textarea[data-v-f2ee1457] {
|
|
3
3
|
--_rp-textarea-padding-y: 7px;
|
|
4
4
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-md) / 3);
|
|
5
5
|
--_rp-textarea-font-size: var(--rp-font-size-md);
|
|
@@ -17,58 +17,58 @@
|
|
|
17
17
|
cursor: text;
|
|
18
18
|
transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
|
|
19
19
|
}
|
|
20
|
-
.rp-textarea[data-v-
|
|
20
|
+
.rp-textarea[data-v-f2ee1457]:hover:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
|
|
21
21
|
border-color: var(--rp-color-control-border-hover);
|
|
22
22
|
}
|
|
23
|
-
.rp-textarea[data-v-
|
|
23
|
+
.rp-textarea[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled):not(.rp-textarea--invalid):not(.rp-textarea--valid) {
|
|
24
24
|
border-color: var(--rp-color-control-border-focus);
|
|
25
25
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
|
|
26
26
|
}
|
|
27
|
-
.rp-textarea[data-v-
|
|
27
|
+
.rp-textarea[data-v-f2ee1457] {
|
|
28
28
|
font-size: var(--_rp-textarea-font-size);
|
|
29
29
|
border-radius: var(--_rp-textarea-radius);
|
|
30
30
|
}
|
|
31
|
-
.rp-textarea--size-xs[data-v-
|
|
31
|
+
.rp-textarea--size-xs[data-v-f2ee1457] {
|
|
32
32
|
--_rp-textarea-padding-y: 4.5px;
|
|
33
33
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-xs) / 3);
|
|
34
34
|
--_rp-textarea-font-size: var(--rp-font-size-xs);
|
|
35
35
|
}
|
|
36
|
-
.rp-textarea--size-sm[data-v-
|
|
36
|
+
.rp-textarea--size-sm[data-v-f2ee1457] {
|
|
37
37
|
--_rp-textarea-padding-y: 5.5px;
|
|
38
38
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-sm) / 3);
|
|
39
39
|
--_rp-textarea-font-size: var(--rp-font-size-sm);
|
|
40
40
|
}
|
|
41
|
-
.rp-textarea--size-md[data-v-
|
|
41
|
+
.rp-textarea--size-md[data-v-f2ee1457] {
|
|
42
42
|
--_rp-textarea-padding-y: 7px;
|
|
43
43
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-md) / 3);
|
|
44
44
|
--_rp-textarea-font-size: var(--rp-font-size-md);
|
|
45
45
|
}
|
|
46
|
-
.rp-textarea--size-lg[data-v-
|
|
46
|
+
.rp-textarea--size-lg[data-v-f2ee1457] {
|
|
47
47
|
--_rp-textarea-padding-y: 9.5px;
|
|
48
48
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-lg) / 3);
|
|
49
49
|
--_rp-textarea-font-size: var(--rp-font-size-lg);
|
|
50
50
|
}
|
|
51
|
-
.rp-textarea--size-xl[data-v-
|
|
51
|
+
.rp-textarea--size-xl[data-v-f2ee1457] {
|
|
52
52
|
--_rp-textarea-padding-y: 13px;
|
|
53
53
|
--_rp-textarea-padding-x: calc(var(--rp-size-control-xl) / 3);
|
|
54
54
|
--_rp-textarea-font-size: var(--rp-font-size-xl);
|
|
55
55
|
}
|
|
56
|
-
.rp-textarea--radius-xs[data-v-
|
|
56
|
+
.rp-textarea--radius-xs[data-v-f2ee1457] {
|
|
57
57
|
--_rp-textarea-radius: var(--rp-radius-xs);
|
|
58
58
|
}
|
|
59
|
-
.rp-textarea--radius-sm[data-v-
|
|
59
|
+
.rp-textarea--radius-sm[data-v-f2ee1457] {
|
|
60
60
|
--_rp-textarea-radius: var(--rp-radius-sm);
|
|
61
61
|
}
|
|
62
|
-
.rp-textarea--radius-md[data-v-
|
|
62
|
+
.rp-textarea--radius-md[data-v-f2ee1457] {
|
|
63
63
|
--_rp-textarea-radius: var(--rp-radius-md);
|
|
64
64
|
}
|
|
65
|
-
.rp-textarea--radius-lg[data-v-
|
|
65
|
+
.rp-textarea--radius-lg[data-v-f2ee1457] {
|
|
66
66
|
--_rp-textarea-radius: var(--rp-radius-lg);
|
|
67
67
|
}
|
|
68
|
-
.rp-textarea--radius-xl[data-v-
|
|
68
|
+
.rp-textarea--radius-xl[data-v-f2ee1457] {
|
|
69
69
|
--_rp-textarea-radius: var(--rp-radius-xl);
|
|
70
70
|
}
|
|
71
|
-
html.dark .rp-textarea[data-v-
|
|
71
|
+
html.dark .rp-textarea[data-v-f2ee1457], [data-rp-color-scheme=dark] .rp-textarea[data-v-f2ee1457] {
|
|
72
72
|
--_rp-textarea-valid-border: var(--rp-color-green-light-color);
|
|
73
73
|
--_rp-textarea-valid-ring: color-mix(
|
|
74
74
|
in srgb,
|
|
@@ -82,34 +82,34 @@ html.dark .rp-textarea[data-v-1654f805], [data-rp-color-scheme=dark] .rp-textare
|
|
|
82
82
|
transparent
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
|
-
.rp-textarea--disabled[data-v-
|
|
85
|
+
.rp-textarea--disabled[data-v-f2ee1457] {
|
|
86
86
|
opacity: var(--rp-opacity-disabled);
|
|
87
87
|
cursor: not-allowed;
|
|
88
88
|
}
|
|
89
|
-
.rp-textarea--valid[data-v-
|
|
89
|
+
.rp-textarea--valid[data-v-f2ee1457] {
|
|
90
90
|
border-color: var(--_rp-textarea-valid-border);
|
|
91
91
|
}
|
|
92
|
-
.rp-textarea--valid[data-v-
|
|
92
|
+
.rp-textarea--valid[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled) {
|
|
93
93
|
border-color: var(--_rp-textarea-valid-border);
|
|
94
94
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-textarea-valid-ring);
|
|
95
95
|
}
|
|
96
|
-
.rp-textarea--invalid[data-v-
|
|
96
|
+
.rp-textarea--invalid[data-v-f2ee1457] {
|
|
97
97
|
border-color: var(--_rp-textarea-invalid-border);
|
|
98
98
|
}
|
|
99
|
-
.rp-textarea--invalid[data-v-
|
|
99
|
+
.rp-textarea--invalid[data-v-f2ee1457]:focus-within:not(.rp-textarea--disabled) {
|
|
100
100
|
border-color: var(--_rp-textarea-invalid-border);
|
|
101
101
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-textarea-invalid-ring);
|
|
102
102
|
}
|
|
103
|
-
.rp-textarea--readonly[data-v-
|
|
103
|
+
.rp-textarea--readonly[data-v-f2ee1457] {
|
|
104
104
|
background-color: var(--rp-color-control-readonly-bg);
|
|
105
105
|
}
|
|
106
|
-
.rp-textarea--resize-vertical .rp-textarea__native[data-v-
|
|
106
|
+
.rp-textarea--resize-vertical .rp-textarea__native[data-v-f2ee1457] {
|
|
107
107
|
resize: vertical;
|
|
108
108
|
}
|
|
109
|
-
.rp-textarea--resize-both .rp-textarea__native[data-v-
|
|
109
|
+
.rp-textarea--resize-both .rp-textarea__native[data-v-f2ee1457] {
|
|
110
110
|
resize: both;
|
|
111
111
|
}
|
|
112
|
-
.rp-textarea__native[data-v-
|
|
112
|
+
.rp-textarea__native[data-v-f2ee1457] {
|
|
113
113
|
box-sizing: border-box;
|
|
114
114
|
flex: 1;
|
|
115
115
|
width: 100%;
|
|
@@ -124,10 +124,10 @@ html.dark .rp-textarea[data-v-1654f805], [data-rp-color-scheme=dark] .rp-textare
|
|
|
124
124
|
color: var(--rp-color-control-fg);
|
|
125
125
|
line-height: var(--rp-line-height-md);
|
|
126
126
|
}
|
|
127
|
-
.rp-textarea__native[data-v-
|
|
127
|
+
.rp-textarea__native[data-v-f2ee1457]::placeholder {
|
|
128
128
|
color: var(--rp-color-control-placeholder);
|
|
129
129
|
}
|
|
130
|
-
.rp-textarea__native[data-v-
|
|
130
|
+
.rp-textarea__native[data-v-f2ee1457]:disabled {
|
|
131
131
|
cursor: not-allowed;
|
|
132
132
|
}
|
|
133
133
|
}
|
package/dist/textarea.js
CHANGED
|
@@ -2,6 +2,7 @@ import './textarea.css';
|
|
|
2
2
|
import { t as bem } from "./bem.js";
|
|
3
3
|
import { n as useStylesApi, t as presence } from "./styles-api.js";
|
|
4
4
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
5
|
+
import { a as useTextFormControl, o as useControllableValue } from "./useFormControl.js";
|
|
5
6
|
import { t as useControlState } from "./useControlState.js";
|
|
6
7
|
import { child, computed, defineVaporComponent, nextTick, onMounted, ref, renderEffect, setDynamicProps, setStaticTemplateRef, template, unref, watch } from "vue";
|
|
7
8
|
//#region src/components/textarea/useTextarea.ts
|
|
@@ -56,7 +57,7 @@ function resetTextareaHeight(textarea) {
|
|
|
56
57
|
textarea.style.height = "";
|
|
57
58
|
textarea.style.overflowY = "";
|
|
58
59
|
}
|
|
59
|
-
function useTextarea(props, emitUpdate) {
|
|
60
|
+
function useTextarea(props, emitUpdate, getValue = () => props.modelValue ?? "") {
|
|
60
61
|
const textareaRef = ref(null);
|
|
61
62
|
const control = useControlState(props);
|
|
62
63
|
let heightSyncPending = false;
|
|
@@ -80,7 +81,7 @@ function useTextarea(props, emitUpdate) {
|
|
|
80
81
|
readonly: props.readonly
|
|
81
82
|
}));
|
|
82
83
|
const autosizeWatchSource = computed(() => [
|
|
83
|
-
|
|
84
|
+
getValue(),
|
|
84
85
|
props.autosize,
|
|
85
86
|
props.minRows,
|
|
86
87
|
props.maxRows,
|
|
@@ -136,7 +137,7 @@ function useTextarea(props, emitUpdate) {
|
|
|
136
137
|
}
|
|
137
138
|
//#endregion
|
|
138
139
|
//#region src/components/textarea/textarea.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
139
|
-
var t0 = template("<div data-v-
|
|
140
|
+
var t0 = template("<div data-v-f2ee1457><textarea data-v-f2ee1457>", 1);
|
|
140
141
|
//#endregion
|
|
141
142
|
//#region src/components/textarea/textarea.vue
|
|
142
143
|
var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
@@ -146,7 +147,9 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
146
147
|
props: {
|
|
147
148
|
id: {},
|
|
148
149
|
name: {},
|
|
149
|
-
|
|
150
|
+
form: {},
|
|
151
|
+
modelValue: { default: void 0 },
|
|
152
|
+
defaultValue: { default: "" },
|
|
150
153
|
size: {},
|
|
151
154
|
radius: {},
|
|
152
155
|
resize: { default: "none" },
|
|
@@ -182,6 +185,7 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
182
185
|
describedby: {},
|
|
183
186
|
labelledby: {},
|
|
184
187
|
inputAttrs: {},
|
|
188
|
+
validationMessage: {},
|
|
185
189
|
classNames: {},
|
|
186
190
|
styles: {}
|
|
187
191
|
},
|
|
@@ -189,9 +193,13 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
189
193
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
190
194
|
const props = __props;
|
|
191
195
|
const emit = __emit;
|
|
192
|
-
const
|
|
193
|
-
|
|
196
|
+
const controllable = useControllableValue({
|
|
197
|
+
modelValue: () => props.modelValue,
|
|
198
|
+
defaultValue: () => props.defaultValue,
|
|
199
|
+
onChange: (value) => emit("update:modelValue", value)
|
|
194
200
|
});
|
|
201
|
+
const { textareaRef, control, rootClass, nativeRows, onInput, focusTextarea, focus } = useTextarea(props, (value) => controllable.setValue(value), () => controllable.value.value);
|
|
202
|
+
useTextFormControl(() => textareaRef.value, controllable, () => props.validationMessage);
|
|
195
203
|
const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
|
|
196
204
|
const rootAttrs = computed(() => getRootAttrs({
|
|
197
205
|
class: rootClass.value,
|
|
@@ -223,15 +231,17 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
223
231
|
const n0 = child(n1);
|
|
224
232
|
setStaticTemplateRef(n0, textareaRef, null, "textareaRef");
|
|
225
233
|
renderEffect(() => {
|
|
234
|
+
const _nativeInputAttrs = nativeInputAttrs.value;
|
|
226
235
|
const _control = unref(control);
|
|
227
236
|
const _readonly = __props.readonly;
|
|
228
237
|
const _presence = unref(presence);
|
|
229
238
|
const _control_required = _control.required;
|
|
230
239
|
setDynamicProps(n1, [rootAttrs.value]);
|
|
231
|
-
setDynamicProps(n0, [
|
|
240
|
+
setDynamicProps(n0, [_nativeInputAttrs, {
|
|
232
241
|
id: _control.id,
|
|
233
242
|
name: __props.name,
|
|
234
|
-
|
|
243
|
+
form: _control.form ?? _nativeInputAttrs.form,
|
|
244
|
+
value: unref(controllable).value.value,
|
|
235
245
|
placeholder: __props.placeholder,
|
|
236
246
|
rows: unref(nativeRows),
|
|
237
247
|
disabled: _control.disabled || void 0,
|
|
@@ -249,7 +259,7 @@ var textarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
249
259
|
});
|
|
250
260
|
return n1;
|
|
251
261
|
}
|
|
252
|
-
}), [["__scopeId", "data-v-
|
|
262
|
+
}), [["__scopeId", "data-v-f2ee1457"]]);
|
|
253
263
|
//#endregion
|
|
254
264
|
//#region src/components/textarea/types.ts
|
|
255
265
|
var textareaParts = ["root", "input"];
|
package/dist/toast.js
CHANGED
|
@@ -4,8 +4,8 @@ import { t as bem } from "./bem.js";
|
|
|
4
4
|
import { n as useStylesApi } from "./styles-api.js";
|
|
5
5
|
import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
|
|
6
6
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
7
|
-
import {
|
|
8
|
-
import { VaporTeleport, VaporTransition, VaporTransitionGroup, computed, createComponent, createFor, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, extend, inject, nextTick, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, toValue, txt, unref,
|
|
7
|
+
import { r as useTeleportTarget } from "./useTeleportTarget.js";
|
|
8
|
+
import { VaporTeleport, VaporTransition, VaporTransitionGroup, computed, createComponent, createFor, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, extend, inject, nextTick, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, toValue, txt, unref, useSlots, watch } from "vue";
|
|
9
9
|
//#region src/components/toast/defaults.ts
|
|
10
10
|
var DEFAULT_TOAST_DURATION = 5e3;
|
|
11
11
|
var DEFAULT_TOAST_ROLE = "status";
|
|
@@ -283,60 +283,7 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
283
283
|
}
|
|
284
284
|
}), [["__scopeId", "data-v-6944ac43"]]);
|
|
285
285
|
//#endregion
|
|
286
|
-
//#region src/components/toast/
|
|
287
|
-
var toastParts = [
|
|
288
|
-
"root",
|
|
289
|
-
"icon",
|
|
290
|
-
"title",
|
|
291
|
-
"description",
|
|
292
|
-
"body",
|
|
293
|
-
"action",
|
|
294
|
-
"close"
|
|
295
|
-
];
|
|
296
|
-
var toastViewportParts = [
|
|
297
|
-
"root",
|
|
298
|
-
"item",
|
|
299
|
-
"toast",
|
|
300
|
-
"toastIcon",
|
|
301
|
-
"toastTitle",
|
|
302
|
-
"toastDescription",
|
|
303
|
-
"toastBody",
|
|
304
|
-
"toastAction",
|
|
305
|
-
"toastClose"
|
|
306
|
-
];
|
|
307
|
-
var toastColors = componentColors;
|
|
308
|
-
var toastVariants = [
|
|
309
|
-
"subtle",
|
|
310
|
-
"surface",
|
|
311
|
-
"outline",
|
|
312
|
-
"solid"
|
|
313
|
-
];
|
|
314
|
-
var toastRadiuses = [
|
|
315
|
-
"none",
|
|
316
|
-
"xs",
|
|
317
|
-
"sm",
|
|
318
|
-
"md",
|
|
319
|
-
"lg",
|
|
320
|
-
"xl"
|
|
321
|
-
];
|
|
322
|
-
var toastPositions = [
|
|
323
|
-
"top-left",
|
|
324
|
-
"top-center",
|
|
325
|
-
"top-right",
|
|
326
|
-
"bottom-left",
|
|
327
|
-
"bottom-center",
|
|
328
|
-
"bottom-right"
|
|
329
|
-
];
|
|
330
|
-
var toastTypes = [
|
|
331
|
-
"default",
|
|
332
|
-
"success",
|
|
333
|
-
"error",
|
|
334
|
-
"warning",
|
|
335
|
-
"info"
|
|
336
|
-
];
|
|
337
|
-
var toastProviderKey = Symbol("toast-provider");
|
|
338
|
-
//#endregion
|
|
339
|
-
//#region src/components/toast/useToast.ts
|
|
286
|
+
//#region src/components/toast/toast-store.ts
|
|
340
287
|
var TYPE_DEFAULTS = {
|
|
341
288
|
default: {},
|
|
342
289
|
success: { color: "green" },
|
|
@@ -373,18 +320,18 @@ function splitOptions(options) {
|
|
|
373
320
|
toastProps: withoutUndefined(toastProps)
|
|
374
321
|
};
|
|
375
322
|
}
|
|
376
|
-
function
|
|
323
|
+
function getStoreDefaults(options) {
|
|
377
324
|
return withoutUndefined({
|
|
378
|
-
duration:
|
|
379
|
-
variant:
|
|
380
|
-
color:
|
|
381
|
-
autoContrast:
|
|
382
|
-
radius:
|
|
383
|
-
role:
|
|
384
|
-
pauseOnHover:
|
|
385
|
-
pauseOnFocus:
|
|
386
|
-
closable:
|
|
387
|
-
closeLabel:
|
|
325
|
+
duration: options.duration ?? 5e3,
|
|
326
|
+
variant: options.variant,
|
|
327
|
+
color: options.color,
|
|
328
|
+
autoContrast: options.autoContrast,
|
|
329
|
+
radius: options.radius,
|
|
330
|
+
role: options.role,
|
|
331
|
+
pauseOnHover: options.pauseOnHover ?? true,
|
|
332
|
+
pauseOnFocus: options.pauseOnFocus ?? true,
|
|
333
|
+
closable: options.closable ?? true,
|
|
334
|
+
closeLabel: options.closeLabel ?? "Close toast"
|
|
388
335
|
});
|
|
389
336
|
}
|
|
390
337
|
function replaceAt(items, index, value) {
|
|
@@ -406,15 +353,14 @@ function partitionOverflow(items, max) {
|
|
|
406
353
|
evicted: items.slice(0, overflow)
|
|
407
354
|
};
|
|
408
355
|
}
|
|
409
|
-
function
|
|
410
|
-
const scopeId = useId();
|
|
356
|
+
function createToastStore(options = {}) {
|
|
411
357
|
const items = ref([]);
|
|
412
358
|
const toasts = computed(() => items.value);
|
|
413
359
|
const records = /* @__PURE__ */ new Map();
|
|
414
360
|
let sequence = 0;
|
|
415
361
|
function createInstanceId() {
|
|
416
362
|
sequence += 1;
|
|
417
|
-
return
|
|
363
|
+
return `rp-toast-${sequence}`;
|
|
418
364
|
}
|
|
419
365
|
function resolveItem(id, instanceId, record) {
|
|
420
366
|
return {
|
|
@@ -423,7 +369,7 @@ function provideToast(props) {
|
|
|
423
369
|
type: record.type,
|
|
424
370
|
props: {
|
|
425
371
|
...TYPE_DEFAULTS[record.type],
|
|
426
|
-
...
|
|
372
|
+
...getStoreDefaults(options),
|
|
427
373
|
...record.props
|
|
428
374
|
},
|
|
429
375
|
onClose: record.onClose
|
|
@@ -435,8 +381,8 @@ function provideToast(props) {
|
|
|
435
381
|
function notifyAll(removedItems, reason) {
|
|
436
382
|
for (const item of removedItems) notify(item, reason);
|
|
437
383
|
}
|
|
438
|
-
function create(type, input,
|
|
439
|
-
const split = splitOptions(normalizeInput(input,
|
|
384
|
+
function create(type, input, createOptions) {
|
|
385
|
+
const split = splitOptions(normalizeInput(input, createOptions));
|
|
440
386
|
const instanceId = createInstanceId();
|
|
441
387
|
const id = split.id ?? instanceId;
|
|
442
388
|
const record = {
|
|
@@ -446,42 +392,43 @@ function provideToast(props) {
|
|
|
446
392
|
};
|
|
447
393
|
const item = resolveItem(id, instanceId, record);
|
|
448
394
|
const replaced = items.value.filter((current) => current.id === id);
|
|
449
|
-
const { kept, evicted } = partitionOverflow([...items.value.filter((current) => current.id !== id), item], normalizeMax(
|
|
395
|
+
const { kept, evicted } = partitionOverflow([...items.value.filter((current) => current.id !== id), item], normalizeMax(options.max));
|
|
450
396
|
records.set(instanceId, record);
|
|
451
397
|
forget([...replaced, ...evicted]);
|
|
452
398
|
items.value = kept;
|
|
453
|
-
notifyAll(
|
|
399
|
+
notifyAll(replaced, "replace");
|
|
400
|
+
notifyAll(evicted, "overflow");
|
|
454
401
|
return id;
|
|
455
402
|
}
|
|
456
|
-
function show(input,
|
|
457
|
-
return create("default", input,
|
|
403
|
+
function show(input, createOptions) {
|
|
404
|
+
return create("default", input, createOptions);
|
|
458
405
|
}
|
|
459
|
-
function success(input,
|
|
460
|
-
return create("success", input,
|
|
406
|
+
function success(input, createOptions) {
|
|
407
|
+
return create("success", input, createOptions);
|
|
461
408
|
}
|
|
462
|
-
function error(input,
|
|
463
|
-
return create("error", input,
|
|
409
|
+
function error(input, createOptions) {
|
|
410
|
+
return create("error", input, createOptions);
|
|
464
411
|
}
|
|
465
|
-
function warning(input,
|
|
466
|
-
return create("warning", input,
|
|
412
|
+
function warning(input, createOptions) {
|
|
413
|
+
return create("warning", input, createOptions);
|
|
467
414
|
}
|
|
468
|
-
function info(input,
|
|
469
|
-
return create("info", input,
|
|
415
|
+
function info(input, createOptions) {
|
|
416
|
+
return create("info", input, createOptions);
|
|
470
417
|
}
|
|
471
|
-
function update(id,
|
|
418
|
+
function update(id, updateOptions) {
|
|
472
419
|
const index = items.value.findIndex((item) => item.id === id);
|
|
473
420
|
if (index === -1) return;
|
|
474
421
|
const current = items.value[index];
|
|
475
422
|
const record = records.get(current.instanceId);
|
|
476
423
|
if (!record) return;
|
|
477
|
-
const { type, onClose, ...toastProps } =
|
|
424
|
+
const { type, onClose, ...toastProps } = updateOptions;
|
|
478
425
|
const nextRecord = {
|
|
479
426
|
type: type ?? record.type,
|
|
480
427
|
props: {
|
|
481
428
|
...record.props,
|
|
482
429
|
...withoutUndefined(toastProps)
|
|
483
430
|
},
|
|
484
|
-
onClose: Object.hasOwn(
|
|
431
|
+
onClose: Object.hasOwn(updateOptions, "onClose") ? onClose : record.onClose
|
|
485
432
|
};
|
|
486
433
|
records.set(current.instanceId, nextRecord);
|
|
487
434
|
items.value = replaceAt(items.value, index, resolveItem(current.id, current.instanceId, nextRecord));
|
|
@@ -496,16 +443,13 @@ function provideToast(props) {
|
|
|
496
443
|
function dismiss(id, reason = "dismiss") {
|
|
497
444
|
closeAt(items.value.findIndex((item) => item.id === id), reason);
|
|
498
445
|
}
|
|
499
|
-
function dismissInstance(instanceId, reason = "dismiss") {
|
|
500
|
-
closeAt(items.value.findIndex((item) => item.instanceId === instanceId), reason);
|
|
501
|
-
}
|
|
502
446
|
function dismissAll(reason = "dismiss") {
|
|
503
447
|
const dismissed = items.value;
|
|
504
448
|
records.clear();
|
|
505
449
|
items.value = [];
|
|
506
450
|
notifyAll(dismissed, reason);
|
|
507
451
|
}
|
|
508
|
-
const
|
|
452
|
+
const store = {
|
|
509
453
|
toasts,
|
|
510
454
|
show,
|
|
511
455
|
success,
|
|
@@ -514,17 +458,82 @@ function provideToast(props) {
|
|
|
514
458
|
info,
|
|
515
459
|
update,
|
|
516
460
|
dismiss,
|
|
517
|
-
dismissAll
|
|
518
|
-
dismissInstance
|
|
461
|
+
dismissAll
|
|
519
462
|
};
|
|
520
|
-
|
|
521
|
-
watch(() => normalizeMax(props.max), (max) => {
|
|
463
|
+
watch(() => normalizeMax(options.max), (max) => {
|
|
522
464
|
const { kept, evicted } = partitionOverflow(items.value, max);
|
|
523
465
|
if (evicted.length === 0) return;
|
|
524
466
|
forget(evicted);
|
|
525
467
|
items.value = kept;
|
|
526
|
-
notifyAll(evicted, "
|
|
468
|
+
notifyAll(evicted, "overflow");
|
|
527
469
|
}, { flush: "sync" });
|
|
470
|
+
return store;
|
|
471
|
+
}
|
|
472
|
+
//#endregion
|
|
473
|
+
//#region src/components/toast/types.ts
|
|
474
|
+
var toastParts = [
|
|
475
|
+
"root",
|
|
476
|
+
"icon",
|
|
477
|
+
"title",
|
|
478
|
+
"description",
|
|
479
|
+
"body",
|
|
480
|
+
"action",
|
|
481
|
+
"close"
|
|
482
|
+
];
|
|
483
|
+
var toastViewportParts = [
|
|
484
|
+
"root",
|
|
485
|
+
"item",
|
|
486
|
+
"toast",
|
|
487
|
+
"toastIcon",
|
|
488
|
+
"toastTitle",
|
|
489
|
+
"toastDescription",
|
|
490
|
+
"toastBody",
|
|
491
|
+
"toastAction",
|
|
492
|
+
"toastClose"
|
|
493
|
+
];
|
|
494
|
+
var toastColors = componentColors;
|
|
495
|
+
var toastVariants = [
|
|
496
|
+
"subtle",
|
|
497
|
+
"surface",
|
|
498
|
+
"outline",
|
|
499
|
+
"solid"
|
|
500
|
+
];
|
|
501
|
+
var toastRadiuses = [
|
|
502
|
+
"none",
|
|
503
|
+
"xs",
|
|
504
|
+
"sm",
|
|
505
|
+
"md",
|
|
506
|
+
"lg",
|
|
507
|
+
"xl"
|
|
508
|
+
];
|
|
509
|
+
var toastPositions = [
|
|
510
|
+
"top-left",
|
|
511
|
+
"top-center",
|
|
512
|
+
"top-right",
|
|
513
|
+
"bottom-left",
|
|
514
|
+
"bottom-center",
|
|
515
|
+
"bottom-right"
|
|
516
|
+
];
|
|
517
|
+
var toastTypes = [
|
|
518
|
+
"default",
|
|
519
|
+
"success",
|
|
520
|
+
"error",
|
|
521
|
+
"warning",
|
|
522
|
+
"info"
|
|
523
|
+
];
|
|
524
|
+
var toastProviderKey = Symbol("toast-provider");
|
|
525
|
+
//#endregion
|
|
526
|
+
//#region src/components/toast/useToast.ts
|
|
527
|
+
function provideToast(store) {
|
|
528
|
+
function dismissInstance(instanceId, reason = "dismiss") {
|
|
529
|
+
const item = store.toasts.value.find((current) => current.instanceId === instanceId);
|
|
530
|
+
if (item) store.dismiss(item.id, reason);
|
|
531
|
+
}
|
|
532
|
+
const context = {
|
|
533
|
+
...store,
|
|
534
|
+
dismissInstance
|
|
535
|
+
};
|
|
536
|
+
provide(toastProviderKey, context);
|
|
528
537
|
return context;
|
|
529
538
|
}
|
|
530
539
|
function useToastContext(consumer) {
|
|
@@ -541,6 +550,7 @@ var toast_provider_default = /* @__PURE__ */ defineVaporComponent({
|
|
|
541
550
|
name: "RpToastProvider",
|
|
542
551
|
__name: "toast-provider",
|
|
543
552
|
props: {
|
|
553
|
+
store: {},
|
|
544
554
|
max: { default: 5 },
|
|
545
555
|
duration: { default: DEFAULT_TOAST_DURATION },
|
|
546
556
|
variant: { default: void 0 },
|
|
@@ -566,7 +576,8 @@ var toast_provider_default = /* @__PURE__ */ defineVaporComponent({
|
|
|
566
576
|
closeLabel: { default: DEFAULT_TOAST_CLOSE_LABEL }
|
|
567
577
|
},
|
|
568
578
|
setup(__props) {
|
|
569
|
-
|
|
579
|
+
const props = __props;
|
|
580
|
+
provideToast(props.store ?? createToastStore(props));
|
|
570
581
|
return createSlot();
|
|
571
582
|
}
|
|
572
583
|
});
|
|
@@ -736,4 +747,4 @@ function useToastState(options = {}) {
|
|
|
736
747
|
};
|
|
737
748
|
}
|
|
738
749
|
//#endregion
|
|
739
|
-
export { toastColors as a, toastRadiuses as c, toastViewportParts as d,
|
|
750
|
+
export { toastColors as a, toastRadiuses as c, toastViewportParts as d, createToastStore as f, useToast as i, toastTypes as l, toast_viewport_default as n, toastParts as o, toast_default as p, toast_provider_default as r, toastPositions as s, useToastState as t, toastVariants as u };
|
package/dist/tooltip.css
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
@layer ropav.components {
|
|
2
2
|
.rp-tooltip[data-v-38bfcb12] {
|
|
3
|
-
--_rp-tooltip-main-axis-offset: var(--rp-spacing-2);
|
|
4
|
-
--_rp-tooltip-cross-axis-offset: 0px;
|
|
5
|
-
--_rp-tooltip-arrow-size: 0.4375rem;
|
|
6
|
-
--_rp-tooltip-bg: var(--rp-color-bright);
|
|
7
|
-
--_rp-tooltip-fg: var(--rp-color-default);
|
|
8
3
|
position: relative;
|
|
9
4
|
display: inline-flex;
|
|
10
5
|
font-family: var(--rp-font-family);
|
|
11
6
|
vertical-align: middle;
|
|
12
7
|
}
|
|
13
8
|
.rp-tooltip__content[data-v-38bfcb12] {
|
|
9
|
+
--_rp-tooltip-main-axis-offset: var(--rp-spacing-2);
|
|
10
|
+
--_rp-tooltip-cross-axis-offset: 0px;
|
|
11
|
+
--_rp-tooltip-arrow-size: 0.4375rem;
|
|
12
|
+
--_rp-tooltip-bg: var(--rp-color-bright);
|
|
13
|
+
--_rp-tooltip-fg: var(--rp-color-default);
|
|
14
14
|
position: absolute;
|
|
15
15
|
z-index: 1000;
|
|
16
16
|
box-sizing: border-box;
|
|
@@ -29,84 +29,9 @@
|
|
|
29
29
|
border-radius: var(--rp-radius-sm);
|
|
30
30
|
box-shadow: var(--rp-shadow-md);
|
|
31
31
|
}
|
|
32
|
-
.rp-tooltip--arrow .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
|
|
33
|
-
position: absolute;
|
|
34
|
-
width: var(--_rp-tooltip-arrow-size);
|
|
35
|
-
height: var(--_rp-tooltip-arrow-size);
|
|
36
|
-
content: "";
|
|
37
|
-
background-color: inherit;
|
|
38
|
-
rotate: 45deg;
|
|
39
|
-
}
|
|
40
|
-
.rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12] {
|
|
41
|
-
bottom: calc(100% + var(--_rp-tooltip-main-axis-offset));
|
|
42
|
-
left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
|
|
43
|
-
translate: -50% 0;
|
|
44
|
-
}
|
|
45
|
-
.rp-tooltip--arrow.rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
|
|
46
|
-
top: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
|
|
47
|
-
left: 50%;
|
|
48
|
-
translate: -50% 0;
|
|
49
|
-
}
|
|
50
|
-
.rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12] {
|
|
51
|
-
top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
|
|
52
|
-
left: calc(100% + var(--_rp-tooltip-main-axis-offset));
|
|
53
|
-
translate: 0 -50%;
|
|
54
|
-
}
|
|
55
|
-
.rp-tooltip--arrow.rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
|
|
56
|
-
top: 50%;
|
|
57
|
-
right: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
|
|
58
|
-
translate: 0 -50%;
|
|
59
|
-
}
|
|
60
|
-
.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12] {
|
|
61
|
-
top: calc(100% + var(--_rp-tooltip-main-axis-offset));
|
|
62
|
-
left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
|
|
63
|
-
translate: -50% 0;
|
|
64
|
-
}
|
|
65
|
-
.rp-tooltip--arrow.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
|
|
66
|
-
bottom: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
|
|
67
|
-
left: 50%;
|
|
68
|
-
translate: -50% 0;
|
|
69
|
-
}
|
|
70
|
-
.rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12] {
|
|
71
|
-
top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
|
|
72
|
-
right: calc(100% + var(--_rp-tooltip-main-axis-offset));
|
|
73
|
-
translate: 0 -50%;
|
|
74
|
-
}
|
|
75
|
-
.rp-tooltip--arrow.rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
|
|
76
|
-
top: 50%;
|
|
77
|
-
left: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
|
|
78
|
-
translate: 0 -50%;
|
|
79
|
-
}
|
|
80
32
|
.rp-tooltip--target[data-v-38bfcb12] {
|
|
81
33
|
display: contents;
|
|
82
34
|
}
|
|
83
|
-
.rp-tooltip--target .rp-tooltip__content[data-v-38bfcb12] {
|
|
84
|
-
position: fixed;
|
|
85
|
-
top: var(--_rp-tooltip-target-y, 0);
|
|
86
|
-
right: auto;
|
|
87
|
-
bottom: auto;
|
|
88
|
-
left: var(--_rp-tooltip-target-x, 0);
|
|
89
|
-
}
|
|
90
|
-
.rp-tooltip--target.rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12] {
|
|
91
|
-
translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) calc(-100% - var(--_rp-tooltip-main-axis-offset));
|
|
92
|
-
}
|
|
93
|
-
.rp-tooltip--target.rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12] {
|
|
94
|
-
translate: var(--_rp-tooltip-main-axis-offset) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
|
|
95
|
-
}
|
|
96
|
-
.rp-tooltip--target.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12] {
|
|
97
|
-
translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) var(--_rp-tooltip-main-axis-offset);
|
|
98
|
-
}
|
|
99
|
-
.rp-tooltip--target.rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12] {
|
|
100
|
-
translate: calc(-100% - var(--_rp-tooltip-main-axis-offset)) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
|
|
101
|
-
}
|
|
102
|
-
.rp-tooltip__content[data-placement][data-v-38bfcb12] {
|
|
103
|
-
position: absolute;
|
|
104
|
-
top: 0;
|
|
105
|
-
right: auto;
|
|
106
|
-
bottom: auto;
|
|
107
|
-
left: 0;
|
|
108
|
-
translate: none;
|
|
109
|
-
}
|
|
110
35
|
.rp-tooltip__arrow[data-v-38bfcb12] {
|
|
111
36
|
position: absolute;
|
|
112
37
|
width: var(--_rp-tooltip-arrow-size);
|