@skewedaspect/sleekspace-ui 0.5.1 → 0.6.0
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/components/Card/SkCard.vue.d.ts +13 -1
- package/dist/components/Panel/SkPanel.vue.d.ts +15 -1
- package/dist/components/Panel/types.d.ts +1 -0
- package/dist/components/Select/SkSelect.vue.d.ts +61 -0
- package/dist/components/Select/SkSelectItem.vue.d.ts +134 -0
- package/dist/components/Select/SkSelectSeparator.vue.d.ts +2 -0
- package/dist/components/Select/index.d.ts +4 -0
- package/dist/components/Select/types.d.ts +3 -0
- package/dist/components/Sidebar/SkSidebar.vue.d.ts +8 -1
- package/dist/components/Sidebar/types.d.ts +1 -0
- package/dist/components/Skeleton/SkSkeleton.vue.d.ts +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/sleekspace-ui.css +444 -34
- package/dist/sleekspace-ui.es.js +2014 -283
- package/dist/sleekspace-ui.umd.js +2013 -282
- package/package.json +1 -1
- package/src/components/Card/SkCard.vue +17 -1
- package/src/components/Panel/SkPanel.vue +29 -4
- package/src/components/Panel/types.ts +3 -0
- package/src/components/Select/SkSelect.vue +210 -0
- package/src/components/Select/SkSelectItem.vue +112 -0
- package/src/components/Select/SkSelectSeparator.vue +40 -0
- package/src/components/Select/index.ts +10 -0
- package/src/components/Select/types.ts +10 -0
- package/src/components/Sidebar/SkSidebar.vue +39 -2
- package/src/components/Sidebar/types.ts +2 -0
- package/src/global.d.ts +2 -0
- package/src/index.ts +10 -0
- package/src/styles/components/_card.scss +45 -9
- package/src/styles/components/_index.scss +1 -0
- package/src/styles/components/_listbox.scss +1 -0
- package/src/styles/components/_panel.scss +119 -13
- package/src/styles/components/_select.scss +439 -0
- package/src/styles/components/_sidebar.scss +83 -4
- package/web-types.json +148 -1
package/dist/sleekspace-ui.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as vue from "vue";
|
|
2
|
-
import { inject, provide, Fragment, toValue as toValue$2, shallowRef, readonly, watch, getCurrentScope, onScopeDispose, effectScope, computed, customRef, onBeforeUnmount, watchEffect, isRef, reactive, unref, toRefs, getCurrentInstance, ref, nextTick, onMounted, toHandlerKey, camelize, toRef, onUnmounted, defineComponent, h, Comment, mergeProps, cloneVNode, createBlock, openBlock, withCtx, renderSlot, createVNode, createCommentVNode, withKeys, normalizeStyle, Teleport, normalizeProps, guardReactiveProps, markRaw, createElementBlock, renderList, resolveDynamicComponent, withModifiers, watchPostEffect, shallowReadonly, mergeDefaults, watchSyncEffect, withMemo, createTextVNode, toDisplayString, toRaw, useSlots, toHandlers, normalizeClass,
|
|
2
|
+
import { inject, provide, Fragment, toValue as toValue$2, shallowRef, readonly, watch, getCurrentScope, onScopeDispose, effectScope, computed, customRef, onBeforeUnmount, watchEffect, isRef, reactive, unref, toRefs, getCurrentInstance, ref, nextTick, onMounted, toHandlerKey, camelize, toRef, onUnmounted, defineComponent, h, Comment, mergeProps, cloneVNode, createBlock, openBlock, withCtx, renderSlot, createVNode, createCommentVNode, withKeys, normalizeStyle, Teleport, normalizeProps, guardReactiveProps, markRaw, createElementBlock, renderList, resolveDynamicComponent, withModifiers, watchPostEffect, shallowReadonly, mergeDefaults, watchSyncEffect, withMemo, createTextVNode, toDisplayString, createElementVNode, toRaw, useSlots, toHandlers, normalizeClass, useCssVars, mergeModels, useModel, withDirectives, vModelDynamic, useTemplateRef, Transition, vModelText } from "vue";
|
|
3
3
|
function serialize(o) {
|
|
4
4
|
return typeof o == "string" ? `'${o}'` : new c().serialize(o);
|
|
5
5
|
}
|
|
@@ -762,6 +762,44 @@ function useRafFn(fn, options = {}) {
|
|
|
762
762
|
function cloneFnJSON(source) {
|
|
763
763
|
return JSON.parse(JSON.stringify(source));
|
|
764
764
|
}
|
|
765
|
+
function useResizeObserver(target, callback, options = {}) {
|
|
766
|
+
const { window: window2 = defaultWindow, ...observerOptions } = options;
|
|
767
|
+
let observer;
|
|
768
|
+
const isSupported = useSupported(() => window2 && "ResizeObserver" in window2);
|
|
769
|
+
const cleanup = () => {
|
|
770
|
+
if (observer) {
|
|
771
|
+
observer.disconnect();
|
|
772
|
+
observer = void 0;
|
|
773
|
+
}
|
|
774
|
+
};
|
|
775
|
+
const targets = computed(() => {
|
|
776
|
+
const _targets = toValue$2(target);
|
|
777
|
+
return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
|
|
778
|
+
});
|
|
779
|
+
const stopWatch = watch(
|
|
780
|
+
targets,
|
|
781
|
+
(els) => {
|
|
782
|
+
cleanup();
|
|
783
|
+
if (isSupported.value && window2) {
|
|
784
|
+
observer = new ResizeObserver(callback);
|
|
785
|
+
for (const _el of els) {
|
|
786
|
+
if (_el)
|
|
787
|
+
observer.observe(_el, observerOptions);
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
{ immediate: true, flush: "post" }
|
|
792
|
+
);
|
|
793
|
+
const stop = () => {
|
|
794
|
+
cleanup();
|
|
795
|
+
stopWatch();
|
|
796
|
+
};
|
|
797
|
+
tryOnScopeDispose(stop);
|
|
798
|
+
return {
|
|
799
|
+
isSupported,
|
|
800
|
+
stop
|
|
801
|
+
};
|
|
802
|
+
}
|
|
765
803
|
const EVENT_FOCUS_IN = "focusin";
|
|
766
804
|
const EVENT_FOCUS_OUT = "focusout";
|
|
767
805
|
const PSEUDO_CLASS_FOCUS_WITHIN = ":focus-within";
|
|
@@ -2906,7 +2944,7 @@ var FocusScope_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
2906
2944
|
});
|
|
2907
2945
|
var FocusScope_default = FocusScope_vue_vue_type_script_setup_true_lang_default;
|
|
2908
2946
|
const ITEM_SELECT = "menu.itemSelect";
|
|
2909
|
-
const SELECTION_KEYS = ["Enter", " "];
|
|
2947
|
+
const SELECTION_KEYS$1 = ["Enter", " "];
|
|
2910
2948
|
const FIRST_KEYS = [
|
|
2911
2949
|
"ArrowDown",
|
|
2912
2950
|
"PageUp",
|
|
@@ -2919,8 +2957,8 @@ const LAST_KEYS = [
|
|
|
2919
2957
|
];
|
|
2920
2958
|
const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];
|
|
2921
2959
|
const SUB_OPEN_KEYS = {
|
|
2922
|
-
ltr: [...SELECTION_KEYS, "ArrowRight"],
|
|
2923
|
-
rtl: [...SELECTION_KEYS, "ArrowLeft"]
|
|
2960
|
+
ltr: [...SELECTION_KEYS$1, "ArrowRight"],
|
|
2961
|
+
rtl: [...SELECTION_KEYS$1, "ArrowLeft"]
|
|
2924
2962
|
};
|
|
2925
2963
|
const SUB_CLOSE_KEYS = {
|
|
2926
2964
|
ltr: ["ArrowLeft"],
|
|
@@ -4246,7 +4284,7 @@ var PopperAnchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
4246
4284
|
}
|
|
4247
4285
|
});
|
|
4248
4286
|
var PopperAnchor_default = PopperAnchor_vue_vue_type_script_setup_true_lang_default;
|
|
4249
|
-
const _hoisted_1$
|
|
4287
|
+
const _hoisted_1$C = {
|
|
4250
4288
|
key: 0,
|
|
4251
4289
|
d: "M0 0L6 6L12 0"
|
|
4252
4290
|
};
|
|
@@ -4291,7 +4329,7 @@ var Arrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
4291
4329
|
viewBox: _ctx.asChild ? void 0 : "0 0 12 6",
|
|
4292
4330
|
preserveAspectRatio: _ctx.asChild ? void 0 : "none"
|
|
4293
4331
|
}), {
|
|
4294
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [!_ctx.rounded ? (openBlock(), createElementBlock("path", _hoisted_1$
|
|
4332
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [!_ctx.rounded ? (openBlock(), createElementBlock("path", _hoisted_1$C)) : (openBlock(), createElementBlock("path", _hoisted_2$i))])]),
|
|
4295
4333
|
_: 3
|
|
4296
4334
|
}, 16, [
|
|
4297
4335
|
"width",
|
|
@@ -6475,12 +6513,12 @@ var ComboboxAnchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6475
6513
|
}
|
|
6476
6514
|
});
|
|
6477
6515
|
var ComboboxAnchor_default = ComboboxAnchor_vue_vue_type_script_setup_true_lang_default;
|
|
6478
|
-
function valueComparator(value, currentValue, comparator) {
|
|
6516
|
+
function valueComparator$1(value, currentValue, comparator) {
|
|
6479
6517
|
if (value === void 0) return false;
|
|
6480
|
-
else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));
|
|
6481
|
-
else return compare(value, currentValue, comparator);
|
|
6518
|
+
else if (Array.isArray(value)) return value.some((val) => compare$1(val, currentValue, comparator));
|
|
6519
|
+
else return compare$1(value, currentValue, comparator);
|
|
6482
6520
|
}
|
|
6483
|
-
function compare(value, currentValue, comparator) {
|
|
6521
|
+
function compare$1(value, currentValue, comparator) {
|
|
6484
6522
|
if (value === void 0 || currentValue === void 0) return false;
|
|
6485
6523
|
if (typeof value === "string") return value === currentValue;
|
|
6486
6524
|
if (typeof comparator === "function") return comparator(value, currentValue);
|
|
@@ -6574,7 +6612,7 @@ var ListboxRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
6574
6612
|
isUserAction.value = true;
|
|
6575
6613
|
if (props.multiple) {
|
|
6576
6614
|
const modelArray = Array.isArray(modelValue.value) ? [...modelValue.value] : [];
|
|
6577
|
-
const index = modelArray.findIndex((i) => compare(i, val, props.by));
|
|
6615
|
+
const index = modelArray.findIndex((i) => compare$1(i, val, props.by));
|
|
6578
6616
|
if (props.selectionBehavior === "toggle") {
|
|
6579
6617
|
index === -1 ? modelArray.push(val) : modelArray.splice(index, 1);
|
|
6580
6618
|
modelValue.value = modelArray;
|
|
@@ -6582,7 +6620,7 @@ var ListboxRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
6582
6620
|
modelValue.value = [val];
|
|
6583
6621
|
firstValue.value = val;
|
|
6584
6622
|
}
|
|
6585
|
-
} else if (props.selectionBehavior === "toggle") if (compare(modelValue.value, val, props.by)) modelValue.value = void 0;
|
|
6623
|
+
} else if (props.selectionBehavior === "toggle") if (compare$1(modelValue.value, val, props.by)) modelValue.value = void 0;
|
|
6586
6624
|
else modelValue.value = val;
|
|
6587
6625
|
else modelValue.value = val;
|
|
6588
6626
|
setTimeout(() => {
|
|
@@ -6610,7 +6648,7 @@ var ListboxRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
6610
6648
|
function highlightItem(value) {
|
|
6611
6649
|
if (isVirtual.value) virtualHighlightHook.trigger(value);
|
|
6612
6650
|
else {
|
|
6613
|
-
const item = getItems().find((i) => compare(i.value, value, props.by));
|
|
6651
|
+
const item = getItems().find((i) => compare$1(i.value, value, props.by));
|
|
6614
6652
|
if (item) {
|
|
6615
6653
|
highlightedElement.value = item.ref;
|
|
6616
6654
|
changeHighlight(item.ref);
|
|
@@ -6989,7 +7027,7 @@ var ListboxItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
6989
7027
|
const { forwardRef, currentElement } = useForwardExpose();
|
|
6990
7028
|
const rootContext = injectListboxRootContext();
|
|
6991
7029
|
const isHighlighted = computed(() => currentElement.value === rootContext.highlightedElement.value);
|
|
6992
|
-
const isSelected = computed(() => valueComparator(rootContext.modelValue.value, props.value, rootContext.by));
|
|
7030
|
+
const isSelected = computed(() => valueComparator$1(rootContext.modelValue.value, props.value, rootContext.by));
|
|
6993
7031
|
const disabled = computed(() => rootContext.disabled.value || props.disabled);
|
|
6994
7032
|
async function handleSelect2(ev) {
|
|
6995
7033
|
emits("select", ev);
|
|
@@ -8539,7 +8577,7 @@ var MenuItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
8539
8577
|
onKeydown: _cache[2] || (_cache[2] = async (event) => {
|
|
8540
8578
|
const isTypingAhead = unref(contentContext).searchRef.value !== "";
|
|
8541
8579
|
if (_ctx.disabled || isTypingAhead && event.key === " ") return;
|
|
8542
|
-
if (unref(SELECTION_KEYS).includes(event.key)) {
|
|
8580
|
+
if (unref(SELECTION_KEYS$1).includes(event.key)) {
|
|
8543
8581
|
event.currentTarget.click();
|
|
8544
8582
|
event.preventDefault();
|
|
8545
8583
|
}
|
|
@@ -11952,167 +11990,1626 @@ var RadioGroupIndicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE
|
|
|
11952
11990
|
}
|
|
11953
11991
|
});
|
|
11954
11992
|
var RadioGroupIndicator_default = RadioGroupIndicator_vue_vue_type_script_setup_true_lang_default;
|
|
11955
|
-
|
|
11956
|
-
|
|
11957
|
-
|
|
11958
|
-
|
|
11959
|
-
|
|
11960
|
-
|
|
11961
|
-
|
|
11962
|
-
|
|
11963
|
-
|
|
11964
|
-
|
|
11965
|
-
|
|
11966
|
-
|
|
11967
|
-
if (totalValues > 2) return `Value ${index + 1} of ${totalValues}`;
|
|
11968
|
-
else if (totalValues === 2) return ["Minimum", "Maximum"][index];
|
|
11969
|
-
else return void 0;
|
|
11970
|
-
}
|
|
11971
|
-
function getClosestValueIndex(values, nextValue) {
|
|
11972
|
-
if (values.length === 1) return 0;
|
|
11973
|
-
const distances = values.map((value) => Math.abs(value - nextValue));
|
|
11974
|
-
const closestDistance = Math.min(...distances);
|
|
11975
|
-
return distances.indexOf(closestDistance);
|
|
11976
|
-
}
|
|
11977
|
-
function getThumbInBoundsOffset(width, left, direction) {
|
|
11978
|
-
const halfWidth = width / 2;
|
|
11979
|
-
const halfPercent = 50;
|
|
11980
|
-
const offset2 = linearScale([0, halfPercent], [0, halfWidth]);
|
|
11981
|
-
return (halfWidth - offset2(left) * direction) * direction;
|
|
11982
|
-
}
|
|
11983
|
-
function getStepsBetweenValues(values) {
|
|
11984
|
-
return values.slice(0, -1).map((value, index) => values[index + 1] - value);
|
|
11985
|
-
}
|
|
11986
|
-
function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
|
|
11987
|
-
if (minStepsBetweenValues > 0) {
|
|
11988
|
-
const stepsBetweenValues = getStepsBetweenValues(values);
|
|
11989
|
-
const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);
|
|
11990
|
-
return actualMinStepsBetweenValues >= minStepsBetweenValues;
|
|
11991
|
-
}
|
|
11992
|
-
return true;
|
|
11993
|
-
}
|
|
11994
|
-
function linearScale(input, output) {
|
|
11995
|
-
return (value) => {
|
|
11996
|
-
if (input[0] === input[1] || output[0] === output[1]) return output[0];
|
|
11997
|
-
const ratio = (output[1] - output[0]) / (input[1] - input[0]);
|
|
11998
|
-
return output[0] + ratio * (value - input[0]);
|
|
11999
|
-
};
|
|
11993
|
+
const OPEN_KEYS = [
|
|
11994
|
+
" ",
|
|
11995
|
+
"Enter",
|
|
11996
|
+
"ArrowUp",
|
|
11997
|
+
"ArrowDown"
|
|
11998
|
+
];
|
|
11999
|
+
const SELECTION_KEYS = [" ", "Enter"];
|
|
12000
|
+
const CONTENT_MARGIN = 10;
|
|
12001
|
+
function valueComparator(value, currentValue, comparator) {
|
|
12002
|
+
if (value === void 0) return false;
|
|
12003
|
+
else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));
|
|
12004
|
+
else return compare(value, currentValue, comparator);
|
|
12000
12005
|
}
|
|
12001
|
-
function
|
|
12002
|
-
|
|
12006
|
+
function compare(value, currentValue, comparator) {
|
|
12007
|
+
if (value === void 0 || currentValue === void 0) return false;
|
|
12008
|
+
if (typeof value === "string") return value === currentValue;
|
|
12009
|
+
if (typeof comparator === "function") return comparator(value, currentValue);
|
|
12010
|
+
if (typeof comparator === "string") return value?.[comparator] === currentValue?.[comparator];
|
|
12011
|
+
return isEqual(value, currentValue);
|
|
12003
12012
|
}
|
|
12004
|
-
function
|
|
12005
|
-
|
|
12006
|
-
return Math.round(value * rounder) / rounder;
|
|
12013
|
+
function shouldShowPlaceholder(value) {
|
|
12014
|
+
return value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0;
|
|
12007
12015
|
}
|
|
12008
|
-
const
|
|
12009
|
-
|
|
12010
|
-
"
|
|
12011
|
-
"ArrowDown",
|
|
12012
|
-
"ArrowLeft",
|
|
12013
|
-
"ArrowRight"
|
|
12014
|
-
];
|
|
12015
|
-
const BACK_KEYS = {
|
|
12016
|
-
"from-left": [
|
|
12017
|
-
"Home",
|
|
12018
|
-
"PageDown",
|
|
12019
|
-
"ArrowDown",
|
|
12020
|
-
"ArrowLeft"
|
|
12021
|
-
],
|
|
12022
|
-
"from-right": [
|
|
12023
|
-
"Home",
|
|
12024
|
-
"PageDown",
|
|
12025
|
-
"ArrowDown",
|
|
12026
|
-
"ArrowRight"
|
|
12027
|
-
],
|
|
12028
|
-
"from-bottom": [
|
|
12029
|
-
"Home",
|
|
12030
|
-
"PageDown",
|
|
12031
|
-
"ArrowDown",
|
|
12032
|
-
"ArrowLeft"
|
|
12033
|
-
],
|
|
12034
|
-
"from-top": [
|
|
12035
|
-
"Home",
|
|
12036
|
-
"PageUp",
|
|
12037
|
-
"ArrowUp",
|
|
12038
|
-
"ArrowLeft"
|
|
12039
|
-
]
|
|
12016
|
+
const _hoisted_1$B = {
|
|
12017
|
+
key: 0,
|
|
12018
|
+
value: ""
|
|
12040
12019
|
};
|
|
12041
|
-
const [
|
|
12042
|
-
var
|
|
12043
|
-
|
|
12020
|
+
const [injectSelectRootContext, provideSelectRootContext] = createContext("SelectRoot");
|
|
12021
|
+
var SelectRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12022
|
+
inheritAttrs: false,
|
|
12023
|
+
__name: "SelectRoot",
|
|
12044
12024
|
props: {
|
|
12025
|
+
open: {
|
|
12026
|
+
type: Boolean,
|
|
12027
|
+
required: false,
|
|
12028
|
+
default: void 0
|
|
12029
|
+
},
|
|
12030
|
+
defaultOpen: {
|
|
12031
|
+
type: Boolean,
|
|
12032
|
+
required: false
|
|
12033
|
+
},
|
|
12034
|
+
defaultValue: {
|
|
12035
|
+
type: null,
|
|
12036
|
+
required: false
|
|
12037
|
+
},
|
|
12038
|
+
modelValue: {
|
|
12039
|
+
type: null,
|
|
12040
|
+
required: false,
|
|
12041
|
+
default: void 0
|
|
12042
|
+
},
|
|
12043
|
+
by: {
|
|
12044
|
+
type: [String, Function],
|
|
12045
|
+
required: false
|
|
12046
|
+
},
|
|
12045
12047
|
dir: {
|
|
12046
12048
|
type: String,
|
|
12047
12049
|
required: false
|
|
12048
12050
|
},
|
|
12049
|
-
|
|
12050
|
-
type:
|
|
12051
|
-
required:
|
|
12051
|
+
multiple: {
|
|
12052
|
+
type: Boolean,
|
|
12053
|
+
required: false
|
|
12052
12054
|
},
|
|
12053
|
-
|
|
12054
|
-
type:
|
|
12055
|
-
required:
|
|
12055
|
+
autocomplete: {
|
|
12056
|
+
type: String,
|
|
12057
|
+
required: false
|
|
12056
12058
|
},
|
|
12057
|
-
|
|
12059
|
+
disabled: {
|
|
12058
12060
|
type: Boolean,
|
|
12059
|
-
required:
|
|
12061
|
+
required: false
|
|
12062
|
+
},
|
|
12063
|
+
name: {
|
|
12064
|
+
type: String,
|
|
12065
|
+
required: false
|
|
12066
|
+
},
|
|
12067
|
+
required: {
|
|
12068
|
+
type: Boolean,
|
|
12069
|
+
required: false
|
|
12060
12070
|
}
|
|
12061
12071
|
},
|
|
12062
|
-
emits: [
|
|
12063
|
-
"slideEnd",
|
|
12064
|
-
"slideStart",
|
|
12065
|
-
"slideMove",
|
|
12066
|
-
"homeKeyDown",
|
|
12067
|
-
"endKeyDown",
|
|
12068
|
-
"stepKeyDown"
|
|
12069
|
-
],
|
|
12072
|
+
emits: ["update:modelValue", "update:open"],
|
|
12070
12073
|
setup(__props, { emit: __emit }) {
|
|
12071
12074
|
const props = __props;
|
|
12072
12075
|
const emits = __emit;
|
|
12073
|
-
const {
|
|
12074
|
-
const
|
|
12075
|
-
|
|
12076
|
-
|
|
12077
|
-
|
|
12078
|
-
|
|
12079
|
-
|
|
12080
|
-
|
|
12081
|
-
|
|
12082
|
-
|
|
12083
|
-
|
|
12084
|
-
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
|
|
12090
|
-
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
|
-
|
|
12097
|
-
|
|
12098
|
-
|
|
12076
|
+
const { required, disabled, multiple, dir: propDir } = toRefs(props);
|
|
12077
|
+
const modelValue = useVModel(props, "modelValue", emits, {
|
|
12078
|
+
defaultValue: props.defaultValue ?? (multiple.value ? [] : void 0),
|
|
12079
|
+
passive: props.modelValue === void 0,
|
|
12080
|
+
deep: true
|
|
12081
|
+
});
|
|
12082
|
+
const open = useVModel(props, "open", emits, {
|
|
12083
|
+
defaultValue: props.defaultOpen,
|
|
12084
|
+
passive: props.open === void 0
|
|
12085
|
+
});
|
|
12086
|
+
const triggerElement = ref();
|
|
12087
|
+
const valueElement = ref();
|
|
12088
|
+
const triggerPointerDownPosRef = ref({
|
|
12089
|
+
x: 0,
|
|
12090
|
+
y: 0
|
|
12091
|
+
});
|
|
12092
|
+
const isEmptyModelValue = computed(() => {
|
|
12093
|
+
if (multiple.value && Array.isArray(modelValue.value)) return modelValue.value?.length === 0;
|
|
12094
|
+
else return isNullish(modelValue.value);
|
|
12095
|
+
});
|
|
12096
|
+
useCollection({ isProvider: true });
|
|
12097
|
+
const dir = useDirection(propDir);
|
|
12098
|
+
const isFormControl = useFormControl(triggerElement);
|
|
12099
|
+
const optionsSet = ref(/* @__PURE__ */ new Set());
|
|
12100
|
+
const nativeSelectKey = computed(() => {
|
|
12101
|
+
return Array.from(optionsSet.value).map((option) => option.value).join(";");
|
|
12102
|
+
});
|
|
12103
|
+
function handleValueChange(value) {
|
|
12104
|
+
if (multiple.value) {
|
|
12105
|
+
const array = Array.isArray(modelValue.value) ? [...modelValue.value] : [];
|
|
12106
|
+
const index = array.findIndex((i) => compare(i, value, props.by));
|
|
12107
|
+
index === -1 ? array.push(value) : array.splice(index, 1);
|
|
12108
|
+
modelValue.value = [...array];
|
|
12109
|
+
} else modelValue.value = value;
|
|
12110
|
+
}
|
|
12111
|
+
function getOption(value) {
|
|
12112
|
+
return Array.from(optionsSet.value).find((option) => valueComparator(value, option.value, props.by));
|
|
12113
|
+
}
|
|
12114
|
+
provideSelectRootContext({
|
|
12115
|
+
triggerElement,
|
|
12116
|
+
onTriggerChange: (node) => {
|
|
12117
|
+
triggerElement.value = node;
|
|
12118
|
+
},
|
|
12119
|
+
valueElement,
|
|
12120
|
+
onValueElementChange: (node) => {
|
|
12121
|
+
valueElement.value = node;
|
|
12122
|
+
},
|
|
12123
|
+
contentId: "",
|
|
12124
|
+
modelValue,
|
|
12125
|
+
onValueChange: handleValueChange,
|
|
12126
|
+
by: props.by,
|
|
12127
|
+
open,
|
|
12128
|
+
multiple,
|
|
12129
|
+
required,
|
|
12130
|
+
onOpenChange: (value) => {
|
|
12131
|
+
open.value = value;
|
|
12132
|
+
},
|
|
12133
|
+
dir,
|
|
12134
|
+
triggerPointerDownPosRef,
|
|
12135
|
+
disabled,
|
|
12136
|
+
isEmptyModelValue,
|
|
12137
|
+
optionsSet,
|
|
12138
|
+
onOptionAdd: (option) => {
|
|
12139
|
+
const existingOption = getOption(option.value);
|
|
12140
|
+
if (existingOption) optionsSet.value.delete(existingOption);
|
|
12141
|
+
optionsSet.value.add(option);
|
|
12142
|
+
},
|
|
12143
|
+
onOptionRemove: (option) => {
|
|
12144
|
+
const existingOption = getOption(option.value);
|
|
12145
|
+
if (existingOption) optionsSet.value.delete(existingOption);
|
|
12146
|
+
}
|
|
12099
12147
|
});
|
|
12100
12148
|
return (_ctx, _cache) => {
|
|
12101
|
-
return openBlock(), createBlock(
|
|
12102
|
-
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
|
|
12107
|
-
|
|
12108
|
-
|
|
12109
|
-
|
|
12110
|
-
|
|
12111
|
-
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12115
|
-
|
|
12149
|
+
return openBlock(), createBlock(unref(PopperRoot_default), null, {
|
|
12150
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
|
|
12151
|
+
modelValue: unref(modelValue),
|
|
12152
|
+
open: unref(open)
|
|
12153
|
+
}), unref(isFormControl) ? (openBlock(), createBlock(BubbleSelect_default, {
|
|
12154
|
+
key: nativeSelectKey.value,
|
|
12155
|
+
"aria-hidden": "true",
|
|
12156
|
+
tabindex: "-1",
|
|
12157
|
+
multiple: unref(multiple),
|
|
12158
|
+
required: unref(required),
|
|
12159
|
+
name: _ctx.name,
|
|
12160
|
+
autocomplete: _ctx.autocomplete,
|
|
12161
|
+
disabled: unref(disabled),
|
|
12162
|
+
value: unref(modelValue)
|
|
12163
|
+
}, {
|
|
12164
|
+
default: withCtx(() => [unref(isNullish)(unref(modelValue)) ? (openBlock(), createElementBlock("option", _hoisted_1$B)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(Array.from(optionsSet.value), (option) => {
|
|
12165
|
+
return openBlock(), createElementBlock("option", mergeProps({ key: option.value ?? "" }, { ref_for: true }, option), null, 16);
|
|
12166
|
+
}), 128))]),
|
|
12167
|
+
_: 1
|
|
12168
|
+
}, 8, [
|
|
12169
|
+
"multiple",
|
|
12170
|
+
"required",
|
|
12171
|
+
"name",
|
|
12172
|
+
"autocomplete",
|
|
12173
|
+
"disabled",
|
|
12174
|
+
"value"
|
|
12175
|
+
])) : createCommentVNode("v-if", true)]),
|
|
12176
|
+
_: 3
|
|
12177
|
+
});
|
|
12178
|
+
};
|
|
12179
|
+
}
|
|
12180
|
+
});
|
|
12181
|
+
var SelectRoot_default = SelectRoot_vue_vue_type_script_setup_true_lang_default;
|
|
12182
|
+
var BubbleSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12183
|
+
__name: "BubbleSelect",
|
|
12184
|
+
props: {
|
|
12185
|
+
autocomplete: {
|
|
12186
|
+
type: String,
|
|
12187
|
+
required: false
|
|
12188
|
+
},
|
|
12189
|
+
autofocus: {
|
|
12190
|
+
type: Boolean,
|
|
12191
|
+
required: false
|
|
12192
|
+
},
|
|
12193
|
+
disabled: {
|
|
12194
|
+
type: Boolean,
|
|
12195
|
+
required: false
|
|
12196
|
+
},
|
|
12197
|
+
form: {
|
|
12198
|
+
type: String,
|
|
12199
|
+
required: false
|
|
12200
|
+
},
|
|
12201
|
+
multiple: {
|
|
12202
|
+
type: Boolean,
|
|
12203
|
+
required: false
|
|
12204
|
+
},
|
|
12205
|
+
name: {
|
|
12206
|
+
type: String,
|
|
12207
|
+
required: false
|
|
12208
|
+
},
|
|
12209
|
+
required: {
|
|
12210
|
+
type: Boolean,
|
|
12211
|
+
required: false
|
|
12212
|
+
},
|
|
12213
|
+
size: {
|
|
12214
|
+
type: Number,
|
|
12215
|
+
required: false
|
|
12216
|
+
},
|
|
12217
|
+
value: {
|
|
12218
|
+
type: null,
|
|
12219
|
+
required: false
|
|
12220
|
+
}
|
|
12221
|
+
},
|
|
12222
|
+
setup(__props) {
|
|
12223
|
+
const props = __props;
|
|
12224
|
+
const selectElement = ref();
|
|
12225
|
+
const rootContext = injectSelectRootContext();
|
|
12226
|
+
watch(() => props.value, (cur, prev) => {
|
|
12227
|
+
const selectProto = window.HTMLSelectElement.prototype;
|
|
12228
|
+
const descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
|
|
12229
|
+
const setValue = descriptor.set;
|
|
12230
|
+
if (cur !== prev && setValue && selectElement.value) {
|
|
12231
|
+
const event = new Event("change", { bubbles: true });
|
|
12232
|
+
setValue.call(selectElement.value, cur);
|
|
12233
|
+
selectElement.value.dispatchEvent(event);
|
|
12234
|
+
}
|
|
12235
|
+
});
|
|
12236
|
+
function handleInput(event) {
|
|
12237
|
+
rootContext.onValueChange(event.target.value);
|
|
12238
|
+
}
|
|
12239
|
+
return (_ctx, _cache) => {
|
|
12240
|
+
return openBlock(), createBlock(unref(VisuallyHidden_default), { "as-child": "" }, {
|
|
12241
|
+
default: withCtx(() => [createElementVNode("select", mergeProps({
|
|
12242
|
+
ref_key: "selectElement",
|
|
12243
|
+
ref: selectElement
|
|
12244
|
+
}, props, { onInput: handleInput }), [renderSlot(_ctx.$slots, "default")], 16)]),
|
|
12245
|
+
_: 3
|
|
12246
|
+
});
|
|
12247
|
+
};
|
|
12248
|
+
}
|
|
12249
|
+
});
|
|
12250
|
+
var BubbleSelect_default = BubbleSelect_vue_vue_type_script_setup_true_lang_default;
|
|
12251
|
+
var SelectPopperPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12252
|
+
__name: "SelectPopperPosition",
|
|
12253
|
+
props: {
|
|
12254
|
+
side: {
|
|
12255
|
+
type: null,
|
|
12256
|
+
required: false
|
|
12257
|
+
},
|
|
12258
|
+
sideOffset: {
|
|
12259
|
+
type: Number,
|
|
12260
|
+
required: false
|
|
12261
|
+
},
|
|
12262
|
+
sideFlip: {
|
|
12263
|
+
type: Boolean,
|
|
12264
|
+
required: false
|
|
12265
|
+
},
|
|
12266
|
+
align: {
|
|
12267
|
+
type: null,
|
|
12268
|
+
required: false,
|
|
12269
|
+
default: "start"
|
|
12270
|
+
},
|
|
12271
|
+
alignOffset: {
|
|
12272
|
+
type: Number,
|
|
12273
|
+
required: false
|
|
12274
|
+
},
|
|
12275
|
+
alignFlip: {
|
|
12276
|
+
type: Boolean,
|
|
12277
|
+
required: false
|
|
12278
|
+
},
|
|
12279
|
+
avoidCollisions: {
|
|
12280
|
+
type: Boolean,
|
|
12281
|
+
required: false
|
|
12282
|
+
},
|
|
12283
|
+
collisionBoundary: {
|
|
12284
|
+
type: null,
|
|
12285
|
+
required: false
|
|
12286
|
+
},
|
|
12287
|
+
collisionPadding: {
|
|
12288
|
+
type: [Number, Object],
|
|
12289
|
+
required: false,
|
|
12290
|
+
default: CONTENT_MARGIN
|
|
12291
|
+
},
|
|
12292
|
+
arrowPadding: {
|
|
12293
|
+
type: Number,
|
|
12294
|
+
required: false
|
|
12295
|
+
},
|
|
12296
|
+
sticky: {
|
|
12297
|
+
type: String,
|
|
12298
|
+
required: false
|
|
12299
|
+
},
|
|
12300
|
+
hideWhenDetached: {
|
|
12301
|
+
type: Boolean,
|
|
12302
|
+
required: false
|
|
12303
|
+
},
|
|
12304
|
+
positionStrategy: {
|
|
12305
|
+
type: String,
|
|
12306
|
+
required: false
|
|
12307
|
+
},
|
|
12308
|
+
updatePositionStrategy: {
|
|
12309
|
+
type: String,
|
|
12310
|
+
required: false
|
|
12311
|
+
},
|
|
12312
|
+
disableUpdateOnLayoutShift: {
|
|
12313
|
+
type: Boolean,
|
|
12314
|
+
required: false
|
|
12315
|
+
},
|
|
12316
|
+
prioritizePosition: {
|
|
12317
|
+
type: Boolean,
|
|
12318
|
+
required: false
|
|
12319
|
+
},
|
|
12320
|
+
reference: {
|
|
12321
|
+
type: null,
|
|
12322
|
+
required: false
|
|
12323
|
+
},
|
|
12324
|
+
asChild: {
|
|
12325
|
+
type: Boolean,
|
|
12326
|
+
required: false
|
|
12327
|
+
},
|
|
12328
|
+
as: {
|
|
12329
|
+
type: null,
|
|
12330
|
+
required: false
|
|
12331
|
+
}
|
|
12332
|
+
},
|
|
12333
|
+
setup(__props) {
|
|
12334
|
+
const props = __props;
|
|
12335
|
+
const forwarded = useForwardProps(props);
|
|
12336
|
+
return (_ctx, _cache) => {
|
|
12337
|
+
return openBlock(), createBlock(unref(PopperContent_default), mergeProps(unref(forwarded), { style: {
|
|
12338
|
+
"boxSizing": "border-box",
|
|
12339
|
+
"--reka-select-content-transform-origin": "var(--reka-popper-transform-origin)",
|
|
12340
|
+
"--reka-select-content-available-width": "var(--reka-popper-available-width)",
|
|
12341
|
+
"--reka-select-content-available-height": "var(--reka-popper-available-height)",
|
|
12342
|
+
"--reka-select-trigger-width": "var(--reka-popper-anchor-width)",
|
|
12343
|
+
"--reka-select-trigger-height": "var(--reka-popper-anchor-height)"
|
|
12344
|
+
} }), {
|
|
12345
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
12346
|
+
_: 3
|
|
12347
|
+
}, 16);
|
|
12348
|
+
};
|
|
12349
|
+
}
|
|
12350
|
+
});
|
|
12351
|
+
var SelectPopperPosition_default = SelectPopperPosition_vue_vue_type_script_setup_true_lang_default;
|
|
12352
|
+
const SelectContentDefaultContextValue = {
|
|
12353
|
+
onViewportChange: () => {
|
|
12354
|
+
},
|
|
12355
|
+
itemTextRefCallback: () => {
|
|
12356
|
+
},
|
|
12357
|
+
itemRefCallback: () => {
|
|
12358
|
+
}
|
|
12359
|
+
};
|
|
12360
|
+
const [injectSelectContentContext, provideSelectContentContext] = createContext("SelectContent");
|
|
12361
|
+
var SelectContentImpl_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12362
|
+
__name: "SelectContentImpl",
|
|
12363
|
+
props: {
|
|
12364
|
+
position: {
|
|
12365
|
+
type: String,
|
|
12366
|
+
required: false,
|
|
12367
|
+
default: "item-aligned"
|
|
12368
|
+
},
|
|
12369
|
+
bodyLock: {
|
|
12370
|
+
type: Boolean,
|
|
12371
|
+
required: false,
|
|
12372
|
+
default: true
|
|
12373
|
+
},
|
|
12374
|
+
side: {
|
|
12375
|
+
type: null,
|
|
12376
|
+
required: false
|
|
12377
|
+
},
|
|
12378
|
+
sideOffset: {
|
|
12379
|
+
type: Number,
|
|
12380
|
+
required: false
|
|
12381
|
+
},
|
|
12382
|
+
sideFlip: {
|
|
12383
|
+
type: Boolean,
|
|
12384
|
+
required: false
|
|
12385
|
+
},
|
|
12386
|
+
align: {
|
|
12387
|
+
type: null,
|
|
12388
|
+
required: false,
|
|
12389
|
+
default: "start"
|
|
12390
|
+
},
|
|
12391
|
+
alignOffset: {
|
|
12392
|
+
type: Number,
|
|
12393
|
+
required: false
|
|
12394
|
+
},
|
|
12395
|
+
alignFlip: {
|
|
12396
|
+
type: Boolean,
|
|
12397
|
+
required: false
|
|
12398
|
+
},
|
|
12399
|
+
avoidCollisions: {
|
|
12400
|
+
type: Boolean,
|
|
12401
|
+
required: false
|
|
12402
|
+
},
|
|
12403
|
+
collisionBoundary: {
|
|
12404
|
+
type: null,
|
|
12405
|
+
required: false
|
|
12406
|
+
},
|
|
12407
|
+
collisionPadding: {
|
|
12408
|
+
type: [Number, Object],
|
|
12409
|
+
required: false
|
|
12410
|
+
},
|
|
12411
|
+
arrowPadding: {
|
|
12412
|
+
type: Number,
|
|
12413
|
+
required: false
|
|
12414
|
+
},
|
|
12415
|
+
sticky: {
|
|
12416
|
+
type: String,
|
|
12417
|
+
required: false
|
|
12418
|
+
},
|
|
12419
|
+
hideWhenDetached: {
|
|
12420
|
+
type: Boolean,
|
|
12421
|
+
required: false
|
|
12422
|
+
},
|
|
12423
|
+
positionStrategy: {
|
|
12424
|
+
type: String,
|
|
12425
|
+
required: false
|
|
12426
|
+
},
|
|
12427
|
+
updatePositionStrategy: {
|
|
12428
|
+
type: String,
|
|
12429
|
+
required: false
|
|
12430
|
+
},
|
|
12431
|
+
disableUpdateOnLayoutShift: {
|
|
12432
|
+
type: Boolean,
|
|
12433
|
+
required: false
|
|
12434
|
+
},
|
|
12435
|
+
prioritizePosition: {
|
|
12436
|
+
type: Boolean,
|
|
12437
|
+
required: false
|
|
12438
|
+
},
|
|
12439
|
+
reference: {
|
|
12440
|
+
type: null,
|
|
12441
|
+
required: false
|
|
12442
|
+
},
|
|
12443
|
+
asChild: {
|
|
12444
|
+
type: Boolean,
|
|
12445
|
+
required: false
|
|
12446
|
+
},
|
|
12447
|
+
as: {
|
|
12448
|
+
type: null,
|
|
12449
|
+
required: false
|
|
12450
|
+
}
|
|
12451
|
+
},
|
|
12452
|
+
emits: [
|
|
12453
|
+
"closeAutoFocus",
|
|
12454
|
+
"escapeKeyDown",
|
|
12455
|
+
"pointerDownOutside"
|
|
12456
|
+
],
|
|
12457
|
+
setup(__props, { emit: __emit }) {
|
|
12458
|
+
const props = __props;
|
|
12459
|
+
const emits = __emit;
|
|
12460
|
+
const rootContext = injectSelectRootContext();
|
|
12461
|
+
useFocusGuards();
|
|
12462
|
+
useBodyScrollLock(props.bodyLock);
|
|
12463
|
+
const { CollectionSlot, getItems } = useCollection();
|
|
12464
|
+
const content = ref();
|
|
12465
|
+
useHideOthers(content);
|
|
12466
|
+
const { search, handleTypeaheadSearch } = useTypeahead();
|
|
12467
|
+
const viewport = ref();
|
|
12468
|
+
const selectedItem = ref();
|
|
12469
|
+
const selectedItemText = ref();
|
|
12470
|
+
const isPositioned = ref(false);
|
|
12471
|
+
const firstValidItemFoundRef = ref(false);
|
|
12472
|
+
const firstSelectedItemInArrayFoundRef = ref(false);
|
|
12473
|
+
function focusSelectedItem() {
|
|
12474
|
+
if (selectedItem.value && content.value) focusFirst$1([selectedItem.value, content.value]);
|
|
12475
|
+
}
|
|
12476
|
+
watch(isPositioned, () => {
|
|
12477
|
+
focusSelectedItem();
|
|
12478
|
+
});
|
|
12479
|
+
const { onOpenChange, triggerPointerDownPosRef } = rootContext;
|
|
12480
|
+
watchEffect((cleanupFn) => {
|
|
12481
|
+
if (!content.value) return;
|
|
12482
|
+
let pointerMoveDelta = {
|
|
12483
|
+
x: 0,
|
|
12484
|
+
y: 0
|
|
12485
|
+
};
|
|
12486
|
+
const handlePointerMove = (event) => {
|
|
12487
|
+
pointerMoveDelta = {
|
|
12488
|
+
x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0)),
|
|
12489
|
+
y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0))
|
|
12490
|
+
};
|
|
12491
|
+
};
|
|
12492
|
+
const handlePointerUp = (event) => {
|
|
12493
|
+
if (event.pointerType === "touch") return;
|
|
12494
|
+
if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) event.preventDefault();
|
|
12495
|
+
else if (!content.value?.contains(event.target)) onOpenChange(false);
|
|
12496
|
+
document.removeEventListener("pointermove", handlePointerMove);
|
|
12497
|
+
triggerPointerDownPosRef.value = null;
|
|
12498
|
+
};
|
|
12499
|
+
if (triggerPointerDownPosRef.value !== null) {
|
|
12500
|
+
document.addEventListener("pointermove", handlePointerMove);
|
|
12501
|
+
document.addEventListener("pointerup", handlePointerUp, {
|
|
12502
|
+
capture: true,
|
|
12503
|
+
once: true
|
|
12504
|
+
});
|
|
12505
|
+
}
|
|
12506
|
+
cleanupFn(() => {
|
|
12507
|
+
document.removeEventListener("pointermove", handlePointerMove);
|
|
12508
|
+
document.removeEventListener("pointerup", handlePointerUp, { capture: true });
|
|
12509
|
+
});
|
|
12510
|
+
});
|
|
12511
|
+
function handleKeyDown(event) {
|
|
12512
|
+
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
|
|
12513
|
+
if (event.key === "Tab") event.preventDefault();
|
|
12514
|
+
if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key, getItems());
|
|
12515
|
+
if ([
|
|
12516
|
+
"ArrowUp",
|
|
12517
|
+
"ArrowDown",
|
|
12518
|
+
"Home",
|
|
12519
|
+
"End"
|
|
12520
|
+
].includes(event.key)) {
|
|
12521
|
+
const collectionItems = getItems().map((i) => i.ref);
|
|
12522
|
+
let candidateNodes = [...collectionItems];
|
|
12523
|
+
if (["ArrowUp", "End"].includes(event.key)) candidateNodes = candidateNodes.slice().reverse();
|
|
12524
|
+
if (["ArrowUp", "ArrowDown"].includes(event.key)) {
|
|
12525
|
+
const currentElement = event.target;
|
|
12526
|
+
const currentIndex = candidateNodes.indexOf(currentElement);
|
|
12527
|
+
candidateNodes = candidateNodes.slice(currentIndex + 1);
|
|
12528
|
+
}
|
|
12529
|
+
setTimeout(() => focusFirst$1(candidateNodes));
|
|
12530
|
+
event.preventDefault();
|
|
12531
|
+
}
|
|
12532
|
+
}
|
|
12533
|
+
const pickedProps = computed(() => {
|
|
12534
|
+
if (props.position === "popper") return props;
|
|
12535
|
+
else return {};
|
|
12536
|
+
});
|
|
12537
|
+
const forwardedProps = useForwardProps(pickedProps.value);
|
|
12538
|
+
provideSelectContentContext({
|
|
12539
|
+
content,
|
|
12540
|
+
viewport,
|
|
12541
|
+
onViewportChange: (node) => {
|
|
12542
|
+
viewport.value = node;
|
|
12543
|
+
},
|
|
12544
|
+
itemRefCallback: (node, value, disabled) => {
|
|
12545
|
+
const isFirstValidItem = !firstValidItemFoundRef.value && !disabled;
|
|
12546
|
+
const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by);
|
|
12547
|
+
if (rootContext.multiple.value) {
|
|
12548
|
+
if (firstSelectedItemInArrayFoundRef.value) return;
|
|
12549
|
+
if (isSelectedItem || isFirstValidItem) {
|
|
12550
|
+
selectedItem.value = node;
|
|
12551
|
+
if (isSelectedItem) firstSelectedItemInArrayFoundRef.value = true;
|
|
12552
|
+
}
|
|
12553
|
+
} else if (isSelectedItem || isFirstValidItem) selectedItem.value = node;
|
|
12554
|
+
if (isFirstValidItem) firstValidItemFoundRef.value = true;
|
|
12555
|
+
},
|
|
12556
|
+
selectedItem,
|
|
12557
|
+
selectedItemText,
|
|
12558
|
+
onItemLeave: () => {
|
|
12559
|
+
content.value?.focus();
|
|
12560
|
+
},
|
|
12561
|
+
itemTextRefCallback: (node, value, disabled) => {
|
|
12562
|
+
const isFirstValidItem = !firstValidItemFoundRef.value && !disabled;
|
|
12563
|
+
const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by);
|
|
12564
|
+
if (isSelectedItem || isFirstValidItem) selectedItemText.value = node;
|
|
12565
|
+
},
|
|
12566
|
+
focusSelectedItem,
|
|
12567
|
+
position: props.position,
|
|
12568
|
+
isPositioned,
|
|
12569
|
+
searchRef: search
|
|
12570
|
+
});
|
|
12571
|
+
return (_ctx, _cache) => {
|
|
12572
|
+
return openBlock(), createBlock(unref(CollectionSlot), null, {
|
|
12573
|
+
default: withCtx(() => [createVNode(unref(FocusScope_default), {
|
|
12574
|
+
"as-child": "",
|
|
12575
|
+
onMountAutoFocus: _cache[6] || (_cache[6] = withModifiers(() => {
|
|
12576
|
+
}, ["prevent"])),
|
|
12577
|
+
onUnmountAutoFocus: _cache[7] || (_cache[7] = (event) => {
|
|
12578
|
+
emits("closeAutoFocus", event);
|
|
12579
|
+
if (event.defaultPrevented) return;
|
|
12580
|
+
unref(rootContext).triggerElement.value?.focus({ preventScroll: true });
|
|
12581
|
+
event.preventDefault();
|
|
12582
|
+
})
|
|
12583
|
+
}, {
|
|
12584
|
+
default: withCtx(() => [createVNode(unref(DismissableLayer_default), {
|
|
12585
|
+
"as-child": "",
|
|
12586
|
+
"disable-outside-pointer-events": "",
|
|
12587
|
+
onFocusOutside: _cache[2] || (_cache[2] = withModifiers(() => {
|
|
12588
|
+
}, ["prevent"])),
|
|
12589
|
+
onDismiss: _cache[3] || (_cache[3] = ($event) => unref(rootContext).onOpenChange(false)),
|
|
12590
|
+
onEscapeKeyDown: _cache[4] || (_cache[4] = ($event) => emits("escapeKeyDown", $event)),
|
|
12591
|
+
onPointerDownOutside: _cache[5] || (_cache[5] = ($event) => emits("pointerDownOutside", $event))
|
|
12592
|
+
}, {
|
|
12593
|
+
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(_ctx.position === "popper" ? SelectPopperPosition_default : SelectItemAlignedPosition_default), mergeProps({
|
|
12594
|
+
..._ctx.$attrs,
|
|
12595
|
+
...unref(forwardedProps)
|
|
12596
|
+
}, {
|
|
12597
|
+
id: unref(rootContext).contentId,
|
|
12598
|
+
ref: (vnode) => {
|
|
12599
|
+
const el = unref(unrefElement)(vnode);
|
|
12600
|
+
if (el?.hasAttribute("data-reka-popper-content-wrapper")) content.value = el.firstElementChild;
|
|
12601
|
+
else content.value = el;
|
|
12602
|
+
return void 0;
|
|
12603
|
+
},
|
|
12604
|
+
role: "listbox",
|
|
12605
|
+
"data-state": unref(rootContext).open.value ? "open" : "closed",
|
|
12606
|
+
dir: unref(rootContext).dir.value,
|
|
12607
|
+
style: {
|
|
12608
|
+
display: "flex",
|
|
12609
|
+
flexDirection: "column",
|
|
12610
|
+
outline: "none"
|
|
12611
|
+
},
|
|
12612
|
+
onContextmenu: _cache[0] || (_cache[0] = withModifiers(() => {
|
|
12613
|
+
}, ["prevent"])),
|
|
12614
|
+
onPlaced: _cache[1] || (_cache[1] = ($event) => isPositioned.value = true),
|
|
12615
|
+
onKeydown: handleKeyDown
|
|
12616
|
+
}), {
|
|
12617
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
12618
|
+
_: 3
|
|
12619
|
+
}, 16, [
|
|
12620
|
+
"id",
|
|
12621
|
+
"data-state",
|
|
12622
|
+
"dir",
|
|
12623
|
+
"onKeydown"
|
|
12624
|
+
]))]),
|
|
12625
|
+
_: 3
|
|
12626
|
+
})]),
|
|
12627
|
+
_: 3
|
|
12628
|
+
})]),
|
|
12629
|
+
_: 3
|
|
12630
|
+
});
|
|
12631
|
+
};
|
|
12632
|
+
}
|
|
12633
|
+
});
|
|
12634
|
+
var SelectContentImpl_default = SelectContentImpl_vue_vue_type_script_setup_true_lang_default;
|
|
12635
|
+
const [injectSelectItemAlignedPositionContext, provideSelectItemAlignedPositionContext] = createContext("SelectItemAlignedPosition");
|
|
12636
|
+
var SelectItemAlignedPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12637
|
+
inheritAttrs: false,
|
|
12638
|
+
__name: "SelectItemAlignedPosition",
|
|
12639
|
+
props: {
|
|
12640
|
+
asChild: {
|
|
12641
|
+
type: Boolean,
|
|
12642
|
+
required: false
|
|
12643
|
+
},
|
|
12644
|
+
as: {
|
|
12645
|
+
type: null,
|
|
12646
|
+
required: false
|
|
12647
|
+
}
|
|
12648
|
+
},
|
|
12649
|
+
emits: ["placed"],
|
|
12650
|
+
setup(__props, { emit: __emit }) {
|
|
12651
|
+
const props = __props;
|
|
12652
|
+
const emits = __emit;
|
|
12653
|
+
const { getItems } = useCollection();
|
|
12654
|
+
const rootContext = injectSelectRootContext();
|
|
12655
|
+
const contentContext = injectSelectContentContext();
|
|
12656
|
+
const shouldExpandOnScrollRef = ref(false);
|
|
12657
|
+
const shouldRepositionRef = ref(true);
|
|
12658
|
+
const contentWrapperElement = ref();
|
|
12659
|
+
const { forwardRef, currentElement: contentElement } = useForwardExpose();
|
|
12660
|
+
const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
|
|
12661
|
+
function position() {
|
|
12662
|
+
if (rootContext.triggerElement.value && rootContext.valueElement.value && contentWrapperElement.value && contentElement.value && viewport?.value && selectedItem?.value && selectedItemText?.value) {
|
|
12663
|
+
const triggerRect = rootContext.triggerElement.value.getBoundingClientRect();
|
|
12664
|
+
const contentRect = contentElement.value.getBoundingClientRect();
|
|
12665
|
+
const valueNodeRect = rootContext.valueElement.value.getBoundingClientRect();
|
|
12666
|
+
const itemTextRect = selectedItemText.value.getBoundingClientRect();
|
|
12667
|
+
if (rootContext.dir.value !== "rtl") {
|
|
12668
|
+
const itemTextOffset = itemTextRect.left - contentRect.left;
|
|
12669
|
+
const left = valueNodeRect.left - itemTextOffset;
|
|
12670
|
+
const leftDelta = triggerRect.left - left;
|
|
12671
|
+
const minContentWidth = triggerRect.width + leftDelta;
|
|
12672
|
+
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
12673
|
+
const rightEdge = window.innerWidth - CONTENT_MARGIN;
|
|
12674
|
+
const clampedLeft = clamp$1(left, CONTENT_MARGIN, Math.max(CONTENT_MARGIN, rightEdge - contentWidth));
|
|
12675
|
+
contentWrapperElement.value.style.minWidth = `${minContentWidth}px`;
|
|
12676
|
+
contentWrapperElement.value.style.left = `${clampedLeft}px`;
|
|
12677
|
+
} else {
|
|
12678
|
+
const itemTextOffset = contentRect.right - itemTextRect.right;
|
|
12679
|
+
const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
|
|
12680
|
+
const rightDelta = window.innerWidth - triggerRect.right - right;
|
|
12681
|
+
const minContentWidth = triggerRect.width + rightDelta;
|
|
12682
|
+
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
12683
|
+
const leftEdge = window.innerWidth - CONTENT_MARGIN;
|
|
12684
|
+
const clampedRight = clamp$1(right, CONTENT_MARGIN, Math.max(CONTENT_MARGIN, leftEdge - contentWidth));
|
|
12685
|
+
contentWrapperElement.value.style.minWidth = `${minContentWidth}px`;
|
|
12686
|
+
contentWrapperElement.value.style.right = `${clampedRight}px`;
|
|
12687
|
+
}
|
|
12688
|
+
const items = getItems().map((i) => i.ref);
|
|
12689
|
+
const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
|
|
12690
|
+
const itemsHeight = viewport.value.scrollHeight;
|
|
12691
|
+
const contentStyles = window.getComputedStyle(contentElement.value);
|
|
12692
|
+
const contentBorderTopWidth = Number.parseInt(contentStyles.borderTopWidth, 10);
|
|
12693
|
+
const contentPaddingTop = Number.parseInt(contentStyles.paddingTop, 10);
|
|
12694
|
+
const contentBorderBottomWidth = Number.parseInt(contentStyles.borderBottomWidth, 10);
|
|
12695
|
+
const contentPaddingBottom = Number.parseInt(contentStyles.paddingBottom, 10);
|
|
12696
|
+
const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;
|
|
12697
|
+
const minContentHeight = Math.min(selectedItem.value.offsetHeight * 5, fullContentHeight);
|
|
12698
|
+
const viewportStyles = window.getComputedStyle(viewport.value);
|
|
12699
|
+
const viewportPaddingTop = Number.parseInt(viewportStyles.paddingTop, 10);
|
|
12700
|
+
const viewportPaddingBottom = Number.parseInt(viewportStyles.paddingBottom, 10);
|
|
12701
|
+
const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;
|
|
12702
|
+
const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
|
|
12703
|
+
const selectedItemHalfHeight = selectedItem.value.offsetHeight / 2;
|
|
12704
|
+
const itemOffsetMiddle = selectedItem.value.offsetTop + selectedItemHalfHeight;
|
|
12705
|
+
const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
|
|
12706
|
+
const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
|
|
12707
|
+
const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
|
|
12708
|
+
if (willAlignWithoutTopOverflow) {
|
|
12709
|
+
const isLastItem = selectedItem.value === items[items.length - 1];
|
|
12710
|
+
contentWrapperElement.value.style.bottom = `0px`;
|
|
12711
|
+
const viewportOffsetBottom = contentElement.value.clientHeight - viewport.value.offsetTop - viewport.value.offsetHeight;
|
|
12712
|
+
const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
|
|
12713
|
+
const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
|
|
12714
|
+
contentWrapperElement.value.style.height = `${height}px`;
|
|
12715
|
+
} else {
|
|
12716
|
+
const isFirstItem = selectedItem.value === items[0];
|
|
12717
|
+
contentWrapperElement.value.style.top = `0px`;
|
|
12718
|
+
const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.value.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
|
|
12719
|
+
const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
|
|
12720
|
+
contentWrapperElement.value.style.height = `${height}px`;
|
|
12721
|
+
viewport.value.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.value.offsetTop;
|
|
12722
|
+
}
|
|
12723
|
+
contentWrapperElement.value.style.margin = `${CONTENT_MARGIN}px 0`;
|
|
12724
|
+
contentWrapperElement.value.style.minHeight = `${minContentHeight}px`;
|
|
12725
|
+
contentWrapperElement.value.style.maxHeight = `${availableHeight}px`;
|
|
12726
|
+
emits("placed");
|
|
12727
|
+
requestAnimationFrame(() => shouldExpandOnScrollRef.value = true);
|
|
12728
|
+
}
|
|
12729
|
+
}
|
|
12730
|
+
const contentZIndex = ref("");
|
|
12731
|
+
onMounted(async () => {
|
|
12732
|
+
await nextTick();
|
|
12733
|
+
position();
|
|
12734
|
+
if (contentElement.value) contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex;
|
|
12735
|
+
});
|
|
12736
|
+
function handleScrollButtonChange(node) {
|
|
12737
|
+
if (node && shouldRepositionRef.value === true) {
|
|
12738
|
+
position();
|
|
12739
|
+
focusSelectedItem?.();
|
|
12740
|
+
shouldRepositionRef.value = false;
|
|
12741
|
+
}
|
|
12742
|
+
}
|
|
12743
|
+
useResizeObserver(rootContext.triggerElement, () => {
|
|
12744
|
+
position();
|
|
12745
|
+
});
|
|
12746
|
+
provideSelectItemAlignedPositionContext({
|
|
12747
|
+
contentWrapper: contentWrapperElement,
|
|
12748
|
+
shouldExpandOnScrollRef,
|
|
12749
|
+
onScrollButtonChange: handleScrollButtonChange
|
|
12750
|
+
});
|
|
12751
|
+
return (_ctx, _cache) => {
|
|
12752
|
+
return openBlock(), createElementBlock("div", {
|
|
12753
|
+
ref_key: "contentWrapperElement",
|
|
12754
|
+
ref: contentWrapperElement,
|
|
12755
|
+
style: normalizeStyle({
|
|
12756
|
+
display: "flex",
|
|
12757
|
+
flexDirection: "column",
|
|
12758
|
+
position: "fixed",
|
|
12759
|
+
zIndex: contentZIndex.value
|
|
12760
|
+
})
|
|
12761
|
+
}, [createVNode(unref(Primitive), mergeProps({
|
|
12762
|
+
ref: unref(forwardRef),
|
|
12763
|
+
style: {
|
|
12764
|
+
boxSizing: "border-box",
|
|
12765
|
+
maxHeight: "100%"
|
|
12766
|
+
}
|
|
12767
|
+
}, {
|
|
12768
|
+
..._ctx.$attrs,
|
|
12769
|
+
...props
|
|
12770
|
+
}), {
|
|
12771
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
12772
|
+
_: 3
|
|
12773
|
+
}, 16)], 4);
|
|
12774
|
+
};
|
|
12775
|
+
}
|
|
12776
|
+
});
|
|
12777
|
+
var SelectItemAlignedPosition_default = SelectItemAlignedPosition_vue_vue_type_script_setup_true_lang_default;
|
|
12778
|
+
var SelectProvider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12779
|
+
inheritAttrs: false,
|
|
12780
|
+
__name: "SelectProvider",
|
|
12781
|
+
props: { context: {
|
|
12782
|
+
type: Object,
|
|
12783
|
+
required: true
|
|
12784
|
+
} },
|
|
12785
|
+
setup(__props) {
|
|
12786
|
+
const props = __props;
|
|
12787
|
+
provideSelectRootContext(props.context);
|
|
12788
|
+
provideSelectContentContext(SelectContentDefaultContextValue);
|
|
12789
|
+
return (_ctx, _cache) => {
|
|
12790
|
+
return renderSlot(_ctx.$slots, "default");
|
|
12791
|
+
};
|
|
12792
|
+
}
|
|
12793
|
+
});
|
|
12794
|
+
var SelectProvider_default = SelectProvider_vue_vue_type_script_setup_true_lang_default;
|
|
12795
|
+
const _hoisted_1$A = { key: 1 };
|
|
12796
|
+
var SelectContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12797
|
+
inheritAttrs: false,
|
|
12798
|
+
__name: "SelectContent",
|
|
12799
|
+
props: {
|
|
12800
|
+
forceMount: {
|
|
12801
|
+
type: Boolean,
|
|
12802
|
+
required: false
|
|
12803
|
+
},
|
|
12804
|
+
position: {
|
|
12805
|
+
type: String,
|
|
12806
|
+
required: false
|
|
12807
|
+
},
|
|
12808
|
+
bodyLock: {
|
|
12809
|
+
type: Boolean,
|
|
12810
|
+
required: false
|
|
12811
|
+
},
|
|
12812
|
+
side: {
|
|
12813
|
+
type: null,
|
|
12814
|
+
required: false
|
|
12815
|
+
},
|
|
12816
|
+
sideOffset: {
|
|
12817
|
+
type: Number,
|
|
12818
|
+
required: false
|
|
12819
|
+
},
|
|
12820
|
+
sideFlip: {
|
|
12821
|
+
type: Boolean,
|
|
12822
|
+
required: false
|
|
12823
|
+
},
|
|
12824
|
+
align: {
|
|
12825
|
+
type: null,
|
|
12826
|
+
required: false
|
|
12827
|
+
},
|
|
12828
|
+
alignOffset: {
|
|
12829
|
+
type: Number,
|
|
12830
|
+
required: false
|
|
12831
|
+
},
|
|
12832
|
+
alignFlip: {
|
|
12833
|
+
type: Boolean,
|
|
12834
|
+
required: false
|
|
12835
|
+
},
|
|
12836
|
+
avoidCollisions: {
|
|
12837
|
+
type: Boolean,
|
|
12838
|
+
required: false
|
|
12839
|
+
},
|
|
12840
|
+
collisionBoundary: {
|
|
12841
|
+
type: null,
|
|
12842
|
+
required: false
|
|
12843
|
+
},
|
|
12844
|
+
collisionPadding: {
|
|
12845
|
+
type: [Number, Object],
|
|
12846
|
+
required: false
|
|
12847
|
+
},
|
|
12848
|
+
arrowPadding: {
|
|
12849
|
+
type: Number,
|
|
12850
|
+
required: false
|
|
12851
|
+
},
|
|
12852
|
+
sticky: {
|
|
12853
|
+
type: String,
|
|
12854
|
+
required: false
|
|
12855
|
+
},
|
|
12856
|
+
hideWhenDetached: {
|
|
12857
|
+
type: Boolean,
|
|
12858
|
+
required: false
|
|
12859
|
+
},
|
|
12860
|
+
positionStrategy: {
|
|
12861
|
+
type: String,
|
|
12862
|
+
required: false
|
|
12863
|
+
},
|
|
12864
|
+
updatePositionStrategy: {
|
|
12865
|
+
type: String,
|
|
12866
|
+
required: false
|
|
12867
|
+
},
|
|
12868
|
+
disableUpdateOnLayoutShift: {
|
|
12869
|
+
type: Boolean,
|
|
12870
|
+
required: false
|
|
12871
|
+
},
|
|
12872
|
+
prioritizePosition: {
|
|
12873
|
+
type: Boolean,
|
|
12874
|
+
required: false
|
|
12875
|
+
},
|
|
12876
|
+
reference: {
|
|
12877
|
+
type: null,
|
|
12878
|
+
required: false
|
|
12879
|
+
},
|
|
12880
|
+
asChild: {
|
|
12881
|
+
type: Boolean,
|
|
12882
|
+
required: false
|
|
12883
|
+
},
|
|
12884
|
+
as: {
|
|
12885
|
+
type: null,
|
|
12886
|
+
required: false
|
|
12887
|
+
}
|
|
12888
|
+
},
|
|
12889
|
+
emits: [
|
|
12890
|
+
"closeAutoFocus",
|
|
12891
|
+
"escapeKeyDown",
|
|
12892
|
+
"pointerDownOutside"
|
|
12893
|
+
],
|
|
12894
|
+
setup(__props, { emit: __emit }) {
|
|
12895
|
+
const props = __props;
|
|
12896
|
+
const emits = __emit;
|
|
12897
|
+
const forwarded = useForwardPropsEmits(props, emits);
|
|
12898
|
+
const rootContext = injectSelectRootContext();
|
|
12899
|
+
const fragment = ref();
|
|
12900
|
+
onMounted(() => {
|
|
12901
|
+
fragment.value = new DocumentFragment();
|
|
12902
|
+
});
|
|
12903
|
+
const presenceRef = ref();
|
|
12904
|
+
const present = computed(() => props.forceMount || rootContext.open.value);
|
|
12905
|
+
const renderPresence = ref(present.value);
|
|
12906
|
+
watch(present, () => {
|
|
12907
|
+
setTimeout(() => renderPresence.value = present.value);
|
|
12908
|
+
});
|
|
12909
|
+
return (_ctx, _cache) => {
|
|
12910
|
+
return present.value || renderPresence.value || presenceRef.value?.present ? (openBlock(), createBlock(unref(Presence_default), {
|
|
12911
|
+
key: 0,
|
|
12912
|
+
ref_key: "presenceRef",
|
|
12913
|
+
ref: presenceRef,
|
|
12914
|
+
present: present.value
|
|
12915
|
+
}, {
|
|
12916
|
+
default: withCtx(() => [createVNode(SelectContentImpl_default, normalizeProps(guardReactiveProps({
|
|
12917
|
+
...unref(forwarded),
|
|
12918
|
+
..._ctx.$attrs
|
|
12919
|
+
})), {
|
|
12920
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
12921
|
+
_: 3
|
|
12922
|
+
}, 16)]),
|
|
12923
|
+
_: 3
|
|
12924
|
+
}, 8, ["present"])) : fragment.value ? (openBlock(), createElementBlock("div", _hoisted_1$A, [(openBlock(), createBlock(Teleport, { to: fragment.value }, [createVNode(SelectProvider_default, { context: unref(rootContext) }, {
|
|
12925
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
12926
|
+
_: 3
|
|
12927
|
+
}, 8, ["context"])], 8, ["to"]))])) : createCommentVNode("v-if", true);
|
|
12928
|
+
};
|
|
12929
|
+
}
|
|
12930
|
+
});
|
|
12931
|
+
var SelectContent_default = SelectContent_vue_vue_type_script_setup_true_lang_default;
|
|
12932
|
+
const [injectSelectItemContext, provideSelectItemContext] = createContext("SelectItem");
|
|
12933
|
+
var SelectItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
12934
|
+
__name: "SelectItem",
|
|
12935
|
+
props: {
|
|
12936
|
+
value: {
|
|
12937
|
+
type: null,
|
|
12938
|
+
required: true
|
|
12939
|
+
},
|
|
12940
|
+
disabled: {
|
|
12941
|
+
type: Boolean,
|
|
12942
|
+
required: false
|
|
12943
|
+
},
|
|
12944
|
+
textValue: {
|
|
12945
|
+
type: String,
|
|
12946
|
+
required: false
|
|
12947
|
+
},
|
|
12948
|
+
asChild: {
|
|
12949
|
+
type: Boolean,
|
|
12950
|
+
required: false
|
|
12951
|
+
},
|
|
12952
|
+
as: {
|
|
12953
|
+
type: null,
|
|
12954
|
+
required: false
|
|
12955
|
+
}
|
|
12956
|
+
},
|
|
12957
|
+
emits: ["select"],
|
|
12958
|
+
setup(__props, { emit: __emit }) {
|
|
12959
|
+
const props = __props;
|
|
12960
|
+
const emits = __emit;
|
|
12961
|
+
const { disabled } = toRefs(props);
|
|
12962
|
+
const rootContext = injectSelectRootContext();
|
|
12963
|
+
const contentContext = injectSelectContentContext();
|
|
12964
|
+
const { forwardRef, currentElement } = useForwardExpose();
|
|
12965
|
+
const { CollectionItem } = useCollection();
|
|
12966
|
+
const isSelected = computed(() => valueComparator(rootContext.modelValue?.value, props.value, rootContext.by));
|
|
12967
|
+
const isFocused = ref(false);
|
|
12968
|
+
const textValue = ref(props.textValue ?? "");
|
|
12969
|
+
const textId = useId(void 0, "reka-select-item-text");
|
|
12970
|
+
const SELECT_SELECT = "select.select";
|
|
12971
|
+
async function handleSelectCustomEvent(ev) {
|
|
12972
|
+
if (ev.defaultPrevented) return;
|
|
12973
|
+
const eventDetail = {
|
|
12974
|
+
originalEvent: ev,
|
|
12975
|
+
value: props.value
|
|
12976
|
+
};
|
|
12977
|
+
handleAndDispatchCustomEvent$1(SELECT_SELECT, handleSelect2, eventDetail);
|
|
12978
|
+
}
|
|
12979
|
+
async function handleSelect2(ev) {
|
|
12980
|
+
await nextTick();
|
|
12981
|
+
emits("select", ev);
|
|
12982
|
+
if (ev.defaultPrevented) return;
|
|
12983
|
+
if (!disabled.value) {
|
|
12984
|
+
rootContext.onValueChange(props.value);
|
|
12985
|
+
if (!rootContext.multiple.value) rootContext.onOpenChange(false);
|
|
12986
|
+
}
|
|
12987
|
+
}
|
|
12988
|
+
async function handlePointerMove(event) {
|
|
12989
|
+
await nextTick();
|
|
12990
|
+
if (event.defaultPrevented) return;
|
|
12991
|
+
if (disabled.value) contentContext.onItemLeave?.();
|
|
12992
|
+
else event.currentTarget?.focus({ preventScroll: true });
|
|
12993
|
+
}
|
|
12994
|
+
async function handlePointerLeave(event) {
|
|
12995
|
+
await nextTick();
|
|
12996
|
+
if (event.defaultPrevented) return;
|
|
12997
|
+
if (event.currentTarget === getActiveElement()) contentContext.onItemLeave?.();
|
|
12998
|
+
}
|
|
12999
|
+
async function handleKeyDown(event) {
|
|
13000
|
+
await nextTick();
|
|
13001
|
+
if (event.defaultPrevented) return;
|
|
13002
|
+
const isTypingAhead = contentContext.searchRef?.value !== "";
|
|
13003
|
+
if (isTypingAhead && event.key === " ") return;
|
|
13004
|
+
if (SELECTION_KEYS.includes(event.key)) handleSelectCustomEvent(event);
|
|
13005
|
+
if (event.key === " ") event.preventDefault();
|
|
13006
|
+
}
|
|
13007
|
+
if (props.value === "") throw new Error("A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");
|
|
13008
|
+
onMounted(() => {
|
|
13009
|
+
if (!currentElement.value) return;
|
|
13010
|
+
contentContext.itemRefCallback(currentElement.value, props.value, props.disabled);
|
|
13011
|
+
});
|
|
13012
|
+
provideSelectItemContext({
|
|
13013
|
+
value: props.value,
|
|
13014
|
+
disabled,
|
|
13015
|
+
textId,
|
|
13016
|
+
isSelected,
|
|
13017
|
+
onItemTextChange: (node) => {
|
|
13018
|
+
textValue.value = ((textValue.value || node?.textContent) ?? "").trim();
|
|
13019
|
+
}
|
|
13020
|
+
});
|
|
13021
|
+
return (_ctx, _cache) => {
|
|
13022
|
+
return openBlock(), createBlock(unref(CollectionItem), { value: { textValue: textValue.value } }, {
|
|
13023
|
+
default: withCtx(() => [createVNode(unref(Primitive), {
|
|
13024
|
+
ref: unref(forwardRef),
|
|
13025
|
+
role: "option",
|
|
13026
|
+
"aria-labelledby": unref(textId),
|
|
13027
|
+
"data-highlighted": isFocused.value ? "" : void 0,
|
|
13028
|
+
"aria-selected": isSelected.value,
|
|
13029
|
+
"data-state": isSelected.value ? "checked" : "unchecked",
|
|
13030
|
+
"aria-disabled": unref(disabled) || void 0,
|
|
13031
|
+
"data-disabled": unref(disabled) ? "" : void 0,
|
|
13032
|
+
tabindex: unref(disabled) ? void 0 : -1,
|
|
13033
|
+
as: _ctx.as,
|
|
13034
|
+
"as-child": _ctx.asChild,
|
|
13035
|
+
onFocus: _cache[0] || (_cache[0] = ($event) => isFocused.value = true),
|
|
13036
|
+
onBlur: _cache[1] || (_cache[1] = ($event) => isFocused.value = false),
|
|
13037
|
+
onPointerup: handleSelectCustomEvent,
|
|
13038
|
+
onPointerdown: _cache[2] || (_cache[2] = (event) => {
|
|
13039
|
+
event.currentTarget.focus({ preventScroll: true });
|
|
13040
|
+
}),
|
|
13041
|
+
onTouchend: _cache[3] || (_cache[3] = withModifiers(() => {
|
|
13042
|
+
}, ["prevent", "stop"])),
|
|
13043
|
+
onPointermove: handlePointerMove,
|
|
13044
|
+
onPointerleave: handlePointerLeave,
|
|
13045
|
+
onKeydown: handleKeyDown
|
|
13046
|
+
}, {
|
|
13047
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13048
|
+
_: 3
|
|
13049
|
+
}, 8, [
|
|
13050
|
+
"aria-labelledby",
|
|
13051
|
+
"data-highlighted",
|
|
13052
|
+
"aria-selected",
|
|
13053
|
+
"data-state",
|
|
13054
|
+
"aria-disabled",
|
|
13055
|
+
"data-disabled",
|
|
13056
|
+
"tabindex",
|
|
13057
|
+
"as",
|
|
13058
|
+
"as-child"
|
|
13059
|
+
])]),
|
|
13060
|
+
_: 3
|
|
13061
|
+
}, 8, ["value"]);
|
|
13062
|
+
};
|
|
13063
|
+
}
|
|
13064
|
+
});
|
|
13065
|
+
var SelectItem_default = SelectItem_vue_vue_type_script_setup_true_lang_default;
|
|
13066
|
+
var SelectItemIndicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13067
|
+
__name: "SelectItemIndicator",
|
|
13068
|
+
props: {
|
|
13069
|
+
asChild: {
|
|
13070
|
+
type: Boolean,
|
|
13071
|
+
required: false
|
|
13072
|
+
},
|
|
13073
|
+
as: {
|
|
13074
|
+
type: null,
|
|
13075
|
+
required: false,
|
|
13076
|
+
default: "span"
|
|
13077
|
+
}
|
|
13078
|
+
},
|
|
13079
|
+
setup(__props) {
|
|
13080
|
+
const props = __props;
|
|
13081
|
+
const itemContext = injectSelectItemContext();
|
|
13082
|
+
return (_ctx, _cache) => {
|
|
13083
|
+
return unref(itemContext).isSelected.value ? (openBlock(), createBlock(unref(Primitive), mergeProps({
|
|
13084
|
+
key: 0,
|
|
13085
|
+
"aria-hidden": "true"
|
|
13086
|
+
}, props), {
|
|
13087
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13088
|
+
_: 3
|
|
13089
|
+
}, 16)) : createCommentVNode("v-if", true);
|
|
13090
|
+
};
|
|
13091
|
+
}
|
|
13092
|
+
});
|
|
13093
|
+
var SelectItemIndicator_default = SelectItemIndicator_vue_vue_type_script_setup_true_lang_default;
|
|
13094
|
+
var SelectItemText_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13095
|
+
inheritAttrs: false,
|
|
13096
|
+
__name: "SelectItemText",
|
|
13097
|
+
props: {
|
|
13098
|
+
asChild: {
|
|
13099
|
+
type: Boolean,
|
|
13100
|
+
required: false
|
|
13101
|
+
},
|
|
13102
|
+
as: {
|
|
13103
|
+
type: null,
|
|
13104
|
+
required: false,
|
|
13105
|
+
default: "span"
|
|
13106
|
+
}
|
|
13107
|
+
},
|
|
13108
|
+
setup(__props) {
|
|
13109
|
+
const props = __props;
|
|
13110
|
+
const rootContext = injectSelectRootContext();
|
|
13111
|
+
const contentContext = injectSelectContentContext();
|
|
13112
|
+
const itemContext = injectSelectItemContext();
|
|
13113
|
+
const { forwardRef, currentElement: itemTextElement } = useForwardExpose();
|
|
13114
|
+
const optionProps = computed(() => {
|
|
13115
|
+
return {
|
|
13116
|
+
value: itemContext.value,
|
|
13117
|
+
disabled: itemContext.disabled.value,
|
|
13118
|
+
textContent: itemTextElement.value?.textContent ?? itemContext.value?.toString() ?? ""
|
|
13119
|
+
};
|
|
13120
|
+
});
|
|
13121
|
+
onMounted(() => {
|
|
13122
|
+
if (!itemTextElement.value) return;
|
|
13123
|
+
itemContext.onItemTextChange(itemTextElement.value);
|
|
13124
|
+
contentContext.itemTextRefCallback(itemTextElement.value, itemContext.value, itemContext.disabled.value);
|
|
13125
|
+
rootContext.onOptionAdd(optionProps.value);
|
|
13126
|
+
});
|
|
13127
|
+
onUnmounted(() => {
|
|
13128
|
+
rootContext.onOptionRemove(optionProps.value);
|
|
13129
|
+
});
|
|
13130
|
+
return (_ctx, _cache) => {
|
|
13131
|
+
return openBlock(), createBlock(unref(Primitive), mergeProps({
|
|
13132
|
+
id: unref(itemContext).textId,
|
|
13133
|
+
ref: unref(forwardRef)
|
|
13134
|
+
}, {
|
|
13135
|
+
...props,
|
|
13136
|
+
..._ctx.$attrs
|
|
13137
|
+
}), {
|
|
13138
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13139
|
+
_: 3
|
|
13140
|
+
}, 16, ["id"]);
|
|
13141
|
+
};
|
|
13142
|
+
}
|
|
13143
|
+
});
|
|
13144
|
+
var SelectItemText_default = SelectItemText_vue_vue_type_script_setup_true_lang_default;
|
|
13145
|
+
var SelectPortal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13146
|
+
__name: "SelectPortal",
|
|
13147
|
+
props: {
|
|
13148
|
+
to: {
|
|
13149
|
+
type: null,
|
|
13150
|
+
required: false
|
|
13151
|
+
},
|
|
13152
|
+
disabled: {
|
|
13153
|
+
type: Boolean,
|
|
13154
|
+
required: false
|
|
13155
|
+
},
|
|
13156
|
+
defer: {
|
|
13157
|
+
type: Boolean,
|
|
13158
|
+
required: false
|
|
13159
|
+
},
|
|
13160
|
+
forceMount: {
|
|
13161
|
+
type: Boolean,
|
|
13162
|
+
required: false
|
|
13163
|
+
}
|
|
13164
|
+
},
|
|
13165
|
+
setup(__props) {
|
|
13166
|
+
const props = __props;
|
|
13167
|
+
return (_ctx, _cache) => {
|
|
13168
|
+
return openBlock(), createBlock(unref(Teleport_default), normalizeProps(guardReactiveProps(props)), {
|
|
13169
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13170
|
+
_: 3
|
|
13171
|
+
}, 16);
|
|
13172
|
+
};
|
|
13173
|
+
}
|
|
13174
|
+
});
|
|
13175
|
+
var SelectPortal_default = SelectPortal_vue_vue_type_script_setup_true_lang_default;
|
|
13176
|
+
var SelectSeparator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13177
|
+
__name: "SelectSeparator",
|
|
13178
|
+
props: {
|
|
13179
|
+
asChild: {
|
|
13180
|
+
type: Boolean,
|
|
13181
|
+
required: false
|
|
13182
|
+
},
|
|
13183
|
+
as: {
|
|
13184
|
+
type: null,
|
|
13185
|
+
required: false
|
|
13186
|
+
}
|
|
13187
|
+
},
|
|
13188
|
+
setup(__props) {
|
|
13189
|
+
const props = __props;
|
|
13190
|
+
return (_ctx, _cache) => {
|
|
13191
|
+
return openBlock(), createBlock(unref(Primitive), mergeProps({ "aria-hidden": "true" }, props), {
|
|
13192
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13193
|
+
_: 3
|
|
13194
|
+
}, 16);
|
|
13195
|
+
};
|
|
13196
|
+
}
|
|
13197
|
+
});
|
|
13198
|
+
var SelectSeparator_default = SelectSeparator_vue_vue_type_script_setup_true_lang_default;
|
|
13199
|
+
var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13200
|
+
__name: "SelectTrigger",
|
|
13201
|
+
props: {
|
|
13202
|
+
disabled: {
|
|
13203
|
+
type: Boolean,
|
|
13204
|
+
required: false
|
|
13205
|
+
},
|
|
13206
|
+
reference: {
|
|
13207
|
+
type: null,
|
|
13208
|
+
required: false
|
|
13209
|
+
},
|
|
13210
|
+
asChild: {
|
|
13211
|
+
type: Boolean,
|
|
13212
|
+
required: false
|
|
13213
|
+
},
|
|
13214
|
+
as: {
|
|
13215
|
+
type: null,
|
|
13216
|
+
required: false,
|
|
13217
|
+
default: "button"
|
|
13218
|
+
}
|
|
13219
|
+
},
|
|
13220
|
+
setup(__props) {
|
|
13221
|
+
const props = __props;
|
|
13222
|
+
const rootContext = injectSelectRootContext();
|
|
13223
|
+
const { forwardRef, currentElement: triggerElement } = useForwardExpose();
|
|
13224
|
+
const isDisabled = computed(() => rootContext.disabled?.value || props.disabled);
|
|
13225
|
+
rootContext.contentId ||= useId(void 0, "reka-select-content");
|
|
13226
|
+
onMounted(() => {
|
|
13227
|
+
rootContext.onTriggerChange(triggerElement.value);
|
|
13228
|
+
});
|
|
13229
|
+
const { getItems } = useCollection();
|
|
13230
|
+
const { search, handleTypeaheadSearch, resetTypeahead } = useTypeahead();
|
|
13231
|
+
function handleOpen() {
|
|
13232
|
+
if (!isDisabled.value) {
|
|
13233
|
+
rootContext.onOpenChange(true);
|
|
13234
|
+
resetTypeahead();
|
|
13235
|
+
}
|
|
13236
|
+
}
|
|
13237
|
+
function handlePointerOpen(event) {
|
|
13238
|
+
handleOpen();
|
|
13239
|
+
rootContext.triggerPointerDownPosRef.value = {
|
|
13240
|
+
x: Math.round(event.pageX),
|
|
13241
|
+
y: Math.round(event.pageY)
|
|
13242
|
+
};
|
|
13243
|
+
}
|
|
13244
|
+
return (_ctx, _cache) => {
|
|
13245
|
+
return openBlock(), createBlock(unref(PopperAnchor_default), {
|
|
13246
|
+
"as-child": "",
|
|
13247
|
+
reference: _ctx.reference
|
|
13248
|
+
}, {
|
|
13249
|
+
default: withCtx(() => [createVNode(unref(Primitive), {
|
|
13250
|
+
ref: unref(forwardRef),
|
|
13251
|
+
role: "combobox",
|
|
13252
|
+
type: _ctx.as === "button" ? "button" : void 0,
|
|
13253
|
+
"aria-controls": unref(rootContext).contentId,
|
|
13254
|
+
"aria-expanded": unref(rootContext).open.value || false,
|
|
13255
|
+
"aria-required": unref(rootContext).required?.value,
|
|
13256
|
+
"aria-autocomplete": "none",
|
|
13257
|
+
disabled: isDisabled.value,
|
|
13258
|
+
dir: unref(rootContext)?.dir.value,
|
|
13259
|
+
"data-state": unref(rootContext)?.open.value ? "open" : "closed",
|
|
13260
|
+
"data-disabled": isDisabled.value ? "" : void 0,
|
|
13261
|
+
"data-placeholder": unref(shouldShowPlaceholder)(unref(rootContext).modelValue?.value) ? "" : void 0,
|
|
13262
|
+
"as-child": _ctx.asChild,
|
|
13263
|
+
as: _ctx.as,
|
|
13264
|
+
onClick: _cache[0] || (_cache[0] = (event) => {
|
|
13265
|
+
event?.currentTarget?.focus();
|
|
13266
|
+
}),
|
|
13267
|
+
onPointerdown: _cache[1] || (_cache[1] = (event) => {
|
|
13268
|
+
if (event.pointerType === "touch") return event.preventDefault();
|
|
13269
|
+
const target = event.target;
|
|
13270
|
+
if (target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);
|
|
13271
|
+
if (event.button === 0 && event.ctrlKey === false) {
|
|
13272
|
+
handlePointerOpen(event);
|
|
13273
|
+
event.preventDefault();
|
|
13274
|
+
}
|
|
13275
|
+
}),
|
|
13276
|
+
onPointerup: _cache[2] || (_cache[2] = withModifiers((event) => {
|
|
13277
|
+
if (event.pointerType === "touch") handlePointerOpen(event);
|
|
13278
|
+
}, ["prevent"])),
|
|
13279
|
+
onKeydown: _cache[3] || (_cache[3] = (event) => {
|
|
13280
|
+
const isTypingAhead = unref(search) !== "";
|
|
13281
|
+
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
|
|
13282
|
+
if (!isModifierKey && event.key.length === 1) {
|
|
13283
|
+
if (isTypingAhead && event.key === " ") return;
|
|
13284
|
+
}
|
|
13285
|
+
unref(handleTypeaheadSearch)(event.key, unref(getItems)());
|
|
13286
|
+
if (unref(OPEN_KEYS).includes(event.key)) {
|
|
13287
|
+
handleOpen();
|
|
13288
|
+
event.preventDefault();
|
|
13289
|
+
}
|
|
13290
|
+
})
|
|
13291
|
+
}, {
|
|
13292
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13293
|
+
_: 3
|
|
13294
|
+
}, 8, [
|
|
13295
|
+
"type",
|
|
13296
|
+
"aria-controls",
|
|
13297
|
+
"aria-expanded",
|
|
13298
|
+
"aria-required",
|
|
13299
|
+
"disabled",
|
|
13300
|
+
"dir",
|
|
13301
|
+
"data-state",
|
|
13302
|
+
"data-disabled",
|
|
13303
|
+
"data-placeholder",
|
|
13304
|
+
"as-child",
|
|
13305
|
+
"as"
|
|
13306
|
+
])]),
|
|
13307
|
+
_: 3
|
|
13308
|
+
}, 8, ["reference"]);
|
|
13309
|
+
};
|
|
13310
|
+
}
|
|
13311
|
+
});
|
|
13312
|
+
var SelectTrigger_default = SelectTrigger_vue_vue_type_script_setup_true_lang_default;
|
|
13313
|
+
var SelectValue_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13314
|
+
__name: "SelectValue",
|
|
13315
|
+
props: {
|
|
13316
|
+
placeholder: {
|
|
13317
|
+
type: String,
|
|
13318
|
+
required: false,
|
|
13319
|
+
default: ""
|
|
13320
|
+
},
|
|
13321
|
+
asChild: {
|
|
13322
|
+
type: Boolean,
|
|
13323
|
+
required: false
|
|
13324
|
+
},
|
|
13325
|
+
as: {
|
|
13326
|
+
type: null,
|
|
13327
|
+
required: false,
|
|
13328
|
+
default: "span"
|
|
13329
|
+
}
|
|
13330
|
+
},
|
|
13331
|
+
setup(__props) {
|
|
13332
|
+
const props = __props;
|
|
13333
|
+
const { forwardRef, currentElement } = useForwardExpose();
|
|
13334
|
+
const rootContext = injectSelectRootContext();
|
|
13335
|
+
onMounted(() => {
|
|
13336
|
+
rootContext.valueElement = currentElement;
|
|
13337
|
+
});
|
|
13338
|
+
const selectedLabel = computed(() => {
|
|
13339
|
+
let list = [];
|
|
13340
|
+
const options = Array.from(rootContext.optionsSet.value);
|
|
13341
|
+
const getOption = (value) => options.find((option) => valueComparator(value, option.value, rootContext.by));
|
|
13342
|
+
if (Array.isArray(rootContext.modelValue.value)) list = rootContext.modelValue.value.map((value) => getOption(value)?.textContent ?? "");
|
|
13343
|
+
else list = [getOption(rootContext.modelValue.value)?.textContent ?? ""];
|
|
13344
|
+
return list.filter(Boolean);
|
|
13345
|
+
});
|
|
13346
|
+
const slotText = computed(() => {
|
|
13347
|
+
return selectedLabel.value.length ? selectedLabel.value.join(", ") : props.placeholder;
|
|
13348
|
+
});
|
|
13349
|
+
return (_ctx, _cache) => {
|
|
13350
|
+
return openBlock(), createBlock(unref(Primitive), {
|
|
13351
|
+
ref: unref(forwardRef),
|
|
13352
|
+
as: _ctx.as,
|
|
13353
|
+
"as-child": _ctx.asChild,
|
|
13354
|
+
style: { pointerEvents: "none" },
|
|
13355
|
+
"data-placeholder": selectedLabel.value.length ? void 0 : props.placeholder
|
|
13356
|
+
}, {
|
|
13357
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
|
|
13358
|
+
selectedLabel: selectedLabel.value,
|
|
13359
|
+
modelValue: unref(rootContext).modelValue.value
|
|
13360
|
+
}, () => [createTextVNode(toDisplayString(slotText.value), 1)])]),
|
|
13361
|
+
_: 3
|
|
13362
|
+
}, 8, [
|
|
13363
|
+
"as",
|
|
13364
|
+
"as-child",
|
|
13365
|
+
"data-placeholder"
|
|
13366
|
+
]);
|
|
13367
|
+
};
|
|
13368
|
+
}
|
|
13369
|
+
});
|
|
13370
|
+
var SelectValue_default = SelectValue_vue_vue_type_script_setup_true_lang_default;
|
|
13371
|
+
var SelectViewport_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13372
|
+
__name: "SelectViewport",
|
|
13373
|
+
props: {
|
|
13374
|
+
nonce: {
|
|
13375
|
+
type: String,
|
|
13376
|
+
required: false
|
|
13377
|
+
},
|
|
13378
|
+
asChild: {
|
|
13379
|
+
type: Boolean,
|
|
13380
|
+
required: false
|
|
13381
|
+
},
|
|
13382
|
+
as: {
|
|
13383
|
+
type: null,
|
|
13384
|
+
required: false
|
|
13385
|
+
}
|
|
13386
|
+
},
|
|
13387
|
+
setup(__props) {
|
|
13388
|
+
const props = __props;
|
|
13389
|
+
const { nonce: propNonce } = toRefs(props);
|
|
13390
|
+
const nonce = useNonce(propNonce);
|
|
13391
|
+
const contentContext = injectSelectContentContext();
|
|
13392
|
+
const alignedPositionContext = contentContext.position === "item-aligned" ? injectSelectItemAlignedPositionContext() : void 0;
|
|
13393
|
+
const { forwardRef, currentElement } = useForwardExpose();
|
|
13394
|
+
onMounted(() => {
|
|
13395
|
+
contentContext?.onViewportChange(currentElement.value);
|
|
13396
|
+
});
|
|
13397
|
+
const prevScrollTopRef = ref(0);
|
|
13398
|
+
function handleScroll(event) {
|
|
13399
|
+
const viewport = event.currentTarget;
|
|
13400
|
+
const { shouldExpandOnScrollRef, contentWrapper } = alignedPositionContext ?? {};
|
|
13401
|
+
if (shouldExpandOnScrollRef?.value && contentWrapper?.value) {
|
|
13402
|
+
const scrolledBy = Math.abs(prevScrollTopRef.value - viewport.scrollTop);
|
|
13403
|
+
if (scrolledBy > 0) {
|
|
13404
|
+
const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
|
|
13405
|
+
const cssMinHeight = Number.parseFloat(contentWrapper.value.style.minHeight);
|
|
13406
|
+
const cssHeight = Number.parseFloat(contentWrapper.value.style.height);
|
|
13407
|
+
const prevHeight = Math.max(cssMinHeight, cssHeight);
|
|
13408
|
+
if (prevHeight < availableHeight) {
|
|
13409
|
+
const nextHeight = prevHeight + scrolledBy;
|
|
13410
|
+
const clampedNextHeight = Math.min(availableHeight, nextHeight);
|
|
13411
|
+
const heightDiff = nextHeight - clampedNextHeight;
|
|
13412
|
+
contentWrapper.value.style.height = `${clampedNextHeight}px`;
|
|
13413
|
+
if (contentWrapper.value.style.bottom === "0px") {
|
|
13414
|
+
viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;
|
|
13415
|
+
contentWrapper.value.style.justifyContent = "flex-end";
|
|
13416
|
+
}
|
|
13417
|
+
}
|
|
13418
|
+
}
|
|
13419
|
+
}
|
|
13420
|
+
prevScrollTopRef.value = viewport.scrollTop;
|
|
13421
|
+
}
|
|
13422
|
+
return (_ctx, _cache) => {
|
|
13423
|
+
return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(Primitive), mergeProps({
|
|
13424
|
+
ref: unref(forwardRef),
|
|
13425
|
+
"data-reka-select-viewport": "",
|
|
13426
|
+
role: "presentation"
|
|
13427
|
+
}, {
|
|
13428
|
+
..._ctx.$attrs,
|
|
13429
|
+
...props
|
|
13430
|
+
}, {
|
|
13431
|
+
style: {
|
|
13432
|
+
position: "relative",
|
|
13433
|
+
flex: 1,
|
|
13434
|
+
overflow: "hidden auto"
|
|
13435
|
+
},
|
|
13436
|
+
onScroll: handleScroll
|
|
13437
|
+
}), {
|
|
13438
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
13439
|
+
_: 3
|
|
13440
|
+
}, 16), createVNode(unref(Primitive), {
|
|
13441
|
+
as: "style",
|
|
13442
|
+
nonce: unref(nonce)
|
|
13443
|
+
}, {
|
|
13444
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [createTextVNode(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),
|
|
13445
|
+
_: 1,
|
|
13446
|
+
__: [0]
|
|
13447
|
+
}, 8, ["nonce"])], 64);
|
|
13448
|
+
};
|
|
13449
|
+
}
|
|
13450
|
+
});
|
|
13451
|
+
var SelectViewport_default = SelectViewport_vue_vue_type_script_setup_true_lang_default;
|
|
13452
|
+
function getNextSortedValues(prevValues = [], nextValue, atIndex) {
|
|
13453
|
+
const nextValues = [...prevValues];
|
|
13454
|
+
nextValues[atIndex] = nextValue;
|
|
13455
|
+
return nextValues.sort((a, b) => a - b);
|
|
13456
|
+
}
|
|
13457
|
+
function convertValueToPercentage(value, min2, max2) {
|
|
13458
|
+
const maxSteps = max2 - min2;
|
|
13459
|
+
const percentPerStep = 100 / maxSteps;
|
|
13460
|
+
const percentage = percentPerStep * (value - min2);
|
|
13461
|
+
return clamp$1(percentage, 0, 100);
|
|
13462
|
+
}
|
|
13463
|
+
function getLabel(index, totalValues) {
|
|
13464
|
+
if (totalValues > 2) return `Value ${index + 1} of ${totalValues}`;
|
|
13465
|
+
else if (totalValues === 2) return ["Minimum", "Maximum"][index];
|
|
13466
|
+
else return void 0;
|
|
13467
|
+
}
|
|
13468
|
+
function getClosestValueIndex(values, nextValue) {
|
|
13469
|
+
if (values.length === 1) return 0;
|
|
13470
|
+
const distances = values.map((value) => Math.abs(value - nextValue));
|
|
13471
|
+
const closestDistance = Math.min(...distances);
|
|
13472
|
+
return distances.indexOf(closestDistance);
|
|
13473
|
+
}
|
|
13474
|
+
function getThumbInBoundsOffset(width, left, direction) {
|
|
13475
|
+
const halfWidth = width / 2;
|
|
13476
|
+
const halfPercent = 50;
|
|
13477
|
+
const offset2 = linearScale([0, halfPercent], [0, halfWidth]);
|
|
13478
|
+
return (halfWidth - offset2(left) * direction) * direction;
|
|
13479
|
+
}
|
|
13480
|
+
function getStepsBetweenValues(values) {
|
|
13481
|
+
return values.slice(0, -1).map((value, index) => values[index + 1] - value);
|
|
13482
|
+
}
|
|
13483
|
+
function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
|
|
13484
|
+
if (minStepsBetweenValues > 0) {
|
|
13485
|
+
const stepsBetweenValues = getStepsBetweenValues(values);
|
|
13486
|
+
const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);
|
|
13487
|
+
return actualMinStepsBetweenValues >= minStepsBetweenValues;
|
|
13488
|
+
}
|
|
13489
|
+
return true;
|
|
13490
|
+
}
|
|
13491
|
+
function linearScale(input, output) {
|
|
13492
|
+
return (value) => {
|
|
13493
|
+
if (input[0] === input[1] || output[0] === output[1]) return output[0];
|
|
13494
|
+
const ratio = (output[1] - output[0]) / (input[1] - input[0]);
|
|
13495
|
+
return output[0] + ratio * (value - input[0]);
|
|
13496
|
+
};
|
|
13497
|
+
}
|
|
13498
|
+
function getDecimalCount(value) {
|
|
13499
|
+
return (String(value).split(".")[1] || "").length;
|
|
13500
|
+
}
|
|
13501
|
+
function roundValue(value, decimalCount) {
|
|
13502
|
+
const rounder = 10 ** decimalCount;
|
|
13503
|
+
return Math.round(value * rounder) / rounder;
|
|
13504
|
+
}
|
|
13505
|
+
const PAGE_KEYS = ["PageUp", "PageDown"];
|
|
13506
|
+
const ARROW_KEYS = [
|
|
13507
|
+
"ArrowUp",
|
|
13508
|
+
"ArrowDown",
|
|
13509
|
+
"ArrowLeft",
|
|
13510
|
+
"ArrowRight"
|
|
13511
|
+
];
|
|
13512
|
+
const BACK_KEYS = {
|
|
13513
|
+
"from-left": [
|
|
13514
|
+
"Home",
|
|
13515
|
+
"PageDown",
|
|
13516
|
+
"ArrowDown",
|
|
13517
|
+
"ArrowLeft"
|
|
13518
|
+
],
|
|
13519
|
+
"from-right": [
|
|
13520
|
+
"Home",
|
|
13521
|
+
"PageDown",
|
|
13522
|
+
"ArrowDown",
|
|
13523
|
+
"ArrowRight"
|
|
13524
|
+
],
|
|
13525
|
+
"from-bottom": [
|
|
13526
|
+
"Home",
|
|
13527
|
+
"PageDown",
|
|
13528
|
+
"ArrowDown",
|
|
13529
|
+
"ArrowLeft"
|
|
13530
|
+
],
|
|
13531
|
+
"from-top": [
|
|
13532
|
+
"Home",
|
|
13533
|
+
"PageUp",
|
|
13534
|
+
"ArrowUp",
|
|
13535
|
+
"ArrowLeft"
|
|
13536
|
+
]
|
|
13537
|
+
};
|
|
13538
|
+
const [injectSliderOrientationContext, provideSliderOrientationContext] = createContext(["SliderVertical", "SliderHorizontal"]);
|
|
13539
|
+
var SliderHorizontal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13540
|
+
__name: "SliderHorizontal",
|
|
13541
|
+
props: {
|
|
13542
|
+
dir: {
|
|
13543
|
+
type: String,
|
|
13544
|
+
required: false
|
|
13545
|
+
},
|
|
13546
|
+
min: {
|
|
13547
|
+
type: Number,
|
|
13548
|
+
required: true
|
|
13549
|
+
},
|
|
13550
|
+
max: {
|
|
13551
|
+
type: Number,
|
|
13552
|
+
required: true
|
|
13553
|
+
},
|
|
13554
|
+
inverted: {
|
|
13555
|
+
type: Boolean,
|
|
13556
|
+
required: true
|
|
13557
|
+
}
|
|
13558
|
+
},
|
|
13559
|
+
emits: [
|
|
13560
|
+
"slideEnd",
|
|
13561
|
+
"slideStart",
|
|
13562
|
+
"slideMove",
|
|
13563
|
+
"homeKeyDown",
|
|
13564
|
+
"endKeyDown",
|
|
13565
|
+
"stepKeyDown"
|
|
13566
|
+
],
|
|
13567
|
+
setup(__props, { emit: __emit }) {
|
|
13568
|
+
const props = __props;
|
|
13569
|
+
const emits = __emit;
|
|
13570
|
+
const { max: max2, min: min2, dir, inverted } = toRefs(props);
|
|
13571
|
+
const { forwardRef, currentElement: sliderElement } = useForwardExpose();
|
|
13572
|
+
const rootContext = injectSliderRootContext();
|
|
13573
|
+
const offsetPosition = ref();
|
|
13574
|
+
const rectRef = ref();
|
|
13575
|
+
const isSlidingFromLeft = computed(() => dir?.value !== "rtl" && !inverted.value || dir?.value !== "ltr" && inverted.value);
|
|
13576
|
+
function getValueFromPointerEvent(event, slideStart) {
|
|
13577
|
+
const rect = rectRef.value || sliderElement.value.getBoundingClientRect();
|
|
13578
|
+
const thumb = [...rootContext.thumbElements.value][rootContext.valueIndexToChangeRef.value];
|
|
13579
|
+
const thumbWidth = rootContext.thumbAlignment.value === "contain" ? thumb.clientWidth : 0;
|
|
13580
|
+
if (!offsetPosition.value && !slideStart && rootContext.thumbAlignment.value === "contain") offsetPosition.value = event.clientX - thumb.getBoundingClientRect().left;
|
|
13581
|
+
const input = [0, rect.width - thumbWidth];
|
|
13582
|
+
const output = isSlidingFromLeft.value ? [min2.value, max2.value] : [max2.value, min2.value];
|
|
13583
|
+
const value = linearScale(input, output);
|
|
13584
|
+
rectRef.value = rect;
|
|
13585
|
+
const position = slideStart ? event.clientX - rect.left - thumbWidth / 2 : event.clientX - rect.left - (offsetPosition.value ?? 0);
|
|
13586
|
+
return value(position);
|
|
13587
|
+
}
|
|
13588
|
+
const startEdge = computed(() => isSlidingFromLeft.value ? "left" : "right");
|
|
13589
|
+
const endEdge = computed(() => isSlidingFromLeft.value ? "right" : "left");
|
|
13590
|
+
const direction = computed(() => isSlidingFromLeft.value ? 1 : -1);
|
|
13591
|
+
provideSliderOrientationContext({
|
|
13592
|
+
startEdge,
|
|
13593
|
+
endEdge,
|
|
13594
|
+
direction,
|
|
13595
|
+
size: "width"
|
|
13596
|
+
});
|
|
13597
|
+
return (_ctx, _cache) => {
|
|
13598
|
+
return openBlock(), createBlock(SliderImpl_default, {
|
|
13599
|
+
ref: unref(forwardRef),
|
|
13600
|
+
dir: unref(dir),
|
|
13601
|
+
"data-orientation": "horizontal",
|
|
13602
|
+
style: normalizeStyle({ ["--reka-slider-thumb-transform"]: !isSlidingFromLeft.value && unref(rootContext).thumbAlignment.value === "overflow" ? "translateX(50%)" : "translateX(-50%)" }),
|
|
13603
|
+
onSlideStart: _cache[0] || (_cache[0] = (event) => {
|
|
13604
|
+
const value = getValueFromPointerEvent(event, true);
|
|
13605
|
+
emits("slideStart", value);
|
|
13606
|
+
}),
|
|
13607
|
+
onSlideMove: _cache[1] || (_cache[1] = (event) => {
|
|
13608
|
+
const value = getValueFromPointerEvent(event);
|
|
13609
|
+
emits("slideMove", value);
|
|
13610
|
+
}),
|
|
13611
|
+
onSlideEnd: _cache[2] || (_cache[2] = () => {
|
|
13612
|
+
rectRef.value = void 0;
|
|
12116
13613
|
offsetPosition.value = void 0;
|
|
12117
13614
|
emits("slideEnd");
|
|
12118
13615
|
}),
|
|
@@ -15071,7 +16568,7 @@ function useCustomColors(componentName, baseColor, textColor) {
|
|
|
15071
16568
|
return styles;
|
|
15072
16569
|
});
|
|
15073
16570
|
}
|
|
15074
|
-
const _sfc_main$
|
|
16571
|
+
const _sfc_main$U = /* @__PURE__ */ defineComponent({
|
|
15075
16572
|
__name: "SkAccordion",
|
|
15076
16573
|
props: {
|
|
15077
16574
|
type: { default: "single" },
|
|
@@ -15127,9 +16624,9 @@ const _export_sfc = (sfc, props) => {
|
|
|
15127
16624
|
}
|
|
15128
16625
|
return target;
|
|
15129
16626
|
};
|
|
15130
|
-
const SkAccordion = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15131
|
-
const _hoisted_1$
|
|
15132
|
-
const _sfc_main$
|
|
16627
|
+
const SkAccordion = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-85c35809"]]);
|
|
16628
|
+
const _hoisted_1$z = { class: "sk-accordion-content-inner" };
|
|
16629
|
+
const _sfc_main$T = /* @__PURE__ */ defineComponent({
|
|
15133
16630
|
__name: "SkAccordionItem",
|
|
15134
16631
|
props: {
|
|
15135
16632
|
value: {},
|
|
@@ -15192,7 +16689,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
|
|
|
15192
16689
|
}),
|
|
15193
16690
|
createVNode(unref(AccordionContent_default), { class: "sk-accordion-content" }, {
|
|
15194
16691
|
default: withCtx(() => [
|
|
15195
|
-
createElementVNode("div", _hoisted_1$
|
|
16692
|
+
createElementVNode("div", _hoisted_1$z, [
|
|
15196
16693
|
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
15197
16694
|
])
|
|
15198
16695
|
]),
|
|
@@ -15204,8 +16701,8 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
|
|
|
15204
16701
|
};
|
|
15205
16702
|
}
|
|
15206
16703
|
});
|
|
15207
|
-
const SkAccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15208
|
-
const _hoisted_1$
|
|
16704
|
+
const SkAccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-5e73d91f"]]);
|
|
16705
|
+
const _hoisted_1$y = {
|
|
15209
16706
|
key: 0,
|
|
15210
16707
|
class: "sk-alert-icon"
|
|
15211
16708
|
};
|
|
@@ -15238,7 +16735,7 @@ const _hoisted_5$6 = {
|
|
|
15238
16735
|
"stroke-width": "2"
|
|
15239
16736
|
};
|
|
15240
16737
|
const _hoisted_6$4 = { class: "sk-alert-content" };
|
|
15241
|
-
const _sfc_main$
|
|
16738
|
+
const _sfc_main$S = /* @__PURE__ */ defineComponent({
|
|
15242
16739
|
__name: "SkAlert",
|
|
15243
16740
|
props: {
|
|
15244
16741
|
kind: { default: "info" },
|
|
@@ -15277,7 +16774,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
15277
16774
|
style: normalizeStyle(unref(customColorStyles)),
|
|
15278
16775
|
role: "alert"
|
|
15279
16776
|
}, [
|
|
15280
|
-
shouldShowIcon.value ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
16777
|
+
shouldShowIcon.value ? (openBlock(), createElementBlock("div", _hoisted_1$y, [
|
|
15281
16778
|
renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
15282
16779
|
__props.kind === "info" ? (openBlock(), createElementBlock("svg", _hoisted_2$h, [..._cache[0] || (_cache[0] = [
|
|
15283
16780
|
createElementVNode("circle", {
|
|
@@ -15342,12 +16839,12 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
15342
16839
|
};
|
|
15343
16840
|
}
|
|
15344
16841
|
});
|
|
15345
|
-
const _hoisted_1$
|
|
16842
|
+
const _hoisted_1$x = ["src", "alt"];
|
|
15346
16843
|
const _hoisted_2$g = {
|
|
15347
16844
|
key: 1,
|
|
15348
16845
|
class: "sk-avatar-initials"
|
|
15349
16846
|
};
|
|
15350
|
-
const _sfc_main$
|
|
16847
|
+
const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
15351
16848
|
__name: "SkAvatar",
|
|
15352
16849
|
props: {
|
|
15353
16850
|
src: { default: void 0 },
|
|
@@ -15396,7 +16893,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
15396
16893
|
alt: __props.alt,
|
|
15397
16894
|
class: "sk-avatar-image",
|
|
15398
16895
|
onError: handleImageError
|
|
15399
|
-
}, null, 40, _hoisted_1$
|
|
16896
|
+
}, null, 40, _hoisted_1$x)) : __props.initials ? (openBlock(), createElementBlock("span", _hoisted_2$g, toDisplayString(displayInitials.value), 1)) : renderSlot(_ctx.$slots, "icon", { key: 2 }, () => [
|
|
15400
16897
|
_cache[0] || (_cache[0] = createElementVNode("svg", {
|
|
15401
16898
|
class: "sk-avatar-icon",
|
|
15402
16899
|
viewBox: "0 0 24 24",
|
|
@@ -15409,7 +16906,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
15409
16906
|
};
|
|
15410
16907
|
}
|
|
15411
16908
|
});
|
|
15412
|
-
const SkAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16909
|
+
const SkAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-07c208b7"]]);
|
|
15413
16910
|
/*!
|
|
15414
16911
|
* vue-router v4.6.3
|
|
15415
16912
|
* (c) 2025 Eduardo San Martin Morote
|
|
@@ -15585,8 +17082,8 @@ function getOriginalPath(record) {
|
|
|
15585
17082
|
return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
|
|
15586
17083
|
}
|
|
15587
17084
|
const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;
|
|
15588
|
-
const _hoisted_1$
|
|
15589
|
-
const _sfc_main$
|
|
17085
|
+
const _hoisted_1$w = { class: "sk-breadcrumb-item" };
|
|
17086
|
+
const _sfc_main$Q = /* @__PURE__ */ defineComponent({
|
|
15590
17087
|
__name: "SkBreadcrumbItem",
|
|
15591
17088
|
props: {
|
|
15592
17089
|
to: { default: void 0 },
|
|
@@ -15614,7 +17111,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
|
15614
17111
|
[`sk-${kind}`]: true
|
|
15615
17112
|
}));
|
|
15616
17113
|
return (_ctx, _cache) => {
|
|
15617
|
-
return openBlock(), createElementBlock("li", _hoisted_1$
|
|
17114
|
+
return openBlock(), createElementBlock("li", _hoisted_1$w, [
|
|
15618
17115
|
(openBlock(), createBlock(resolveDynamicComponent(componentTag.value), {
|
|
15619
17116
|
class: normalizeClass(linkClasses.value),
|
|
15620
17117
|
to: __props.to,
|
|
@@ -15632,12 +17129,12 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
|
15632
17129
|
};
|
|
15633
17130
|
}
|
|
15634
17131
|
});
|
|
15635
|
-
const SkBreadcrumbItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15636
|
-
const _hoisted_1$
|
|
17132
|
+
const SkBreadcrumbItem = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-83066af5"]]);
|
|
17133
|
+
const _hoisted_1$v = {
|
|
15637
17134
|
class: "sk-breadcrumb-separator",
|
|
15638
17135
|
"aria-hidden": "true"
|
|
15639
17136
|
};
|
|
15640
|
-
const _sfc_main$
|
|
17137
|
+
const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
15641
17138
|
__name: "SkBreadcrumbSeparator",
|
|
15642
17139
|
props: {
|
|
15643
17140
|
separator: { default: void 0 }
|
|
@@ -15647,13 +17144,13 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
|
15647
17144
|
const parentSeparator = inject("breadcrumbs-separator", "/");
|
|
15648
17145
|
const displaySeparator = computed(() => props.separator ?? parentSeparator);
|
|
15649
17146
|
return (_ctx, _cache) => {
|
|
15650
|
-
return openBlock(), createElementBlock("span", _hoisted_1$
|
|
17147
|
+
return openBlock(), createElementBlock("span", _hoisted_1$v, toDisplayString(displaySeparator.value), 1);
|
|
15651
17148
|
};
|
|
15652
17149
|
}
|
|
15653
17150
|
});
|
|
15654
|
-
const SkBreadcrumbSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15655
|
-
const _hoisted_1$
|
|
15656
|
-
const _sfc_main$
|
|
17151
|
+
const SkBreadcrumbSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-fab30e8b"]]);
|
|
17152
|
+
const _hoisted_1$u = { class: "sk-breadcrumbs-list" };
|
|
17153
|
+
const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
15657
17154
|
__name: "SkBreadcrumbs",
|
|
15658
17155
|
props: {
|
|
15659
17156
|
kind: { default: "neutral" },
|
|
@@ -15691,7 +17188,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
15691
17188
|
style: normalizeStyle(unref(customColorStyles)),
|
|
15692
17189
|
"aria-label": "Breadcrumb"
|
|
15693
17190
|
}, [
|
|
15694
|
-
createElementVNode("ol", _hoisted_1$
|
|
17191
|
+
createElementVNode("ol", _hoisted_1$u, [
|
|
15695
17192
|
(openBlock(true), createElementBlock(Fragment, null, renderList(processedItems.value, (item, index) => {
|
|
15696
17193
|
return openBlock(), createElementBlock(Fragment, { key: index }, [
|
|
15697
17194
|
(openBlock(), createBlock(resolveDynamicComponent(item))),
|
|
@@ -15703,8 +17200,8 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
15703
17200
|
};
|
|
15704
17201
|
}
|
|
15705
17202
|
});
|
|
15706
|
-
const SkBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15707
|
-
const _hoisted_1$
|
|
17203
|
+
const SkBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-f7fec0fe"]]);
|
|
17204
|
+
const _hoisted_1$t = {
|
|
15708
17205
|
key: 0,
|
|
15709
17206
|
class: "sk-button-loader",
|
|
15710
17207
|
"aria-hidden": "true"
|
|
@@ -15725,7 +17222,7 @@ const _hoisted_5$5 = {
|
|
|
15725
17222
|
key: 3,
|
|
15726
17223
|
class: "sk-button-icon sk-button-icon-trailing"
|
|
15727
17224
|
};
|
|
15728
|
-
const _sfc_main$
|
|
17225
|
+
const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
15729
17226
|
__name: "SkButton",
|
|
15730
17227
|
props: {
|
|
15731
17228
|
type: { default: "button" },
|
|
@@ -15782,7 +17279,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
|
15782
17279
|
role: "button"
|
|
15783
17280
|
}, {
|
|
15784
17281
|
default: withCtx(() => [
|
|
15785
|
-
__props.loading ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
17282
|
+
__props.loading ? (openBlock(), createElementBlock("span", _hoisted_1$t)) : createCommentVNode("", true),
|
|
15786
17283
|
createElementVNode("span", {
|
|
15787
17284
|
class: normalizeClass({ "sk-button-content": true, "loading": __props.loading })
|
|
15788
17285
|
}, [
|
|
@@ -15805,20 +17302,22 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
|
15805
17302
|
};
|
|
15806
17303
|
}
|
|
15807
17304
|
});
|
|
15808
|
-
const SkButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15809
|
-
const _sfc_main$
|
|
17305
|
+
const SkButton = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-543676d6"]]);
|
|
17306
|
+
const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
15810
17307
|
__name: "SkPanel",
|
|
15811
17308
|
props: {
|
|
15812
17309
|
kind: { default: "neutral" },
|
|
15813
17310
|
size: { default: "md" },
|
|
15814
17311
|
showDecoration: { type: Boolean, default: true },
|
|
15815
17312
|
noBorder: { type: Boolean, default: false },
|
|
17313
|
+
corners: { default: () => ["bottom-right"] },
|
|
17314
|
+
decorationCorner: { default: "bottom-right" },
|
|
15816
17315
|
baseColor: {},
|
|
15817
17316
|
textColor: {}
|
|
15818
17317
|
},
|
|
15819
17318
|
setup(__props) {
|
|
15820
17319
|
useCssVars((_ctx) => ({
|
|
15821
|
-
"
|
|
17320
|
+
"v42b18398": decorationDisplay.value
|
|
15822
17321
|
}));
|
|
15823
17322
|
const props = __props;
|
|
15824
17323
|
const classes = computed(() => {
|
|
@@ -15826,7 +17325,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
15826
17325
|
"sk-panel": true,
|
|
15827
17326
|
[`sk-${props.kind}`]: true,
|
|
15828
17327
|
[`sk-${props.size}`]: true,
|
|
15829
|
-
"sk-no-border": props.noBorder
|
|
17328
|
+
"sk-no-border": props.noBorder,
|
|
17329
|
+
"sk-cut-top-left": props.corners.includes("top-left"),
|
|
17330
|
+
"sk-cut-top-right": props.corners.includes("top-right"),
|
|
17331
|
+
"sk-cut-bottom-right": props.corners.includes("bottom-right"),
|
|
17332
|
+
"sk-cut-bottom-left": props.corners.includes("bottom-left"),
|
|
17333
|
+
[`sk-decoration-${props.decorationCorner}`]: true
|
|
15830
17334
|
};
|
|
15831
17335
|
});
|
|
15832
17336
|
const customColorStyles = useCustomColors(
|
|
@@ -15835,10 +17339,13 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
15835
17339
|
toRef(() => props.textColor)
|
|
15836
17340
|
);
|
|
15837
17341
|
const decorationDisplay = computed(() => {
|
|
15838
|
-
if (props.noBorder) {
|
|
17342
|
+
if (props.noBorder || !props.showDecoration) {
|
|
15839
17343
|
return "none";
|
|
15840
17344
|
}
|
|
15841
|
-
|
|
17345
|
+
if (!props.corners.includes(props.decorationCorner)) {
|
|
17346
|
+
return "none";
|
|
17347
|
+
}
|
|
17348
|
+
return "block";
|
|
15842
17349
|
});
|
|
15843
17350
|
return (_ctx, _cache) => {
|
|
15844
17351
|
return openBlock(), createElementBlock("div", {
|
|
@@ -15850,8 +17357,8 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
|
15850
17357
|
};
|
|
15851
17358
|
}
|
|
15852
17359
|
});
|
|
15853
|
-
const SkPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15854
|
-
const _hoisted_1$
|
|
17360
|
+
const SkPanel = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-07c1642c"]]);
|
|
17361
|
+
const _hoisted_1$s = {
|
|
15855
17362
|
key: 0,
|
|
15856
17363
|
class: "sk-card-title"
|
|
15857
17364
|
};
|
|
@@ -15863,7 +17370,7 @@ const _hoisted_3$b = {
|
|
|
15863
17370
|
key: 3,
|
|
15864
17371
|
class: "sk-card-footer"
|
|
15865
17372
|
};
|
|
15866
|
-
const _sfc_main$
|
|
17373
|
+
const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
15867
17374
|
__name: "SkCard",
|
|
15868
17375
|
props: {
|
|
15869
17376
|
kind: { default: "neutral" },
|
|
@@ -15874,6 +17381,8 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
15874
17381
|
title: { default: void 0 },
|
|
15875
17382
|
headerColor: { default: void 0 },
|
|
15876
17383
|
scrollable: { type: Boolean, default: false },
|
|
17384
|
+
corners: { default: () => ["bottom-right"] },
|
|
17385
|
+
decorationCorner: { default: "bottom-right" },
|
|
15877
17386
|
baseColor: {},
|
|
15878
17387
|
textColor: {}
|
|
15879
17388
|
},
|
|
@@ -15917,6 +17426,8 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
15917
17426
|
"no-border": __props.noBorder,
|
|
15918
17427
|
"base-color": __props.baseColor,
|
|
15919
17428
|
"text-color": __props.textColor,
|
|
17429
|
+
corners: __props.corners,
|
|
17430
|
+
"decoration-corner": __props.decorationCorner,
|
|
15920
17431
|
class: normalizeClass(classes.value)
|
|
15921
17432
|
}, {
|
|
15922
17433
|
default: withCtx(() => [
|
|
@@ -15925,7 +17436,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
15925
17436
|
class: "sk-card-header",
|
|
15926
17437
|
style: normalizeStyle(headerStyles.value)
|
|
15927
17438
|
}, [
|
|
15928
|
-
__props.title ? (openBlock(), createElementBlock("h3", _hoisted_1$
|
|
17439
|
+
__props.title ? (openBlock(), createElementBlock("h3", _hoisted_1$s, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
|
|
15929
17440
|
renderSlot(_ctx.$slots, "header")
|
|
15930
17441
|
], 4)) : createCommentVNode("", true),
|
|
15931
17442
|
_ctx.$slots.media ? (openBlock(), createElementBlock("div", _hoisted_2$e, [
|
|
@@ -15942,11 +17453,11 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
|
15942
17453
|
])) : createCommentVNode("", true)
|
|
15943
17454
|
]),
|
|
15944
17455
|
_: 3
|
|
15945
|
-
}, 8, ["kind", "size", "show-decoration", "no-border", "base-color", "text-color", "class"]);
|
|
17456
|
+
}, 8, ["kind", "size", "show-decoration", "no-border", "base-color", "text-color", "corners", "decoration-corner", "class"]);
|
|
15946
17457
|
};
|
|
15947
17458
|
}
|
|
15948
17459
|
});
|
|
15949
|
-
const _hoisted_1$
|
|
17460
|
+
const _hoisted_1$r = {
|
|
15950
17461
|
key: 0,
|
|
15951
17462
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15952
17463
|
viewBox: "0 0 24 24",
|
|
@@ -15971,7 +17482,7 @@ const _hoisted_3$a = {
|
|
|
15971
17482
|
key: 0,
|
|
15972
17483
|
class: "sk-checkbox-label"
|
|
15973
17484
|
};
|
|
15974
|
-
const _sfc_main$
|
|
17485
|
+
const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
15975
17486
|
__name: "SkCheckbox",
|
|
15976
17487
|
props: /* @__PURE__ */ mergeModels({
|
|
15977
17488
|
kind: { default: "neutral" },
|
|
@@ -16020,7 +17531,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
16020
17531
|
default: withCtx(() => [
|
|
16021
17532
|
createVNode(unref(CheckboxIndicator_default), { class: "sk-checkbox-indicator" }, {
|
|
16022
17533
|
default: withCtx(() => [
|
|
16023
|
-
checked.value === true ? (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
17534
|
+
checked.value === true ? (openBlock(), createElementBlock("svg", _hoisted_1$r, [..._cache[1] || (_cache[1] = [
|
|
16024
17535
|
createElementVNode("polyline", { points: "20 6 9 17 4 12" }, null, -1)
|
|
16025
17536
|
])])) : checked.value === "indeterminate" ? (openBlock(), createElementBlock("svg", _hoisted_2$d, [..._cache[2] || (_cache[2] = [
|
|
16026
17537
|
createElementVNode("line", {
|
|
@@ -16045,9 +17556,9 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
16045
17556
|
};
|
|
16046
17557
|
}
|
|
16047
17558
|
});
|
|
16048
|
-
const SkCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16049
|
-
const _hoisted_1$
|
|
16050
|
-
const _sfc_main$
|
|
17559
|
+
const SkCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-073d7038"]]);
|
|
17560
|
+
const _hoisted_1$q = { class: "sk-collapsible-content-inner" };
|
|
17561
|
+
const _sfc_main$J = /* @__PURE__ */ defineComponent({
|
|
16051
17562
|
__name: "SkCollapsible",
|
|
16052
17563
|
props: {
|
|
16053
17564
|
open: { type: Boolean, default: void 0 },
|
|
@@ -16125,7 +17636,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
16125
17636
|
}),
|
|
16126
17637
|
createVNode(unref(CollapsibleContent_default), { class: "sk-collapsible-content" }, {
|
|
16127
17638
|
default: withCtx(() => [
|
|
16128
|
-
createElementVNode("div", _hoisted_1$
|
|
17639
|
+
createElementVNode("div", _hoisted_1$q, [
|
|
16129
17640
|
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
16130
17641
|
])
|
|
16131
17642
|
]),
|
|
@@ -16137,9 +17648,9 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
16137
17648
|
};
|
|
16138
17649
|
}
|
|
16139
17650
|
});
|
|
16140
|
-
const SkCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16141
|
-
const _hoisted_1$
|
|
16142
|
-
const _sfc_main$
|
|
17651
|
+
const SkCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-dc60530b"]]);
|
|
17652
|
+
const _hoisted_1$p = ["aria-orientation"];
|
|
17653
|
+
const _sfc_main$I = /* @__PURE__ */ defineComponent({
|
|
16143
17654
|
__name: "SkDivider",
|
|
16144
17655
|
props: {
|
|
16145
17656
|
orientation: { default: "horizontal" },
|
|
@@ -16163,7 +17674,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
|
16163
17674
|
class: normalizeClass(classes.value),
|
|
16164
17675
|
role: "separator",
|
|
16165
17676
|
"aria-orientation": __props.orientation
|
|
16166
|
-
}, null, 10, _hoisted_1$
|
|
17677
|
+
}, null, 10, _hoisted_1$p);
|
|
16167
17678
|
};
|
|
16168
17679
|
}
|
|
16169
17680
|
});
|
|
@@ -16174,7 +17685,7 @@ function usePortalContext() {
|
|
|
16174
17685
|
theme: currentTheme
|
|
16175
17686
|
};
|
|
16176
17687
|
}
|
|
16177
|
-
const _hoisted_1$
|
|
17688
|
+
const _hoisted_1$o = {
|
|
16178
17689
|
xmlns: "http://www.w3.org/2000/svg",
|
|
16179
17690
|
viewBox: "0 0 24 24",
|
|
16180
17691
|
fill: "none",
|
|
@@ -16185,7 +17696,7 @@ const _hoisted_1$m = {
|
|
|
16185
17696
|
style: { "width": "1rem", "height": "1rem" }
|
|
16186
17697
|
};
|
|
16187
17698
|
const _hoisted_2$c = ["points"];
|
|
16188
|
-
const _sfc_main$
|
|
17699
|
+
const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
16189
17700
|
__name: "SkDropdown",
|
|
16190
17701
|
props: {
|
|
16191
17702
|
kind: { default: "neutral" },
|
|
@@ -16233,7 +17744,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
16233
17744
|
renderSlot(_ctx.$slots, "trigger", {}, () => [
|
|
16234
17745
|
createVNode(SkButton, { kind: __props.kind }, {
|
|
16235
17746
|
trailing: withCtx(() => [
|
|
16236
|
-
(openBlock(), createElementBlock("svg", _hoisted_1$
|
|
17747
|
+
(openBlock(), createElementBlock("svg", _hoisted_1$o, [
|
|
16237
17748
|
createElementVNode("polyline", { points: caretPoints.value }, null, 8, _hoisted_2$c)
|
|
16238
17749
|
]))
|
|
16239
17750
|
]),
|
|
@@ -16270,8 +17781,8 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
|
16270
17781
|
};
|
|
16271
17782
|
}
|
|
16272
17783
|
});
|
|
16273
|
-
const SkDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16274
|
-
const _sfc_main$
|
|
17784
|
+
const SkDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-a5cb1061"]]);
|
|
17785
|
+
const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
16275
17786
|
__name: "SkDropdownMenuItem",
|
|
16276
17787
|
props: {
|
|
16277
17788
|
disabled: { type: Boolean, default: false }
|
|
@@ -16295,8 +17806,8 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
16295
17806
|
};
|
|
16296
17807
|
}
|
|
16297
17808
|
});
|
|
16298
|
-
const SkDropdownMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16299
|
-
const _sfc_main$
|
|
17809
|
+
const SkDropdownMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-63d43580"]]);
|
|
17810
|
+
const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
16300
17811
|
__name: "SkDropdownMenuSeparator",
|
|
16301
17812
|
setup(__props) {
|
|
16302
17813
|
return (_ctx, _cache) => {
|
|
@@ -16304,8 +17815,8 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
16304
17815
|
};
|
|
16305
17816
|
}
|
|
16306
17817
|
});
|
|
16307
|
-
const SkDropdownMenuSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16308
|
-
const _sfc_main$
|
|
17818
|
+
const SkDropdownMenuSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-8d03fb68"]]);
|
|
17819
|
+
const _sfc_main$E = /* @__PURE__ */ defineComponent({
|
|
16309
17820
|
__name: "SkDropdownSubmenu",
|
|
16310
17821
|
props: {
|
|
16311
17822
|
triggerText: {},
|
|
@@ -16366,8 +17877,8 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
16366
17877
|
};
|
|
16367
17878
|
}
|
|
16368
17879
|
});
|
|
16369
|
-
const SkDropdownSubmenu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16370
|
-
const _hoisted_1$
|
|
17880
|
+
const SkDropdownSubmenu = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-63bf4e4d"]]);
|
|
17881
|
+
const _hoisted_1$n = ["for"];
|
|
16371
17882
|
const _hoisted_2$b = {
|
|
16372
17883
|
key: 0,
|
|
16373
17884
|
class: "sk-field-required"
|
|
@@ -16375,7 +17886,7 @@ const _hoisted_2$b = {
|
|
|
16375
17886
|
const _hoisted_3$9 = { class: "sk-field-input-wrapper" };
|
|
16376
17887
|
const _hoisted_4$7 = ["id"];
|
|
16377
17888
|
const _hoisted_5$4 = ["id"];
|
|
16378
|
-
const _sfc_main$
|
|
17889
|
+
const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
16379
17890
|
__name: "SkField",
|
|
16380
17891
|
props: {
|
|
16381
17892
|
label: { default: void 0 },
|
|
@@ -16431,7 +17942,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
16431
17942
|
}, [
|
|
16432
17943
|
createTextVNode(toDisplayString(__props.label) + " ", 1),
|
|
16433
17944
|
__props.required ? (openBlock(), createElementBlock("span", _hoisted_2$b, "*")) : createCommentVNode("", true)
|
|
16434
|
-
], 8, _hoisted_1$
|
|
17945
|
+
], 8, _hoisted_1$n)) : createCommentVNode("", true),
|
|
16435
17946
|
createElementVNode("div", _hoisted_3$9, [
|
|
16436
17947
|
renderSlot(_ctx.$slots, "default", {
|
|
16437
17948
|
id: fieldId.value,
|
|
@@ -16454,8 +17965,8 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
16454
17965
|
};
|
|
16455
17966
|
}
|
|
16456
17967
|
});
|
|
16457
|
-
const SkField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16458
|
-
const _sfc_main$
|
|
17968
|
+
const SkField = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-e19bf08c"]]);
|
|
17969
|
+
const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
16459
17970
|
__name: "SkGroup",
|
|
16460
17971
|
props: {
|
|
16461
17972
|
orientation: { default: "horizontal" }
|
|
@@ -16477,8 +17988,8 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
16477
17988
|
};
|
|
16478
17989
|
}
|
|
16479
17990
|
});
|
|
16480
|
-
const _hoisted_1$
|
|
16481
|
-
const _sfc_main$
|
|
17991
|
+
const _hoisted_1$m = ["type", "disabled", "readonly", "placeholder", "required", "name", "autocomplete"];
|
|
17992
|
+
const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
16482
17993
|
__name: "SkInput",
|
|
16483
17994
|
props: /* @__PURE__ */ mergeModels({
|
|
16484
17995
|
type: { default: "text" },
|
|
@@ -16525,14 +18036,14 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
|
16525
18036
|
required: __props.required,
|
|
16526
18037
|
name: __props.name,
|
|
16527
18038
|
autocomplete: __props.autocomplete
|
|
16528
|
-
}, _ctx.$attrs), null, 16, _hoisted_1$
|
|
18039
|
+
}, _ctx.$attrs), null, 16, _hoisted_1$m)), [
|
|
16529
18040
|
[vModelDynamic, modelValue.value]
|
|
16530
18041
|
]);
|
|
16531
18042
|
};
|
|
16532
18043
|
}
|
|
16533
18044
|
});
|
|
16534
|
-
const SkInput = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16535
|
-
const _hoisted_1$
|
|
18045
|
+
const SkInput = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-c6012675"]]);
|
|
18046
|
+
const _hoisted_1$l = {
|
|
16536
18047
|
xmlns: "http://www.w3.org/2000/svg",
|
|
16537
18048
|
viewBox: "0 0 24 24",
|
|
16538
18049
|
fill: "none",
|
|
@@ -16542,7 +18053,7 @@ const _hoisted_1$j = {
|
|
|
16542
18053
|
"stroke-linejoin": "miter",
|
|
16543
18054
|
style: { "width": "1rem", "height": "1rem" }
|
|
16544
18055
|
};
|
|
16545
|
-
const _sfc_main$
|
|
18056
|
+
const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
16546
18057
|
__name: "SkListbox",
|
|
16547
18058
|
props: /* @__PURE__ */ mergeModels({
|
|
16548
18059
|
kind: { default: void 0 },
|
|
@@ -16606,7 +18117,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
16606
18117
|
class: normalizeClass(triggerClasses.value)
|
|
16607
18118
|
}, {
|
|
16608
18119
|
default: withCtx(() => [
|
|
16609
|
-
(openBlock(), createElementBlock("svg", _hoisted_1$
|
|
18120
|
+
(openBlock(), createElementBlock("svg", _hoisted_1$l, [..._cache[1] || (_cache[1] = [
|
|
16610
18121
|
createElementVNode("polyline", { points: "6 9 12 15 18 9" }, null, -1)
|
|
16611
18122
|
])]))
|
|
16612
18123
|
]),
|
|
@@ -16645,8 +18156,8 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
|
16645
18156
|
};
|
|
16646
18157
|
}
|
|
16647
18158
|
});
|
|
16648
|
-
const SkListbox = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16649
|
-
const _hoisted_1$
|
|
18159
|
+
const SkListbox = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-fbc1f022"]]);
|
|
18160
|
+
const _hoisted_1$k = {
|
|
16650
18161
|
xmlns: "http://www.w3.org/2000/svg",
|
|
16651
18162
|
viewBox: "0 0 24 24",
|
|
16652
18163
|
fill: "none",
|
|
@@ -16656,7 +18167,7 @@ const _hoisted_1$i = {
|
|
|
16656
18167
|
"stroke-linejoin": "miter",
|
|
16657
18168
|
style: { "width": "1rem", "height": "1rem" }
|
|
16658
18169
|
};
|
|
16659
|
-
const _sfc_main$
|
|
18170
|
+
const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
16660
18171
|
__name: "SkListboxItem",
|
|
16661
18172
|
props: {
|
|
16662
18173
|
value: {},
|
|
@@ -16676,7 +18187,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
16676
18187
|
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
16677
18188
|
createVNode(unref(ComboboxItemIndicator_default), { class: "sk-listbox-item-indicator" }, {
|
|
16678
18189
|
default: withCtx(() => [
|
|
16679
|
-
(openBlock(), createElementBlock("svg", _hoisted_1$
|
|
18190
|
+
(openBlock(), createElementBlock("svg", _hoisted_1$k, [..._cache[0] || (_cache[0] = [
|
|
16680
18191
|
createElementVNode("polyline", { points: "20 6 9 17 4 12" }, null, -1)
|
|
16681
18192
|
])]))
|
|
16682
18193
|
]),
|
|
@@ -16688,8 +18199,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
16688
18199
|
};
|
|
16689
18200
|
}
|
|
16690
18201
|
});
|
|
16691
|
-
const SkListboxItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16692
|
-
const _sfc_main$
|
|
18202
|
+
const SkListboxItem = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-fcf3fe85"]]);
|
|
18203
|
+
const _sfc_main$y = /* @__PURE__ */ defineComponent({
|
|
16693
18204
|
__name: "SkListboxSeparator",
|
|
16694
18205
|
setup(__props) {
|
|
16695
18206
|
return (_ctx, _cache) => {
|
|
@@ -16697,8 +18208,8 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
|
16697
18208
|
};
|
|
16698
18209
|
}
|
|
16699
18210
|
});
|
|
16700
|
-
const SkListboxSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16701
|
-
const _hoisted_1$
|
|
18211
|
+
const SkListboxSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-12046626"]]);
|
|
18212
|
+
const _hoisted_1$j = {
|
|
16702
18213
|
key: 0,
|
|
16703
18214
|
class: "sk-modal-header"
|
|
16704
18215
|
};
|
|
@@ -16707,7 +18218,7 @@ const _hoisted_3$8 = {
|
|
|
16707
18218
|
key: 1,
|
|
16708
18219
|
class: "sk-modal-footer"
|
|
16709
18220
|
};
|
|
16710
|
-
const _sfc_main$
|
|
18221
|
+
const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
|
16711
18222
|
__name: "SkModal",
|
|
16712
18223
|
props: {
|
|
16713
18224
|
kind: { default: "neutral" },
|
|
@@ -16798,7 +18309,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
16798
18309
|
onInteractOutside: handleOverlayClick
|
|
16799
18310
|
}, {
|
|
16800
18311
|
default: withCtx(() => [
|
|
16801
|
-
_ctx.$slots.title || __props.title ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
18312
|
+
_ctx.$slots.title || __props.title ? (openBlock(), createElementBlock("div", _hoisted_1$j, [
|
|
16802
18313
|
createVNode(unref(DialogTitle_default), { class: "sk-modal-title" }, {
|
|
16803
18314
|
default: withCtx(() => [
|
|
16804
18315
|
renderSlot(_ctx.$slots, "title", { close }, () => [
|
|
@@ -16845,8 +18356,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
16845
18356
|
};
|
|
16846
18357
|
}
|
|
16847
18358
|
});
|
|
16848
|
-
const SkModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16849
|
-
const _hoisted_1$
|
|
18359
|
+
const SkModal = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-d5c13c78"]]);
|
|
18360
|
+
const _hoisted_1$i = { class: "sk-navbar-content" };
|
|
16850
18361
|
const _hoisted_2$9 = {
|
|
16851
18362
|
key: 0,
|
|
16852
18363
|
class: "sk-navbar-brand"
|
|
@@ -16859,7 +18370,7 @@ const _hoisted_4$6 = {
|
|
|
16859
18370
|
key: 2,
|
|
16860
18371
|
class: "sk-navbar-actions"
|
|
16861
18372
|
};
|
|
16862
|
-
const _sfc_main$
|
|
18373
|
+
const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
16863
18374
|
__name: "SkNavBar",
|
|
16864
18375
|
props: {
|
|
16865
18376
|
kind: { default: "neutral" },
|
|
@@ -16887,7 +18398,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
16887
18398
|
class: normalizeClass(classes.value),
|
|
16888
18399
|
style: normalizeStyle(unref(customColorStyles))
|
|
16889
18400
|
}, [
|
|
16890
|
-
createElementVNode("div", _hoisted_1$
|
|
18401
|
+
createElementVNode("div", _hoisted_1$i, [
|
|
16891
18402
|
unref(slots).brand ? (openBlock(), createElementBlock("div", _hoisted_2$9, [
|
|
16892
18403
|
renderSlot(_ctx.$slots, "brand")
|
|
16893
18404
|
])) : createCommentVNode("", true),
|
|
@@ -16902,8 +18413,8 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
16902
18413
|
};
|
|
16903
18414
|
}
|
|
16904
18415
|
});
|
|
16905
|
-
const _hoisted_1$
|
|
16906
|
-
const _sfc_main$
|
|
18416
|
+
const _hoisted_1$h = { class: "sk-number-input-steppers" };
|
|
18417
|
+
const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
16907
18418
|
__name: "SkNumberInput",
|
|
16908
18419
|
props: /* @__PURE__ */ mergeModels({
|
|
16909
18420
|
kind: { default: void 0 },
|
|
@@ -16966,7 +18477,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
16966
18477
|
class: normalizeClass(inputClasses.value),
|
|
16967
18478
|
placeholder: __props.placeholder
|
|
16968
18479
|
}, null, 8, ["class", "placeholder"]),
|
|
16969
|
-
createElementVNode("div", _hoisted_1$
|
|
18480
|
+
createElementVNode("div", _hoisted_1$h, [
|
|
16970
18481
|
createVNode(unref(NumberFieldIncrement_default), { class: "sk-number-input-increment" }, {
|
|
16971
18482
|
default: withCtx(() => [..._cache[1] || (_cache[1] = [
|
|
16972
18483
|
createElementVNode("svg", {
|
|
@@ -17007,7 +18518,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
17007
18518
|
};
|
|
17008
18519
|
}
|
|
17009
18520
|
});
|
|
17010
|
-
const SkNumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
18521
|
+
const SkNumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-b589687f"]]);
|
|
17011
18522
|
const ThemeSymbol = Symbol("SkTheme");
|
|
17012
18523
|
function provideTheme(initialTheme = "greyscale") {
|
|
17013
18524
|
const currentTheme = ref(initialTheme);
|
|
@@ -17028,7 +18539,7 @@ function useTheme() {
|
|
|
17028
18539
|
}
|
|
17029
18540
|
return context2;
|
|
17030
18541
|
}
|
|
17031
|
-
const _hoisted_1$
|
|
18542
|
+
const _hoisted_1$g = ["data-scheme"];
|
|
17032
18543
|
const _hoisted_2$8 = {
|
|
17033
18544
|
key: 0,
|
|
17034
18545
|
class: "sk-page-header"
|
|
@@ -17043,7 +18554,7 @@ const _hoisted_6$3 = {
|
|
|
17043
18554
|
key: 1,
|
|
17044
18555
|
class: "sk-page-footer"
|
|
17045
18556
|
};
|
|
17046
|
-
const _sfc_main$
|
|
18557
|
+
const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
17047
18558
|
__name: "SkPage",
|
|
17048
18559
|
props: {
|
|
17049
18560
|
sidebarPosition: { default: "left" },
|
|
@@ -17097,19 +18608,19 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
17097
18608
|
_ctx.$slots.footer ? (openBlock(), createElementBlock("footer", _hoisted_6$3, [
|
|
17098
18609
|
renderSlot(_ctx.$slots, "footer", {}, void 0, true)
|
|
17099
18610
|
])) : createCommentVNode("", true)
|
|
17100
|
-
], 14, _hoisted_1$
|
|
18611
|
+
], 14, _hoisted_1$g);
|
|
17101
18612
|
};
|
|
17102
18613
|
}
|
|
17103
18614
|
});
|
|
17104
|
-
const SkPage = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17105
|
-
const _hoisted_1$
|
|
18615
|
+
const SkPage = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-ad672949"]]);
|
|
18616
|
+
const _hoisted_1$f = ["disabled", "aria-label", "aria-current"];
|
|
17106
18617
|
const _hoisted_2$7 = { key: 0 };
|
|
17107
18618
|
const _hoisted_3$5 = { key: 1 };
|
|
17108
18619
|
const _hoisted_4$4 = { key: 2 };
|
|
17109
18620
|
const _hoisted_5$2 = { key: 3 };
|
|
17110
18621
|
const _hoisted_6$2 = { key: 4 };
|
|
17111
18622
|
const _hoisted_7 = { key: 5 };
|
|
17112
|
-
const _sfc_main$
|
|
18623
|
+
const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
17113
18624
|
__name: "SkPaginationItem",
|
|
17114
18625
|
props: {
|
|
17115
18626
|
page: { default: void 0 },
|
|
@@ -17168,12 +18679,12 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
17168
18679
|
onClick: handleClick
|
|
17169
18680
|
}, [
|
|
17170
18681
|
__props.type === "prev" ? (openBlock(), createElementBlock("span", _hoisted_2$7, "‹")) : __props.type === "next" ? (openBlock(), createElementBlock("span", _hoisted_3$5, "›")) : __props.type === "first" ? (openBlock(), createElementBlock("span", _hoisted_4$4, "‹‹")) : __props.type === "last" ? (openBlock(), createElementBlock("span", _hoisted_5$2, "››")) : __props.type === "ellipsis" ? (openBlock(), createElementBlock("span", _hoisted_6$2, "...")) : (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(__props.page), 1))
|
|
17171
|
-
], 10, _hoisted_1$
|
|
18682
|
+
], 10, _hoisted_1$f);
|
|
17172
18683
|
};
|
|
17173
18684
|
}
|
|
17174
18685
|
});
|
|
17175
|
-
const SkPaginationItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17176
|
-
const _sfc_main$
|
|
18686
|
+
const SkPaginationItem = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-1eea3ced"]]);
|
|
18687
|
+
const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
17177
18688
|
__name: "SkPagination",
|
|
17178
18689
|
props: {
|
|
17179
18690
|
total: {},
|
|
@@ -17287,8 +18798,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
17287
18798
|
};
|
|
17288
18799
|
}
|
|
17289
18800
|
});
|
|
17290
|
-
const SkPagination = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17291
|
-
const _hoisted_1$
|
|
18801
|
+
const SkPagination = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-e7fb9357"]]);
|
|
18802
|
+
const _hoisted_1$e = {
|
|
17292
18803
|
key: 0,
|
|
17293
18804
|
class: "sk-popover-header"
|
|
17294
18805
|
};
|
|
@@ -17304,7 +18815,7 @@ const _hoisted_4$3 = {
|
|
|
17304
18815
|
key: 2,
|
|
17305
18816
|
class: "sk-popover-footer"
|
|
17306
18817
|
};
|
|
17307
|
-
const _sfc_main$
|
|
18818
|
+
const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
17308
18819
|
__name: "SkPopover",
|
|
17309
18820
|
props: {
|
|
17310
18821
|
kind: { default: "neutral" },
|
|
@@ -17360,7 +18871,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
17360
18871
|
"collision-padding": 8
|
|
17361
18872
|
}, {
|
|
17362
18873
|
default: withCtx(() => [
|
|
17363
|
-
__props.title || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
18874
|
+
__props.title || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
|
|
17364
18875
|
__props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$6, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
|
|
17365
18876
|
renderSlot(_ctx.$slots, "header", {}, void 0, true),
|
|
17366
18877
|
__props.closable ? (openBlock(), createBlock(unref(PopoverClose_default), {
|
|
@@ -17419,8 +18930,8 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
17419
18930
|
};
|
|
17420
18931
|
}
|
|
17421
18932
|
});
|
|
17422
|
-
const SkPopover = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17423
|
-
const _sfc_main$
|
|
18933
|
+
const SkPopover = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-679c4935"]]);
|
|
18934
|
+
const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
17424
18935
|
__name: "SkProgress",
|
|
17425
18936
|
props: {
|
|
17426
18937
|
value: { default: null },
|
|
@@ -17493,12 +19004,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
17493
19004
|
};
|
|
17494
19005
|
}
|
|
17495
19006
|
});
|
|
17496
|
-
const SkProgress = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17497
|
-
const _hoisted_1$
|
|
19007
|
+
const SkProgress = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-4b68e83d"]]);
|
|
19008
|
+
const _hoisted_1$d = {
|
|
17498
19009
|
key: 0,
|
|
17499
19010
|
class: "sk-radio-label"
|
|
17500
19011
|
};
|
|
17501
|
-
const _sfc_main$
|
|
19012
|
+
const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
17502
19013
|
__name: "SkRadio",
|
|
17503
19014
|
props: {
|
|
17504
19015
|
value: {},
|
|
@@ -17544,7 +19055,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
17544
19055
|
]),
|
|
17545
19056
|
_: 1
|
|
17546
19057
|
}, 8, ["class", "style", "value", "disabled"]),
|
|
17547
|
-
__props.label || _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
19058
|
+
__props.label || _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1$d, [
|
|
17548
19059
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
17549
19060
|
createTextVNode(toDisplayString(__props.label), 1)
|
|
17550
19061
|
], true)
|
|
@@ -17553,8 +19064,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
17553
19064
|
};
|
|
17554
19065
|
}
|
|
17555
19066
|
});
|
|
17556
|
-
const SkRadio = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17557
|
-
const _sfc_main$
|
|
19067
|
+
const SkRadio = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-c88f9c3f"]]);
|
|
19068
|
+
const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
17558
19069
|
__name: "SkRadioGroup",
|
|
17559
19070
|
props: /* @__PURE__ */ mergeModels({
|
|
17560
19071
|
orientation: { default: "vertical" },
|
|
@@ -17596,7 +19107,203 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
17596
19107
|
};
|
|
17597
19108
|
}
|
|
17598
19109
|
});
|
|
17599
|
-
const SkRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
19110
|
+
const SkRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-7f5bc9cb"]]);
|
|
19111
|
+
const _hoisted_1$c = {
|
|
19112
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19113
|
+
viewBox: "0 0 24 24",
|
|
19114
|
+
fill: "none",
|
|
19115
|
+
stroke: "currentColor",
|
|
19116
|
+
"stroke-width": "2",
|
|
19117
|
+
"stroke-linecap": "square",
|
|
19118
|
+
"stroke-linejoin": "miter",
|
|
19119
|
+
style: { "width": "1rem", "height": "1rem", "flex-shrink": "0" }
|
|
19120
|
+
};
|
|
19121
|
+
const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
19122
|
+
__name: "SkSelect",
|
|
19123
|
+
props: /* @__PURE__ */ mergeModels({
|
|
19124
|
+
kind: { default: void 0 },
|
|
19125
|
+
size: { default: "md" },
|
|
19126
|
+
placeholder: { default: "Select..." },
|
|
19127
|
+
disabled: { type: Boolean, default: false },
|
|
19128
|
+
baseColor: {},
|
|
19129
|
+
textColor: {}
|
|
19130
|
+
}, {
|
|
19131
|
+
"modelValue": {},
|
|
19132
|
+
"modelModifiers": {}
|
|
19133
|
+
}),
|
|
19134
|
+
emits: ["update:modelValue"],
|
|
19135
|
+
setup(__props) {
|
|
19136
|
+
const props = __props;
|
|
19137
|
+
const modelValue = useModel(__props, "modelValue");
|
|
19138
|
+
const { theme } = usePortalContext();
|
|
19139
|
+
const fieldKind = inject("field-kind", computed(() => void 0));
|
|
19140
|
+
const itemLabels = reactive(/* @__PURE__ */ new Map());
|
|
19141
|
+
provide("sk-select-register", (value, label) => {
|
|
19142
|
+
itemLabels.set(value, label);
|
|
19143
|
+
});
|
|
19144
|
+
provide("sk-select-unregister", (value) => {
|
|
19145
|
+
itemLabels.delete(value);
|
|
19146
|
+
});
|
|
19147
|
+
const displayText = computed(() => {
|
|
19148
|
+
if (!modelValue.value) {
|
|
19149
|
+
return "";
|
|
19150
|
+
}
|
|
19151
|
+
return itemLabels.get(modelValue.value) || modelValue.value;
|
|
19152
|
+
});
|
|
19153
|
+
const effectiveKind = computed(() => fieldKind.value || props.kind || "neutral");
|
|
19154
|
+
const wrapperClasses = computed(() => ({
|
|
19155
|
+
"sk-select": true,
|
|
19156
|
+
[`sk-${effectiveKind.value}`]: true,
|
|
19157
|
+
[`sk-${props.size}`]: true
|
|
19158
|
+
}));
|
|
19159
|
+
const triggerClasses = computed(() => ({
|
|
19160
|
+
"sk-select-trigger": true
|
|
19161
|
+
}));
|
|
19162
|
+
const contentClasses = computed(() => ({
|
|
19163
|
+
"sk-select-content": true,
|
|
19164
|
+
[`sk-${effectiveKind.value}`]: true
|
|
19165
|
+
}));
|
|
19166
|
+
const customColorStyles = useCustomColors(
|
|
19167
|
+
"select",
|
|
19168
|
+
toRef(() => props.baseColor),
|
|
19169
|
+
toRef(() => props.textColor)
|
|
19170
|
+
);
|
|
19171
|
+
return (_ctx, _cache) => {
|
|
19172
|
+
return openBlock(), createElementBlock("div", {
|
|
19173
|
+
class: normalizeClass(wrapperClasses.value),
|
|
19174
|
+
style: normalizeStyle(unref(customColorStyles))
|
|
19175
|
+
}, [
|
|
19176
|
+
createVNode(unref(SelectRoot_default), {
|
|
19177
|
+
modelValue: modelValue.value,
|
|
19178
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
19179
|
+
disabled: __props.disabled
|
|
19180
|
+
}, {
|
|
19181
|
+
default: withCtx(() => [
|
|
19182
|
+
createVNode(unref(SelectTrigger_default), {
|
|
19183
|
+
class: normalizeClass(triggerClasses.value)
|
|
19184
|
+
}, {
|
|
19185
|
+
default: withCtx(() => [
|
|
19186
|
+
createVNode(unref(SelectValue_default), { placeholder: __props.placeholder }, {
|
|
19187
|
+
default: withCtx(() => [
|
|
19188
|
+
displayText.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
19189
|
+
createTextVNode(toDisplayString(displayText.value), 1)
|
|
19190
|
+
], 64)) : createCommentVNode("", true)
|
|
19191
|
+
]),
|
|
19192
|
+
_: 1
|
|
19193
|
+
}, 8, ["placeholder"]),
|
|
19194
|
+
(openBlock(), createElementBlock("svg", _hoisted_1$c, [..._cache[1] || (_cache[1] = [
|
|
19195
|
+
createElementVNode("polyline", { points: "6 9 12 15 18 9" }, null, -1)
|
|
19196
|
+
])]))
|
|
19197
|
+
]),
|
|
19198
|
+
_: 1
|
|
19199
|
+
}, 8, ["class"]),
|
|
19200
|
+
createVNode(unref(SelectPortal_default), null, {
|
|
19201
|
+
default: withCtx(() => [
|
|
19202
|
+
createVNode(unref(SelectContent_default), {
|
|
19203
|
+
"data-scheme": unref(theme),
|
|
19204
|
+
class: normalizeClass(contentClasses.value),
|
|
19205
|
+
style: normalizeStyle(unref(customColorStyles)),
|
|
19206
|
+
position: "popper",
|
|
19207
|
+
side: "bottom",
|
|
19208
|
+
align: "start",
|
|
19209
|
+
"side-offset": 4
|
|
19210
|
+
}, {
|
|
19211
|
+
default: withCtx(() => [
|
|
19212
|
+
createVNode(unref(SelectViewport_default), null, {
|
|
19213
|
+
default: withCtx(() => [
|
|
19214
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
19215
|
+
]),
|
|
19216
|
+
_: 3
|
|
19217
|
+
})
|
|
19218
|
+
]),
|
|
19219
|
+
_: 3
|
|
19220
|
+
}, 8, ["data-scheme", "class", "style"])
|
|
19221
|
+
]),
|
|
19222
|
+
_: 3
|
|
19223
|
+
})
|
|
19224
|
+
]),
|
|
19225
|
+
_: 3
|
|
19226
|
+
}, 8, ["modelValue", "disabled"])
|
|
19227
|
+
], 6);
|
|
19228
|
+
};
|
|
19229
|
+
}
|
|
19230
|
+
});
|
|
19231
|
+
const SkSelect = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-c39367b7"]]);
|
|
19232
|
+
const _hoisted_1$b = {
|
|
19233
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19234
|
+
viewBox: "0 0 24 24",
|
|
19235
|
+
fill: "none",
|
|
19236
|
+
stroke: "currentColor",
|
|
19237
|
+
"stroke-width": "3",
|
|
19238
|
+
"stroke-linecap": "square",
|
|
19239
|
+
"stroke-linejoin": "miter",
|
|
19240
|
+
style: { "width": "1rem", "height": "1rem" }
|
|
19241
|
+
};
|
|
19242
|
+
const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
19243
|
+
__name: "SkSelectItem",
|
|
19244
|
+
props: {
|
|
19245
|
+
value: {},
|
|
19246
|
+
disabled: { type: Boolean, default: false }
|
|
19247
|
+
},
|
|
19248
|
+
setup(__props) {
|
|
19249
|
+
const props = __props;
|
|
19250
|
+
const textEl = useTemplateRef("textEl");
|
|
19251
|
+
const register = inject("sk-select-register", void 0);
|
|
19252
|
+
const unregister = inject("sk-select-unregister", void 0);
|
|
19253
|
+
onMounted(() => {
|
|
19254
|
+
const el = textEl.value?.$el;
|
|
19255
|
+
if (register) {
|
|
19256
|
+
register(props.value, el?.textContent?.trim() || props.value);
|
|
19257
|
+
}
|
|
19258
|
+
});
|
|
19259
|
+
onUnmounted(() => {
|
|
19260
|
+
if (unregister) {
|
|
19261
|
+
unregister(props.value);
|
|
19262
|
+
}
|
|
19263
|
+
});
|
|
19264
|
+
const classes = computed(() => ({
|
|
19265
|
+
"sk-select-item": true
|
|
19266
|
+
}));
|
|
19267
|
+
return (_ctx, _cache) => {
|
|
19268
|
+
return openBlock(), createBlock(unref(SelectItem_default), {
|
|
19269
|
+
class: normalizeClass(classes.value),
|
|
19270
|
+
value: __props.value,
|
|
19271
|
+
disabled: __props.disabled
|
|
19272
|
+
}, {
|
|
19273
|
+
default: withCtx(() => [
|
|
19274
|
+
createVNode(unref(SelectItemText_default), {
|
|
19275
|
+
ref_key: "textEl",
|
|
19276
|
+
ref: textEl
|
|
19277
|
+
}, {
|
|
19278
|
+
default: withCtx(() => [
|
|
19279
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
19280
|
+
]),
|
|
19281
|
+
_: 3
|
|
19282
|
+
}, 512),
|
|
19283
|
+
createVNode(unref(SelectItemIndicator_default), { class: "sk-select-item-indicator" }, {
|
|
19284
|
+
default: withCtx(() => [
|
|
19285
|
+
(openBlock(), createElementBlock("svg", _hoisted_1$b, [..._cache[0] || (_cache[0] = [
|
|
19286
|
+
createElementVNode("polyline", { points: "20 6 9 17 4 12" }, null, -1)
|
|
19287
|
+
])]))
|
|
19288
|
+
]),
|
|
19289
|
+
_: 1
|
|
19290
|
+
})
|
|
19291
|
+
]),
|
|
19292
|
+
_: 3
|
|
19293
|
+
}, 8, ["class", "value", "disabled"]);
|
|
19294
|
+
};
|
|
19295
|
+
}
|
|
19296
|
+
});
|
|
19297
|
+
const SkSelectItem = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-7d12d89e"]]);
|
|
19298
|
+
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
19299
|
+
__name: "SkSelectSeparator",
|
|
19300
|
+
setup(__props) {
|
|
19301
|
+
return (_ctx, _cache) => {
|
|
19302
|
+
return openBlock(), createBlock(unref(SelectSeparator_default), { class: "sk-select-separator" });
|
|
19303
|
+
};
|
|
19304
|
+
}
|
|
19305
|
+
});
|
|
19306
|
+
const SkSelectSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-4f7c0be0"]]);
|
|
17600
19307
|
const _hoisted_1$a = { class: "sk-panel-scroll-content" };
|
|
17601
19308
|
const _hoisted_2$5 = { class: "sk-sidebar-nav" };
|
|
17602
19309
|
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
@@ -17604,25 +19311,43 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
17604
19311
|
props: {
|
|
17605
19312
|
kind: { default: "neutral" },
|
|
17606
19313
|
width: { default: "180px" },
|
|
19314
|
+
side: { default: "left" },
|
|
17607
19315
|
baseColor: {},
|
|
17608
19316
|
textColor: {}
|
|
17609
19317
|
},
|
|
17610
19318
|
setup(__props) {
|
|
17611
19319
|
const props = __props;
|
|
19320
|
+
const panelCorners = computed(() => {
|
|
19321
|
+
return props.side === "right" ? ["bottom-left"] : ["bottom-right"];
|
|
19322
|
+
});
|
|
19323
|
+
const panelDecorationCorner = computed(() => {
|
|
19324
|
+
return props.side === "right" ? "bottom-left" : "bottom-right";
|
|
19325
|
+
});
|
|
17612
19326
|
const classes = computed(() => {
|
|
17613
19327
|
return {
|
|
17614
19328
|
"sk-sidebar": true,
|
|
17615
|
-
[`sk-${props.kind}`]: true
|
|
19329
|
+
[`sk-${props.kind}`]: true,
|
|
19330
|
+
"sk-sidebar-right": props.side === "right"
|
|
17616
19331
|
};
|
|
17617
19332
|
});
|
|
19333
|
+
const sidebarStyles = computed(() => {
|
|
19334
|
+
const styles = {};
|
|
19335
|
+
if (props.baseColor) {
|
|
19336
|
+
styles["--sk-sidebar-color-base"] = props.baseColor;
|
|
19337
|
+
}
|
|
19338
|
+
return styles;
|
|
19339
|
+
});
|
|
17618
19340
|
return (_ctx, _cache) => {
|
|
17619
19341
|
return openBlock(), createElementBlock("aside", {
|
|
17620
|
-
class: normalizeClass(classes.value)
|
|
19342
|
+
class: normalizeClass(classes.value),
|
|
19343
|
+
style: normalizeStyle(sidebarStyles.value)
|
|
17621
19344
|
}, [
|
|
17622
19345
|
createVNode(SkPanel, {
|
|
17623
19346
|
kind: __props.kind,
|
|
17624
19347
|
"base-color": __props.baseColor,
|
|
17625
19348
|
"text-color": __props.textColor,
|
|
19349
|
+
corners: panelCorners.value,
|
|
19350
|
+
"decoration-corner": panelDecorationCorner.value,
|
|
17626
19351
|
class: "sk-sidebar-panel"
|
|
17627
19352
|
}, {
|
|
17628
19353
|
default: withCtx(() => [
|
|
@@ -17633,8 +19358,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
17633
19358
|
])
|
|
17634
19359
|
]),
|
|
17635
19360
|
_: 3
|
|
17636
|
-
}, 8, ["kind", "base-color", "text-color"])
|
|
17637
|
-
],
|
|
19361
|
+
}, 8, ["kind", "base-color", "text-color", "corners", "decoration-corner"])
|
|
19362
|
+
], 6);
|
|
17638
19363
|
};
|
|
17639
19364
|
}
|
|
17640
19365
|
});
|
|
@@ -18935,28 +20660,28 @@ const SleekSpaceUI = {
|
|
|
18935
20660
|
install(app) {
|
|
18936
20661
|
app.component("SkAccordion", SkAccordion);
|
|
18937
20662
|
app.component("SkAccordionItem", SkAccordionItem);
|
|
18938
|
-
app.component("SkAlert", _sfc_main$
|
|
20663
|
+
app.component("SkAlert", _sfc_main$S);
|
|
18939
20664
|
app.component("SkAvatar", SkAvatar);
|
|
18940
20665
|
app.component("SkBreadcrumbItem", SkBreadcrumbItem);
|
|
18941
20666
|
app.component("SkBreadcrumbs", SkBreadcrumbs);
|
|
18942
20667
|
app.component("SkBreadcrumbSeparator", SkBreadcrumbSeparator);
|
|
18943
20668
|
app.component("SkButton", SkButton);
|
|
18944
|
-
app.component("SkCard", _sfc_main$
|
|
20669
|
+
app.component("SkCard", _sfc_main$L);
|
|
18945
20670
|
app.component("SkCheckbox", SkCheckbox);
|
|
18946
20671
|
app.component("SkCollapsible", SkCollapsible);
|
|
18947
|
-
app.component("SkDivider", _sfc_main$
|
|
20672
|
+
app.component("SkDivider", _sfc_main$I);
|
|
18948
20673
|
app.component("SkDropdown", SkDropdown);
|
|
18949
20674
|
app.component("SkDropdownMenuItem", SkDropdownMenuItem);
|
|
18950
20675
|
app.component("SkDropdownMenuSeparator", SkDropdownMenuSeparator);
|
|
18951
20676
|
app.component("SkDropdownSubmenu", SkDropdownSubmenu);
|
|
18952
20677
|
app.component("SkField", SkField);
|
|
18953
|
-
app.component("SkGroup", _sfc_main$
|
|
20678
|
+
app.component("SkGroup", _sfc_main$C);
|
|
18954
20679
|
app.component("SkInput", SkInput);
|
|
18955
20680
|
app.component("SkListbox", SkListbox);
|
|
18956
20681
|
app.component("SkListboxItem", SkListboxItem);
|
|
18957
20682
|
app.component("SkListboxSeparator", SkListboxSeparator);
|
|
18958
20683
|
app.component("SkModal", SkModal);
|
|
18959
|
-
app.component("SkNavBar", _sfc_main$
|
|
20684
|
+
app.component("SkNavBar", _sfc_main$w);
|
|
18960
20685
|
app.component("SkNumberInput", SkNumberInput);
|
|
18961
20686
|
app.component("SkPage", SkPage);
|
|
18962
20687
|
app.component("SkPagination", SkPagination);
|
|
@@ -18966,6 +20691,9 @@ const SleekSpaceUI = {
|
|
|
18966
20691
|
app.component("SkProgress", SkProgress);
|
|
18967
20692
|
app.component("SkRadio", SkRadio);
|
|
18968
20693
|
app.component("SkRadioGroup", SkRadioGroup);
|
|
20694
|
+
app.component("SkSelect", SkSelect);
|
|
20695
|
+
app.component("SkSelectItem", SkSelectItem);
|
|
20696
|
+
app.component("SkSelectSeparator", SkSelectSeparator);
|
|
18969
20697
|
app.component("SkSidebar", _sfc_main$k);
|
|
18970
20698
|
app.component("SkSidebarItem", _sfc_main$j);
|
|
18971
20699
|
app.component("SkSidebarSection", _sfc_main$i);
|
|
@@ -18991,28 +20719,28 @@ const SleekSpaceUI = {
|
|
|
18991
20719
|
export {
|
|
18992
20720
|
SkAccordion,
|
|
18993
20721
|
SkAccordionItem,
|
|
18994
|
-
_sfc_main$
|
|
20722
|
+
_sfc_main$S as SkAlert,
|
|
18995
20723
|
SkAvatar,
|
|
18996
20724
|
SkBreadcrumbItem,
|
|
18997
20725
|
SkBreadcrumbSeparator,
|
|
18998
20726
|
SkBreadcrumbs,
|
|
18999
20727
|
SkButton,
|
|
19000
|
-
_sfc_main$
|
|
20728
|
+
_sfc_main$L as SkCard,
|
|
19001
20729
|
SkCheckbox,
|
|
19002
20730
|
SkCollapsible,
|
|
19003
|
-
_sfc_main$
|
|
20731
|
+
_sfc_main$I as SkDivider,
|
|
19004
20732
|
SkDropdown,
|
|
19005
20733
|
SkDropdownMenuItem,
|
|
19006
20734
|
SkDropdownMenuSeparator,
|
|
19007
20735
|
SkDropdownSubmenu,
|
|
19008
20736
|
SkField,
|
|
19009
|
-
_sfc_main$
|
|
20737
|
+
_sfc_main$C as SkGroup,
|
|
19010
20738
|
SkInput,
|
|
19011
20739
|
SkListbox,
|
|
19012
20740
|
SkListboxItem,
|
|
19013
20741
|
SkListboxSeparator,
|
|
19014
20742
|
SkModal,
|
|
19015
|
-
_sfc_main$
|
|
20743
|
+
_sfc_main$w as SkNavBar,
|
|
19016
20744
|
SkNumberInput,
|
|
19017
20745
|
SkPage,
|
|
19018
20746
|
SkPagination,
|
|
@@ -19022,6 +20750,9 @@ export {
|
|
|
19022
20750
|
SkProgress,
|
|
19023
20751
|
SkRadio,
|
|
19024
20752
|
SkRadioGroup,
|
|
20753
|
+
SkSelect,
|
|
20754
|
+
SkSelectItem,
|
|
20755
|
+
SkSelectSeparator,
|
|
19025
20756
|
_sfc_main$k as SkSidebar,
|
|
19026
20757
|
_sfc_main$j as SkSidebarItem,
|
|
19027
20758
|
_sfc_main$i as SkSidebarSection,
|