niuma-ui 2.0.1 → 2.0.3
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/CHANGELOG.md +38 -0
- package/README.en.md +1 -118
- package/README.md +60 -62
- package/README.zh-CN.md +130 -0
- package/dist/components/_shared/src/reka.d.ts +1 -1
- package/dist/components/_shared/src/reka.js +2 -2
- package/dist/components/avatar/src/RsAvatar.impl.js +1 -1
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/badge/src/RsBadge.css +61 -8
- package/dist/components/badge/src/RsBadge.d.ts +19 -3
- package/dist/components/badge/src/RsBadge.impl.js +46 -3
- package/dist/components/badge/src/RsBadge.js +1 -1
- package/dist/components/badge/src/badge-utils.d.ts +11 -0
- package/dist/components/badge/src/badge-utils.js +32 -0
- package/dist/components/button/src/RsButton.css +87 -71
- package/dist/components/button/src/RsButton.d.ts +7 -3
- package/dist/components/button/src/RsButton.impl.js +43 -31
- package/dist/components/button/src/RsButton.js +1 -1
- package/dist/components/button/src/button-utils.d.ts +17 -0
- package/dist/components/button/src/button-utils.js +14 -1
- package/dist/components/card/src/RsCard.impl.js +1 -1
- package/dist/components/cascader/src/RsCascader.d.ts +1 -1
- package/dist/components/config-provider/src/RsConfigProvider.css +1 -1
- package/dist/components/config-provider/src/RsConfigProvider.d.ts +2 -3
- package/dist/components/config-provider/src/RsConfigProvider.impl.js +20 -11
- package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
- package/dist/components/context-menu/src/RsContextMenuItems.impl.js +1 -1
- package/dist/components/date-picker/src/RsDatePicker.impl.js +1 -1
- package/dist/components/dialog/src/RsConfirmDialog.impl.js +1 -1
- package/dist/components/dialog/src/RsDialog.impl.js +1 -1
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/divider/src/RsDivider.css +37 -22
- package/dist/components/divider/src/RsDivider.d.ts +4 -2
- package/dist/components/divider/src/RsDivider.impl.js +26 -12
- package/dist/components/divider/src/RsDivider.js +1 -1
- package/dist/components/divider/src/divider-utils.d.ts +4 -0
- package/dist/components/drawer/src/RsDrawer.impl.js +1 -1
- package/dist/components/dropdown/src/RsDropdown.impl.js +1 -1
- package/dist/components/dynamic-tags/src/RsDynamicTags.css +23 -23
- package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +1 -1
- package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
- package/dist/components/form/src/form-rules.js +2 -2
- package/dist/components/icon/src/RsIcon.css +9 -4
- package/dist/components/icon/src/RsIcon.d.ts +4 -3
- package/dist/components/icon/src/RsIcon.impl.js +9 -32
- package/dist/components/icon/src/RsIcon.js +1 -1
- package/dist/components/icon/src/icon-utils.d.ts +17 -0
- package/dist/components/icon/src/icon-utils.js +39 -0
- package/dist/components/input/src/input-rules.js +3 -3
- package/dist/components/link/index.d.ts +1 -0
- package/dist/components/link/src/RsLink.css +58 -17
- package/dist/components/link/src/RsLink.d.ts +12 -4
- package/dist/components/link/src/RsLink.impl.js +26 -25
- package/dist/components/link/src/RsLink.js +2 -1
- package/dist/components/link/src/link-utils.d.ts +9 -0
- package/dist/components/link/src/link-utils.js +15 -0
- package/dist/components/loading/src/RsLoading.d.ts +2 -2
- package/dist/components/menu/src/RsMenuItems.impl.js +1 -1
- package/dist/components/radio/src/RsRadio.impl.js +1 -1
- package/dist/components/radio/src/RsRadioItem.impl.js +1 -1
- package/dist/components/select/src/RsSelect.impl.js +1 -1
- package/dist/components/switch/src/RsSwitch.impl.js +1 -1
- package/dist/components/tabs/src/RsTabs.impl.js +1 -1
- package/dist/components/tag/index.d.ts +1 -1
- package/dist/components/tag/src/RsTag.css +42 -38
- package/dist/components/tag/src/RsTag.d.ts +3 -2
- package/dist/components/tag/src/RsTag.impl.js +18 -9
- package/dist/components/tag/src/RsTag.js +1 -1
- package/dist/components/tag/src/tag-utils.d.ts +8 -0
- package/dist/components/terminal/src/RsTerminal.d.ts +1 -1
- package/dist/components/time-picker/src/RsTimePicker.impl.js +1 -1
- package/dist/components/tooltip/src/RsTooltip.impl.js +1 -1
- package/dist/composables/createRsDialog.js +3 -3
- package/dist/composables/useRsConfig.js +2 -2
- package/dist/composables/useRsI18n.d.ts +1 -1
- package/dist/composables/useRsI18n.js +3 -3
- package/dist/index.d.ts +5 -1
- package/dist/index.js +3 -0
- package/dist/locale/interpolate.js +15 -3
- package/dist/locale/messages.d.ts +2 -0
- package/dist/locale/messages.js +3 -1
- package/dist/locale/registry-public.d.ts +1 -0
- package/dist/locale/resolve-host.d.ts +7 -0
- package/dist/locale/resolve-host.js +46 -0
- package/dist/locale/types.d.ts +2 -0
- package/dist/locale/types.js +2 -0
- package/package.json +10 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
|
|
2
2
|
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
3
|
-
import { resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
|
|
3
|
+
import { placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
|
|
4
4
|
import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
|
|
5
5
|
import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
|
|
6
6
|
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, toDisplayString, unref, useId, useSlots, watch } from "vue";
|
|
@@ -21,6 +21,7 @@ var _hoisted_2 = {
|
|
|
21
21
|
var _hoisted_3 = ["id"];
|
|
22
22
|
var TOOLTIP_DELAY_MS = 300;
|
|
23
23
|
var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
24
|
+
name: "RsButton",
|
|
24
25
|
__name: "RsButton",
|
|
25
26
|
props: {
|
|
26
27
|
variant: { default: "primary" },
|
|
@@ -36,7 +37,10 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
36
37
|
type: Boolean,
|
|
37
38
|
default: false
|
|
38
39
|
},
|
|
39
|
-
bordered: {
|
|
40
|
+
bordered: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
default: void 0
|
|
43
|
+
},
|
|
40
44
|
icon: {},
|
|
41
45
|
iconSize: {},
|
|
42
46
|
iconOnly: {
|
|
@@ -82,8 +86,9 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
82
86
|
if (!props.iconOnly) return void 0;
|
|
83
87
|
return props.ariaLabel || props.tooltip || void 0;
|
|
84
88
|
});
|
|
85
|
-
/**
|
|
89
|
+
/** 避免路过按钮时闪一下 */
|
|
86
90
|
const tipId = useId();
|
|
91
|
+
const tipRef = ref(null);
|
|
87
92
|
const tipOpen = ref(false);
|
|
88
93
|
const tipStyle = ref({});
|
|
89
94
|
let openTimer = null;
|
|
@@ -97,24 +102,24 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
97
102
|
}
|
|
98
103
|
function updateTipPosition() {
|
|
99
104
|
const el = btnRef.value;
|
|
100
|
-
if (!el) return;
|
|
105
|
+
if (!el || typeof window === "undefined") return;
|
|
101
106
|
const rect = el.getBoundingClientRect();
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
const tip = tipRef.value?.getBoundingClientRect();
|
|
108
|
+
const box = placeRsButtonTip({
|
|
109
|
+
top: rect.top,
|
|
110
|
+
left: rect.left,
|
|
111
|
+
width: rect.width,
|
|
112
|
+
height: rect.height
|
|
113
|
+
}, {
|
|
114
|
+
width: tip?.width ?? 96,
|
|
115
|
+
height: tip?.height ?? 28
|
|
116
|
+
}, {
|
|
117
|
+
width: window.innerWidth,
|
|
118
|
+
height: window.innerHeight
|
|
119
|
+
});
|
|
114
120
|
tipStyle.value = {
|
|
115
|
-
top: `${
|
|
116
|
-
left: `${
|
|
117
|
-
transform
|
|
121
|
+
top: `${box.top}px`,
|
|
122
|
+
left: `${box.left}px`
|
|
118
123
|
};
|
|
119
124
|
}
|
|
120
125
|
function scheduleTipPosition() {
|
|
@@ -148,11 +153,16 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
148
153
|
}
|
|
149
154
|
function openTipNow() {
|
|
150
155
|
if (!showFloatingText.value || props.disabled || props.loading) return;
|
|
151
|
-
updateTipPosition();
|
|
152
156
|
if (!tipOpen.value) {
|
|
153
157
|
tipOpen.value = true;
|
|
154
158
|
bindTipFollow(true);
|
|
155
159
|
}
|
|
160
|
+
nextTick(() => updateTipPosition());
|
|
161
|
+
}
|
|
162
|
+
function onActivate(event) {
|
|
163
|
+
if (!props.loading) return;
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
event.stopImmediatePropagation();
|
|
156
166
|
}
|
|
157
167
|
function scheduleOpenTip() {
|
|
158
168
|
if (!showFloatingText.value || props.disabled || props.loading) return;
|
|
@@ -181,8 +191,9 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
181
191
|
if (!el) return;
|
|
182
192
|
if (loading) {
|
|
183
193
|
await nextTick();
|
|
184
|
-
|
|
185
|
-
|
|
194
|
+
if (!btnRef.value) return;
|
|
195
|
+
const w = btnRef.value.offsetWidth;
|
|
196
|
+
if (w > 0) btnRef.value.style.minWidth = `${w}px`;
|
|
186
197
|
} else el.style.minWidth = "";
|
|
187
198
|
});
|
|
188
199
|
onUnmounted(() => {
|
|
@@ -200,6 +211,7 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
200
211
|
"aria-disabled": __props.disabled || __props.loading || void 0,
|
|
201
212
|
"aria-label": ariaLabel.value,
|
|
202
213
|
"aria-describedby": tipDescribedBy.value,
|
|
214
|
+
onClickCapture: onActivate,
|
|
203
215
|
onMouseenter: scheduleOpenTip,
|
|
204
216
|
onMouseleave: closeTip,
|
|
205
217
|
onFocus,
|
|
@@ -210,24 +222,24 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
210
222
|
key: 1,
|
|
211
223
|
class: "rs-btn__icon",
|
|
212
224
|
name: __props.icon,
|
|
213
|
-
size: resolvedIconSize.value
|
|
214
|
-
|
|
215
|
-
}, null, 8, [
|
|
216
|
-
"name",
|
|
217
|
-
"size",
|
|
218
|
-
"label"
|
|
219
|
-
])) : createCommentVNode("", true),
|
|
225
|
+
size: resolvedIconSize.value
|
|
226
|
+
}, null, 8, ["name", "size"])) : createCommentVNode("", true),
|
|
220
227
|
hasLabel.value && !__props.iconOnly ? (openBlock(), createElementBlock("span", {
|
|
221
228
|
key: 2,
|
|
222
229
|
class: normalizeClass(["rs-btn__label", { "rs-btn__label--reveal": __props.revealLabel && __props.icon }])
|
|
223
230
|
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2)) : createCommentVNode("", true),
|
|
224
|
-
|
|
231
|
+
showFloatingText.value ? (openBlock(), createBlock(Teleport, {
|
|
232
|
+
key: 3,
|
|
233
|
+
to: "body"
|
|
234
|
+
}, [tipOpen.value ? (openBlock(), createElementBlock("span", {
|
|
225
235
|
key: 0,
|
|
236
|
+
ref_key: "tipRef",
|
|
237
|
+
ref: tipRef,
|
|
226
238
|
id: unref(tipId),
|
|
227
239
|
class: "rs-btn__tooltip",
|
|
228
240
|
style: normalizeStyle(tipStyle.value),
|
|
229
241
|
role: "tooltip"
|
|
230
|
-
}, [__props.tooltip ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(__props.tooltip), 1)], 64)) : __props.iconOnly ? renderSlot(_ctx.$slots, "default", {}, void 0, true, 1) : createCommentVNode("", true)], 12, _hoisted_3)) : createCommentVNode("", true)]))
|
|
242
|
+
}, [__props.tooltip ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(__props.tooltip), 1)], 64)) : __props.iconOnly ? renderSlot(_ctx.$slots, "default", {}, void 0, true, 1) : createCommentVNode("", true)], 12, _hoisted_3)) : createCommentVNode("", true)])) : createCommentVNode("", true)
|
|
231
243
|
], 46, _hoisted_1);
|
|
232
244
|
};
|
|
233
245
|
}
|
|
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
|
|
|
3
3
|
import RsButton_vue_vue_type_script_setup_true_lang_default from "./RsButton.impl.js";
|
|
4
4
|
|
|
5
5
|
//#region src/components/button/src/RsButton.vue
|
|
6
|
-
var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
6
|
+
var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-423f0a90"]]);
|
|
7
7
|
//#endregion
|
|
8
8
|
export { RsButton_default as default };
|
|
@@ -24,3 +24,20 @@ export declare function resolveRsButtonTone(variant?: RsButtonVariant, tone?: Rs
|
|
|
24
24
|
export declare function isRsButtonFilledVariant(variant: RsButtonVariant): boolean;
|
|
25
25
|
/** 所有变体都可叠加 tone(形态 × 色相)。 */
|
|
26
26
|
export declare function supportsRsButtonTone(_variant?: RsButtonVariant): boolean;
|
|
27
|
+
export interface RsButtonTipBox {
|
|
28
|
+
top: number;
|
|
29
|
+
left: number;
|
|
30
|
+
}
|
|
31
|
+
/** 把内置 tip 贴到按钮:优先下方,贴边时夹进视口。供测试与 SSR 无 window 调用。 */
|
|
32
|
+
export declare function placeRsButtonTip(anchor: {
|
|
33
|
+
top: number;
|
|
34
|
+
left: number;
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
}, popup: {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
}, viewport: {
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}, gap?: number): RsButtonTipBox;
|
|
@@ -24,5 +24,18 @@ function isRsButtonFilledVariant(variant) {
|
|
|
24
24
|
function supportsRsButtonTone(_variant) {
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
|
+
/** 把内置 tip 贴到按钮:优先下方,贴边时夹进视口。供测试与 SSR 无 window 调用。 */
|
|
28
|
+
function placeRsButtonTip(anchor, popup, viewport, gap = 6) {
|
|
29
|
+
const below = anchor.top + anchor.height + gap;
|
|
30
|
+
const above = anchor.top - popup.height - gap;
|
|
31
|
+
const top = below + popup.height <= viewport.height || above < gap ? below : Math.max(gap, above);
|
|
32
|
+
const width = Math.min(popup.width, Math.max(0, viewport.width - gap * 2));
|
|
33
|
+
const preferred = anchor.left + anchor.width / 2 - width / 2;
|
|
34
|
+
const maxLeft = Math.max(gap, viewport.width - width - gap);
|
|
35
|
+
return {
|
|
36
|
+
top: Math.round(top),
|
|
37
|
+
left: Math.round(Math.min(Math.max(gap, preferred), maxLeft))
|
|
38
|
+
};
|
|
39
|
+
}
|
|
27
40
|
//#endregion
|
|
28
|
-
export { isRsButtonFilledVariant, resolveRsButtonTone, resolveRsButtonVariant, supportsRsButtonTone };
|
|
41
|
+
export { isRsButtonFilledVariant, placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant, supportsRsButtonTone };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { rsRadiusCss } from "../../_shared/src/resolve-radius.js";
|
|
2
1
|
import { Primitive } from "../../_shared/src/reka.js";
|
|
2
|
+
import { rsRadiusCss } from "../../_shared/src/resolve-radius.js";
|
|
3
3
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
|
|
4
4
|
//#region src/components/card/src/RsCard.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = {
|
|
@@ -25,10 +25,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
|
|
|
25
25
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
27
|
disabled: boolean;
|
|
28
|
-
separator: string;
|
|
29
28
|
allowClear: boolean;
|
|
30
29
|
changeOnSelect: boolean;
|
|
31
30
|
expandTrigger: RsCascaderExpandTrigger;
|
|
31
|
+
separator: string;
|
|
32
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
33
|
declare const _default: typeof __VLS_export;
|
|
34
34
|
export default _default;
|
|
@@ -18,14 +18,13 @@ type __VLS_Props = {
|
|
|
18
18
|
*/
|
|
19
19
|
themeScope?: 'global' | 'local';
|
|
20
20
|
};
|
|
21
|
-
declare var
|
|
21
|
+
declare var __VLS_8: {};
|
|
22
22
|
type __VLS_Slots = {} & {
|
|
23
|
-
default?: (props: typeof
|
|
23
|
+
default?: (props: typeof __VLS_8) => any;
|
|
24
24
|
};
|
|
25
25
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
26
26
|
dir: RsDirMode;
|
|
27
27
|
theme: RsThemeMode;
|
|
28
|
-
locale: RsLocale;
|
|
29
28
|
controlSize: RsComponentSize;
|
|
30
29
|
themeScope: "global" | "local";
|
|
31
30
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveHostLocale } from "../../../locale/resolve-host.js";
|
|
2
2
|
import { applyTheme, subscribePreferredColorScheme } from "../../../theme/apply.js";
|
|
3
3
|
import { createRsConfigState, provideRsConfig } from "../../../composables/useRsConfig.js";
|
|
4
|
-
import { applyLocale } from "../../../locale/apply.js";
|
|
5
|
-
import {
|
|
4
|
+
import { applyLocale, resolveDirMode } from "../../../locale/apply.js";
|
|
5
|
+
import { ConfigProvider } from "../../_shared/src/reka.js";
|
|
6
|
+
import { computed, createBlock, createElementVNode, defineComponent, onBeforeUnmount, openBlock, ref, renderSlot, unref, watch, withCtx } from "vue";
|
|
6
7
|
//#region src/components/config-provider/src/RsConfigProvider.vue?vue&type=script&setup=true&lang.ts
|
|
7
8
|
var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
8
9
|
name: "RsConfigProvider",
|
|
9
10
|
__name: "RsConfigProvider",
|
|
10
11
|
props: {
|
|
11
12
|
theme: { default: "light" },
|
|
12
|
-
locale: {
|
|
13
|
+
locale: {},
|
|
13
14
|
dir: { default: "auto" },
|
|
14
15
|
controlSize: { default: "md" },
|
|
15
16
|
controlRadius: {},
|
|
@@ -18,7 +19,7 @@ var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
18
19
|
setup(__props) {
|
|
19
20
|
const props = __props;
|
|
20
21
|
const rootEl = ref(null);
|
|
21
|
-
const config = createRsConfigState(props.theme, props.locale, props.controlSize, props.controlRadius, props.dir);
|
|
22
|
+
const config = createRsConfigState(props.theme, props.locale ?? resolveHostLocale(), props.controlSize, props.controlRadius, props.dir);
|
|
22
23
|
provideRsConfig(config);
|
|
23
24
|
let stopPreferred;
|
|
24
25
|
function chromeTarget() {
|
|
@@ -47,7 +48,7 @@ var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
47
48
|
if (value !== config.theme.value) config.setTheme(value);
|
|
48
49
|
});
|
|
49
50
|
watch(() => props.locale, (value) => {
|
|
50
|
-
if (value !== config.locale.value) config.setLocale(value);
|
|
51
|
+
if (value != null && value !== config.locale.value) config.setLocale(value);
|
|
51
52
|
});
|
|
52
53
|
watch(() => props.dir, (value) => {
|
|
53
54
|
if (value !== config.dir.value) config.setDir(value);
|
|
@@ -73,15 +74,23 @@ var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
73
74
|
syncLocale();
|
|
74
75
|
}
|
|
75
76
|
});
|
|
77
|
+
const resolvedDir = computed(() => resolveDirMode(config.dir.value, config.locale.value));
|
|
78
|
+
const rekaLocale = computed(() => config.locale.value);
|
|
76
79
|
onBeforeUnmount(() => {
|
|
77
80
|
stopPreferred?.();
|
|
78
81
|
});
|
|
79
82
|
return (_ctx, _cache) => {
|
|
80
|
-
return openBlock(),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
return openBlock(), createBlock(unref(ConfigProvider), {
|
|
84
|
+
dir: resolvedDir.value,
|
|
85
|
+
locale: rekaLocale.value
|
|
86
|
+
}, {
|
|
87
|
+
default: withCtx(() => [createElementVNode("div", {
|
|
88
|
+
ref_key: "rootEl",
|
|
89
|
+
ref: rootEl,
|
|
90
|
+
class: "rs-config-provider"
|
|
91
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512)]),
|
|
92
|
+
_: 3
|
|
93
|
+
}, 8, ["dir", "locale"]);
|
|
85
94
|
};
|
|
86
95
|
}
|
|
87
96
|
});
|
|
@@ -3,6 +3,6 @@ import RsConfigProvider_vue_vue_type_script_setup_true_lang_default from "./RsCo
|
|
|
3
3
|
|
|
4
4
|
import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
5
|
//#region src/components/config-provider/src/RsConfigProvider.vue
|
|
6
|
-
var RsConfigProvider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsConfigProvider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
6
|
+
var RsConfigProvider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsConfigProvider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2be1193e"]]);
|
|
7
7
|
//#endregion
|
|
8
8
|
export { RsConfigProvider_default as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
2
1
|
import { ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger } from "../../_shared/src/reka.js";
|
|
2
|
+
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
3
3
|
import RsContextMenuItems_default from "./RsContextMenuItems.js";
|
|
4
4
|
import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref, withCtx } from "vue";
|
|
5
5
|
//#region src/components/context-menu/src/RsContextMenuItems.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
|
|
2
|
+
import { PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from "../../_shared/src/reka.js";
|
|
2
3
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
3
4
|
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
4
5
|
import { buildLocalInputRules, runFormFieldRules } from "../../form/src/form-rules.js";
|
|
5
6
|
import { isRsFormItemBoundControl, useRsFormContext, useRsFormField, useRsFormItemContext } from "../../form/src/form-utils.js";
|
|
6
7
|
import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
|
|
7
|
-
import { PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from "../../_shared/src/reka.js";
|
|
8
8
|
import { EMPTY_DATE_RANGE, compareDates, extractTimeFromDateTime, formatDateDisplay, formatDateParts, formatDateRangeLabel, formatDateTimeDisplay, formatDateTimeParts, formatDateTimeRangeLabel, formatTimestampValue, fromInternalPickerValue, getNextMonth, getNowDateTime, getTodayDate, isDateRangeEmpty, isDateRangeOrdered, isDateWithinBounds, isTimestampRange, normalizeShortcutValue, parseDateTimeValue, parseDateValue, parseTimestampValue, toInternalPickerValue, toRangeEndpointString } from "./date-picker-utils.js";
|
|
9
9
|
import RsCalendarGrid_default from "../../calendar-grid/src/RsCalendarGrid.js";
|
|
10
10
|
import { formatTimeParts } from "../../time-picker/src/time-picker-utils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle } from "../../_shared/src/reka.js";
|
|
1
2
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
2
3
|
import RsButton_default from "../../button/src/RsButton.js";
|
|
3
|
-
import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle } from "../../_shared/src/reka.js";
|
|
4
4
|
import { isRsDialogWidthPreset, resolveDialogOverlayStyle, resolveRsDialogCssWidth, runRsConfirmBeforeClose } from "./dialog-utils.js";
|
|
5
5
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useModel, withCtx } from "vue";
|
|
6
6
|
//#region src/components/dialog/src/RsConfirmDialog.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle } from "../../_shared/src/reka.js";
|
|
1
2
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
2
3
|
import RsButton_default from "../../button/src/RsButton.js";
|
|
3
|
-
import { DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle } from "../../_shared/src/reka.js";
|
|
4
4
|
import { dialogViewportSize } from "./dialog-viewport.js";
|
|
5
5
|
import { isRsDialogWidthPreset, resolveDialogOverlayStyle, resolveRsDialogCssWidth, resolveRsDialogWidthPx, runRsDialogBeforeClose } from "./dialog-utils.js";
|
|
6
6
|
import { useRsDialogWindow } from "./dialog-window.js";
|
|
@@ -1,51 +1,66 @@
|
|
|
1
1
|
|
|
2
|
-
.rs-divider[data-v-
|
|
2
|
+
.rs-divider[data-v-489327cb] {
|
|
3
|
+
--rs-divider-color: var(--rs-border);
|
|
4
|
+
--rs-divider-width: 1px;
|
|
5
|
+
--rs-divider-gap: var(--rs-space-md);
|
|
3
6
|
flex-shrink: 0;
|
|
4
7
|
box-sizing: border-box;
|
|
5
8
|
border: 0;
|
|
6
9
|
background: transparent;
|
|
7
10
|
}
|
|
8
|
-
.rs-divider--horizontal[data-v-
|
|
11
|
+
.rs-divider--horizontal[data-v-489327cb] {
|
|
9
12
|
display: flex;
|
|
10
13
|
align-items: center;
|
|
11
14
|
width: 100%;
|
|
12
|
-
margin: var(--rs-
|
|
15
|
+
margin-block: var(--rs-divider-gap);
|
|
16
|
+
margin-inline: 0;
|
|
13
17
|
}
|
|
14
|
-
.rs-divider--horizontal[data-v-
|
|
15
|
-
content: '';
|
|
18
|
+
hr.rs-divider--horizontal[data-v-489327cb] {
|
|
16
19
|
display: block;
|
|
17
|
-
|
|
18
|
-
border-
|
|
20
|
+
height: 0;
|
|
21
|
+
border-block-start: var(--rs-divider-width) solid var(--rs-divider-color);
|
|
19
22
|
}
|
|
20
|
-
.rs-divider--horizontal.rs-divider--dashed[data-v-
|
|
21
|
-
border-
|
|
23
|
+
hr.rs-divider--horizontal.rs-divider--dashed[data-v-489327cb] {
|
|
24
|
+
border-block-start-style: dashed;
|
|
22
25
|
}
|
|
23
|
-
.rs-divider--horizontal.rs-divider--with-label[data-v-
|
|
24
|
-
.rs-divider--horizontal.rs-divider--with-label[data-v-
|
|
26
|
+
.rs-divider--horizontal.rs-divider--with-label[data-v-489327cb]::before,
|
|
27
|
+
.rs-divider--horizontal.rs-divider--with-label[data-v-489327cb]::after {
|
|
25
28
|
content: '';
|
|
26
29
|
flex: 1 1 auto;
|
|
27
|
-
border-
|
|
30
|
+
border-block-start: var(--rs-divider-width) solid var(--rs-divider-color);
|
|
28
31
|
}
|
|
29
|
-
.rs-divider--horizontal.rs-divider--dashed.rs-divider--with-label[data-v-
|
|
30
|
-
.rs-divider--horizontal.rs-divider--dashed.rs-divider--with-label[data-v-
|
|
31
|
-
border-
|
|
32
|
+
.rs-divider--horizontal.rs-divider--dashed.rs-divider--with-label[data-v-489327cb]::before,
|
|
33
|
+
.rs-divider--horizontal.rs-divider--dashed.rs-divider--with-label[data-v-489327cb]::after {
|
|
34
|
+
border-block-start-style: dashed;
|
|
32
35
|
}
|
|
33
|
-
.rs-divider__label[data-v-
|
|
36
|
+
.rs-divider__label[data-v-489327cb] {
|
|
34
37
|
flex-shrink: 0;
|
|
35
|
-
padding: 0
|
|
38
|
+
padding-block: 0;
|
|
39
|
+
padding-inline: var(--rs-divider-gap);
|
|
36
40
|
font-size: var(--rs-font-size-xs);
|
|
37
|
-
color: var(--rs-
|
|
41
|
+
color: var(--rs-text-secondary);
|
|
38
42
|
white-space: nowrap;
|
|
39
43
|
}
|
|
40
|
-
.rs-divider--vertical[data-v-
|
|
44
|
+
.rs-divider--vertical[data-v-489327cb] {
|
|
41
45
|
display: inline-block;
|
|
42
46
|
align-self: stretch;
|
|
43
47
|
width: 0;
|
|
44
48
|
min-height: 1em;
|
|
45
|
-
margin: 0
|
|
46
|
-
|
|
49
|
+
margin-block: 0;
|
|
50
|
+
margin-inline: var(--rs-divider-gap);
|
|
51
|
+
border-inline-start: var(--rs-divider-width) solid var(--rs-divider-color);
|
|
47
52
|
vertical-align: middle;
|
|
48
53
|
}
|
|
49
|
-
.rs-divider--vertical.rs-divider--dashed[data-v-
|
|
54
|
+
.rs-divider--vertical.rs-divider--dashed[data-v-489327cb] {
|
|
50
55
|
border-inline-start-style: dashed;
|
|
51
56
|
}
|
|
57
|
+
@media (forced-colors: active) {
|
|
58
|
+
hr.rs-divider--horizontal[data-v-489327cb],
|
|
59
|
+
.rs-divider--horizontal.rs-divider--with-label[data-v-489327cb]::before,
|
|
60
|
+
.rs-divider--horizontal.rs-divider--with-label[data-v-489327cb]::after {
|
|
61
|
+
border-block-start-color: CanvasText;
|
|
62
|
+
}
|
|
63
|
+
.rs-divider--vertical[data-v-489327cb] {
|
|
64
|
+
border-inline-start-color: CanvasText;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type RsDividerOrientation } from './divider-utils';
|
|
2
|
+
export type { RsDividerOrientation };
|
|
1
3
|
type __VLS_Props = {
|
|
2
|
-
orientation?:
|
|
4
|
+
orientation?: RsDividerOrientation;
|
|
3
5
|
dashed?: boolean;
|
|
4
6
|
};
|
|
5
7
|
declare var __VLS_1: {};
|
|
@@ -7,7 +9,7 @@ type __VLS_Slots = {} & {
|
|
|
7
9
|
default?: (props: typeof __VLS_1) => any;
|
|
8
10
|
};
|
|
9
11
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
10
|
-
orientation:
|
|
12
|
+
orientation: RsDividerOrientation;
|
|
11
13
|
dashed: boolean;
|
|
12
14
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
15
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderSlot, unref, useId, useSlots } from "vue";
|
|
2
2
|
//#region src/components/divider/src/RsDivider.vue?vue&type=script&setup=true&lang.ts
|
|
3
3
|
var _hoisted_1 = ["aria-orientation"];
|
|
4
|
-
var _hoisted_2 =
|
|
5
|
-
key: 0,
|
|
6
|
-
class: "rs-divider__label"
|
|
7
|
-
};
|
|
4
|
+
var _hoisted_2 = ["id"];
|
|
8
5
|
var RsDivider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
|
+
name: "RsDivider",
|
|
9
7
|
__name: "RsDivider",
|
|
10
8
|
props: {
|
|
11
9
|
orientation: { default: "horizontal" },
|
|
@@ -15,15 +13,31 @@ var RsDivider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
|
|
|
15
13
|
}
|
|
16
14
|
},
|
|
17
15
|
setup(__props) {
|
|
16
|
+
const props = __props;
|
|
17
|
+
const slots = useSlots();
|
|
18
|
+
const labelId = useId();
|
|
19
|
+
const hasSlot = computed(() => Boolean(slots.default));
|
|
20
|
+
const showLabel = computed(() => hasSlot.value && props.orientation === "horizontal");
|
|
21
|
+
const rootClass = computed(() => [
|
|
22
|
+
"rs-divider",
|
|
23
|
+
`rs-divider--${props.orientation}`,
|
|
24
|
+
{
|
|
25
|
+
"rs-divider--dashed": props.dashed,
|
|
26
|
+
"rs-divider--with-label": hasSlot.value
|
|
27
|
+
}
|
|
28
|
+
]);
|
|
18
29
|
return (_ctx, _cache) => {
|
|
19
|
-
return openBlock(), createElementBlock("
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"rs-divider--with-label": _ctx.$slots.default
|
|
23
|
-
}]]),
|
|
24
|
-
role: "separator",
|
|
30
|
+
return !showLabel.value ? (openBlock(), createElementBlock("hr", {
|
|
31
|
+
key: 0,
|
|
32
|
+
class: normalizeClass(rootClass.value),
|
|
25
33
|
"aria-orientation": __props.orientation
|
|
26
|
-
},
|
|
34
|
+
}, null, 10, _hoisted_1)) : (openBlock(), createElementBlock("div", {
|
|
35
|
+
key: 1,
|
|
36
|
+
class: normalizeClass(rootClass.value)
|
|
37
|
+
}, [createElementVNode("span", {
|
|
38
|
+
id: unref(labelId),
|
|
39
|
+
class: "rs-divider__label"
|
|
40
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 8, _hoisted_2)], 2));
|
|
27
41
|
};
|
|
28
42
|
}
|
|
29
43
|
});
|
|
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
|
|
|
3
3
|
import RsDivider_vue_vue_type_script_setup_true_lang_default from "./RsDivider.impl.js";
|
|
4
4
|
|
|
5
5
|
//#region src/components/divider/src/RsDivider.vue
|
|
6
|
-
var RsDivider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsDivider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
6
|
+
var RsDivider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsDivider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-489327cb"]]);
|
|
7
7
|
//#endregion
|
|
8
8
|
export { RsDivider_default as default };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const RS_DIVIDER_ORIENTATIONS: readonly ["horizontal", "vertical"];
|
|
2
|
+
export type RsDividerOrientation = (typeof RS_DIVIDER_ORIENTATIONS)[number];
|
|
3
|
+
export declare function isRsDividerOrientation(value: unknown): value is RsDividerOrientation;
|
|
4
|
+
export declare function resolveRsDividerOrientation(orientation?: RsDividerOrientation | null): RsDividerOrientation;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle } from "../../_shared/src/reka.js";
|
|
1
2
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
2
3
|
import RsButton_default from "../../button/src/RsButton.js";
|
|
3
|
-
import { DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle } from "../../_shared/src/reka.js";
|
|
4
4
|
import { RS_DRAWER_MAX_VIEWPORT_RATIO, clampRsDrawerSize, resolveDrawerOverlayStyle, resolveRsDrawerDimensionCss, resolveRsDrawerSizeCss, resolveRsDrawerSizePx, runRsDrawerBeforeClose } from "./drawer-utils.js";
|
|
5
5
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, renderSlot, toDisplayString, unref, useModel, watch, withCtx } from "vue";
|
|
6
6
|
//#region src/components/drawer/src/RsDrawer.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { DropdownMenuContent, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRoot, DropdownMenuTrigger } from "../../_shared/src/reka.js";
|
|
1
2
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
2
3
|
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
3
|
-
import { DropdownMenuContent, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRoot, DropdownMenuTrigger } from "../../_shared/src/reka.js";
|
|
4
4
|
import { flattenDropdownItems } from "./dropdown-utils.js";
|
|
5
5
|
import RsDropdownItems_default from "./RsDropdownItems.js";
|
|
6
6
|
import { computed, createBlock, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useModel, withCtx } from "vue";
|