rei-kit 2.7.0 → 2.8.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/README.md +4 -4
- package/dist/BaseSkeleton-B-oo7JKE.js +43 -0
- package/dist/BaseSkeleton-B-oo7JKE.js.map +1 -0
- package/dist/{GoogleButton-nIRz9G8s.js → GoogleButton-DVro7xZH.js} +3 -33
- package/dist/GoogleButton-DVro7xZH.js.map +1 -0
- package/dist/app.js +2 -2
- package/dist/components/BaseListbox.vue.d.ts +38 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +287 -195
- package/dist/index.js.map +1 -1
- package/dist/{inert-B441LoCD.js → inert-TJG_g0d6.js} +32 -2
- package/dist/inert-TJG_g0d6.js.map +1 -0
- package/dist/styles.css +273 -28
- package/dist/web/CommandMenu.vue.d.ts +50 -0
- package/dist/web/DataTable.vue.d.ts +61 -0
- package/dist/web/index.d.ts +13 -0
- package/dist/web.js +438 -51
- package/dist/web.js.map +1 -1
- package/package.json +2 -2
- package/dist/GoogleButton-nIRz9G8s.js.map +0 -1
- package/dist/inert-B441LoCD.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { a as addDays, c as lastNDays, d as toDateKey, f as todayKey, i as needsIosInstall, l as leadingBlanks, n as isApplePortable, o as eachDayOfYear, r as isInstalled, s as fromDateKey, t as SettingsGroup_default, u as startOfWeek } from "./SettingsGroup-BXkajKGl.js";
|
|
2
2
|
import { n as formatNumber, r as setFormatLocale, t as formatDate } from "./format-BEvBK1SJ.js";
|
|
3
|
-
import {
|
|
3
|
+
import { n as SHEET_ROOT_ID, r as ensureSheetRoot } from "./inert-TJG_g0d6.js";
|
|
4
|
+
import { _ as safeRedirect, a as useBoundValue, c as useToast, d as applyTheme, f as isThemePreference, g as tapFeedback, h as useTheme, i as BaseInput_default, l as useVisualViewport, m as setThemeStorageKey, n as BaseCheckbox_default, o as FormField_default, p as readStoredTheme, r as BaseSheet_default, s as BaseAlert_default, t as GoogleButton_default, u as useOnline, v as toRedirectPath } from "./GoogleButton-DVro7xZH.js";
|
|
4
5
|
import { n as registerErrorMapper, r as toAppError, t as AppError } from "./app-error-DF9cijE0.js";
|
|
5
6
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
|
|
6
7
|
import { n as BaseButton_default, t as SettingsRow_default } from "./SettingsRow-BXFn8tCk.js";
|
|
8
|
+
import { t as BaseSkeleton_default } from "./BaseSkeleton-B-oo7JKE.js";
|
|
7
9
|
import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onErrorCaptured, onMounted, onScopeDispose, openBlock, readonly, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useId, useModel, useTemplateRef, vModelRadio, vModelSelect, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withModifiers } from "vue";
|
|
8
10
|
import { ArrowDown, ArrowRight, ArrowUp, ArrowUpRight, CalendarDays, Check, CheckCircle2, ChevronDown, ChevronLeft, ChevronRight, Copy, Info, Minus, Paperclip, Plus, Star, TriangleAlert, Upload, X, XCircle } from "lucide-vue-next";
|
|
9
11
|
import { RouterLink } from "vue-router";
|
|
@@ -382,17 +384,17 @@ function useMediaQuery(query) {
|
|
|
382
384
|
}
|
|
383
385
|
//#endregion
|
|
384
386
|
//#region src/components/BaseAvatar.vue?vue&type=script&setup=true&lang.ts
|
|
385
|
-
var _hoisted_1$
|
|
387
|
+
var _hoisted_1$38 = [
|
|
386
388
|
"role",
|
|
387
389
|
"aria-label",
|
|
388
390
|
"aria-hidden"
|
|
389
391
|
];
|
|
390
|
-
var _hoisted_2$
|
|
391
|
-
var _hoisted_3$
|
|
392
|
+
var _hoisted_2$32 = ["src"];
|
|
393
|
+
var _hoisted_3$21 = {
|
|
392
394
|
key: 1,
|
|
393
395
|
class: "rk-avatar-initials"
|
|
394
396
|
};
|
|
395
|
-
var _hoisted_4$
|
|
397
|
+
var _hoisted_4$17 = {
|
|
396
398
|
key: 2,
|
|
397
399
|
viewBox: "0 0 20 20",
|
|
398
400
|
class: "rk-avatar-figure",
|
|
@@ -438,7 +440,7 @@ var BaseAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
438
440
|
alt: "",
|
|
439
441
|
class: "rk-avatar-img",
|
|
440
442
|
onError: _cache[0] || (_cache[0] = ($event) => broken.value = true)
|
|
441
|
-
}, null, 40, _hoisted_2$
|
|
443
|
+
}, null, 40, _hoisted_2$32)) : __props.fallback === "initials" && initials.value ? (openBlock(), createElementBlock("span", _hoisted_3$21, toDisplayString(initials.value), 1)) : (openBlock(), createElementBlock("svg", _hoisted_4$17, [..._cache[1] || (_cache[1] = [createElementVNode("circle", {
|
|
442
444
|
cx: "10",
|
|
443
445
|
cy: "6.75",
|
|
444
446
|
r: "3.25",
|
|
@@ -447,7 +449,7 @@ var BaseAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
447
449
|
d: "M3.75 17c0-3.05 2.8-5.25 6.25-5.25S16.25 13.95 16.25 17",
|
|
448
450
|
"stroke-width": "1.5",
|
|
449
451
|
"stroke-linecap": "round"
|
|
450
|
-
}, null, -1)])]))], 10, _hoisted_1$
|
|
452
|
+
}, null, -1)])]))], 10, _hoisted_1$38);
|
|
451
453
|
};
|
|
452
454
|
}
|
|
453
455
|
}), [["__scopeId", "data-v-47586bec"]]);
|
|
@@ -472,12 +474,12 @@ var BaseBadge_default = /* @__PURE__ */ defineComponent({
|
|
|
472
474
|
});
|
|
473
475
|
//#endregion
|
|
474
476
|
//#region src/components/BaseMenu.vue?vue&type=script&setup=true&lang.ts
|
|
475
|
-
var _hoisted_1$
|
|
477
|
+
var _hoisted_1$37 = [
|
|
476
478
|
"aria-label",
|
|
477
479
|
"aria-expanded",
|
|
478
480
|
"aria-controls"
|
|
479
481
|
];
|
|
480
|
-
var _hoisted_2$
|
|
482
|
+
var _hoisted_2$31 = ["id"];
|
|
481
483
|
//#endregion
|
|
482
484
|
//#region src/components/BaseMenu.vue
|
|
483
485
|
var BaseMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -576,14 +578,14 @@ var BaseMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
576
578
|
"aria-haspopup": true,
|
|
577
579
|
"aria-controls": open.value ? unref(id) : void 0,
|
|
578
580
|
onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)
|
|
579
|
-
}, [renderSlot(_ctx.$slots, "trigger", { open: open.value }, void 0, true)], 8, _hoisted_1$
|
|
581
|
+
}, [renderSlot(_ctx.$slots, "trigger", { open: open.value }, void 0, true)], 8, _hoisted_1$37), open.value ? (openBlock(), createElementBlock("div", {
|
|
580
582
|
key: 0,
|
|
581
583
|
id: unref(id),
|
|
582
584
|
ref_key: "panel",
|
|
583
585
|
ref: panel,
|
|
584
586
|
class: normalizeClass(["rk-menu-panel surface-overlay", `is-${__props.align}`]),
|
|
585
587
|
role: "menu"
|
|
586
|
-
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 10, _hoisted_2$
|
|
588
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 10, _hoisted_2$31)) : createCommentVNode("", true)], 544);
|
|
587
589
|
};
|
|
588
590
|
}
|
|
589
591
|
}), [["__scopeId", "data-v-e57ec901"]]);
|
|
@@ -654,9 +656,9 @@ var BaseCard_default = /* @__PURE__ */ defineComponent({
|
|
|
654
656
|
});
|
|
655
657
|
//#endregion
|
|
656
658
|
//#region src/components/BaseCombobox.vue?vue&type=script&setup=true&lang.ts
|
|
657
|
-
var _hoisted_1$
|
|
658
|
-
var _hoisted_2$
|
|
659
|
-
var _hoisted_3$
|
|
659
|
+
var _hoisted_1$36 = ["for"];
|
|
660
|
+
var _hoisted_2$30 = { class: "rk-combo-field" };
|
|
661
|
+
var _hoisted_3$20 = [
|
|
660
662
|
"id",
|
|
661
663
|
"placeholder",
|
|
662
664
|
"disabled",
|
|
@@ -665,9 +667,9 @@ var _hoisted_3$19 = [
|
|
|
665
667
|
"aria-invalid",
|
|
666
668
|
"aria-describedby"
|
|
667
669
|
];
|
|
668
|
-
var _hoisted_4$
|
|
669
|
-
var _hoisted_5$
|
|
670
|
-
var _hoisted_6$
|
|
670
|
+
var _hoisted_4$16 = ["disabled"];
|
|
671
|
+
var _hoisted_5$10 = ["aria-label"];
|
|
672
|
+
var _hoisted_6$6 = [
|
|
671
673
|
"id",
|
|
672
674
|
"aria-selected",
|
|
673
675
|
"onPointerdown",
|
|
@@ -793,8 +795,8 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
793
795
|
createElementVNode("label", {
|
|
794
796
|
for: unref(id),
|
|
795
797
|
class: "rk-combo-label"
|
|
796
|
-
}, toDisplayString(__props.label), 9, _hoisted_1$
|
|
797
|
-
createElementVNode("div", _hoisted_2$
|
|
798
|
+
}, toDisplayString(__props.label), 9, _hoisted_1$36),
|
|
799
|
+
createElementVNode("div", _hoisted_2$30, [withDirectives(createElementVNode("input", {
|
|
798
800
|
id: unref(id),
|
|
799
801
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => text.value = $event),
|
|
800
802
|
type: "text",
|
|
@@ -811,14 +813,14 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
811
813
|
"aria-describedby": describedBy.value,
|
|
812
814
|
onKeydown,
|
|
813
815
|
onFocus: _cache[1] || (_cache[1] = ($event) => open.value = true)
|
|
814
|
-
}, null, 40, _hoisted_3$
|
|
816
|
+
}, null, 40, _hoisted_3$20), [[vModelText, text.value]]), createElementVNode("button", {
|
|
815
817
|
type: "button",
|
|
816
818
|
class: "rk-combo-toggle",
|
|
817
819
|
tabindex: "-1",
|
|
818
820
|
"aria-hidden": "true",
|
|
819
821
|
disabled: __props.disabled,
|
|
820
822
|
onClick: _cache[2] || (_cache[2] = ($event) => open.value = !open.value)
|
|
821
|
-
}, " ▾ ", 8, _hoisted_4$
|
|
823
|
+
}, " ▾ ", 8, _hoisted_4$16)]),
|
|
822
824
|
withDirectives(createElementVNode("ul", {
|
|
823
825
|
id: listId,
|
|
824
826
|
ref_key: "list",
|
|
@@ -838,8 +840,8 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
838
840
|
"aria-selected": option.value === model.value,
|
|
839
841
|
onPointerdown: withModifiers(($event) => choose(option), ["prevent"]),
|
|
840
842
|
onPointermove: ($event) => highlighted.value = index
|
|
841
|
-
}, toDisplayString(option.label), 43, _hoisted_6$
|
|
842
|
-
}), 128)), matches.value.length === 0 ? (openBlock(), createElementBlock("li", _hoisted_7$4, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_5$
|
|
843
|
+
}, toDisplayString(option.label), 43, _hoisted_6$6);
|
|
844
|
+
}), 128)), matches.value.length === 0 ? (openBlock(), createElementBlock("li", _hoisted_7$4, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_5$10), [[vShow, open.value]]),
|
|
843
845
|
__props.error ? (openBlock(), createElementBlock("p", {
|
|
844
846
|
key: 0,
|
|
845
847
|
id: errorId,
|
|
@@ -855,13 +857,13 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
855
857
|
}), [["__scopeId", "data-v-ce4c503f"]]);
|
|
856
858
|
//#endregion
|
|
857
859
|
//#region src/components/BaseRadioGroup.vue?vue&type=script&setup=true&lang.ts
|
|
858
|
-
var _hoisted_1$
|
|
859
|
-
var _hoisted_2$
|
|
860
|
+
var _hoisted_1$35 = ["aria-describedby"];
|
|
861
|
+
var _hoisted_2$29 = [
|
|
860
862
|
"name",
|
|
861
863
|
"value",
|
|
862
864
|
"disabled"
|
|
863
865
|
];
|
|
864
|
-
var _hoisted_3$
|
|
866
|
+
var _hoisted_3$19 = { class: "text-ink text-sm" };
|
|
865
867
|
//#endregion
|
|
866
868
|
//#region src/components/BaseRadioGroup.vue
|
|
867
869
|
var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
@@ -905,7 +907,7 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
|
905
907
|
value: option.value,
|
|
906
908
|
disabled: option.disabled,
|
|
907
909
|
class: "accent-primary focus-visible:outline-primary size-4 shrink-0 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
908
|
-
}, null, 8, _hoisted_2$
|
|
910
|
+
}, null, 8, _hoisted_2$29), [[vModelRadio, unref(model)]]), createElementVNode("span", _hoisted_3$19, toDisplayString(option.label), 1)], 2);
|
|
909
911
|
}), 128)),
|
|
910
912
|
__props.error ? (openBlock(), createElementBlock("p", {
|
|
911
913
|
key: 0,
|
|
@@ -916,24 +918,24 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
|
916
918
|
id: hintId,
|
|
917
919
|
class: "text-ink-soft text-xs"
|
|
918
920
|
}, toDisplayString(__props.hint), 1)) : createCommentVNode("", true)
|
|
919
|
-
], 8, _hoisted_1$
|
|
921
|
+
], 8, _hoisted_1$35);
|
|
920
922
|
};
|
|
921
923
|
}
|
|
922
924
|
});
|
|
923
925
|
//#endregion
|
|
924
926
|
//#region src/components/BaseSelect.vue?vue&type=script&setup=true&lang.ts
|
|
925
|
-
var _hoisted_1$
|
|
926
|
-
var _hoisted_2$
|
|
927
|
+
var _hoisted_1$34 = { class: "relative" };
|
|
928
|
+
var _hoisted_2$28 = [
|
|
927
929
|
"id",
|
|
928
930
|
"aria-invalid",
|
|
929
931
|
"aria-describedby"
|
|
930
932
|
];
|
|
931
|
-
var _hoisted_3$
|
|
933
|
+
var _hoisted_3$18 = {
|
|
932
934
|
key: 0,
|
|
933
935
|
value: void 0,
|
|
934
936
|
disabled: ""
|
|
935
937
|
};
|
|
936
|
-
var _hoisted_4$
|
|
938
|
+
var _hoisted_4$15 = ["value", "disabled"];
|
|
937
939
|
//#endregion
|
|
938
940
|
//#region src/components/BaseSelect.vue
|
|
939
941
|
var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
@@ -969,7 +971,7 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
969
971
|
"label-hidden": __props.labelHidden,
|
|
970
972
|
size: __props.size
|
|
971
973
|
}, {
|
|
972
|
-
default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$
|
|
974
|
+
default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$34, [withDirectives(createElementVNode("select", {
|
|
973
975
|
id,
|
|
974
976
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
975
977
|
"aria-invalid": invalid,
|
|
@@ -979,13 +981,13 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
979
981
|
__props.variant === "unstyled" ? "" : SIZE_CLASS[__props.size],
|
|
980
982
|
__props.variant !== "unstyled" && invalid ? "border-negative" : ""
|
|
981
983
|
]])
|
|
982
|
-
}, [__props.placeholder ? (openBlock(), createElementBlock("option", _hoisted_3$
|
|
984
|
+
}, [__props.placeholder ? (openBlock(), createElementBlock("option", _hoisted_3$18, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
|
|
983
985
|
return openBlock(), createElementBlock("option", {
|
|
984
986
|
key: option.value,
|
|
985
987
|
value: option.value,
|
|
986
988
|
disabled: option.disabled
|
|
987
|
-
}, toDisplayString(option.label), 9, _hoisted_4$
|
|
988
|
-
}), 128))], 10, _hoisted_2$
|
|
989
|
+
}, toDisplayString(option.label), 9, _hoisted_4$15);
|
|
990
|
+
}), 128))], 10, _hoisted_2$28), [[vModelSelect, model.value]]), createVNode(unref(ChevronDown), {
|
|
989
991
|
class: "text-ink-soft pointer-events-none absolute top-1/2 right-3 size-4 -translate-y-1/2",
|
|
990
992
|
"aria-hidden": "true"
|
|
991
993
|
})])]),
|
|
@@ -1002,11 +1004,11 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
1002
1004
|
});
|
|
1003
1005
|
//#endregion
|
|
1004
1006
|
//#region src/components/BaseSlider.vue?vue&type=script&setup=true&lang.ts
|
|
1005
|
-
var _hoisted_1$
|
|
1006
|
-
var _hoisted_2$
|
|
1007
|
-
var _hoisted_3$
|
|
1008
|
-
var _hoisted_4$
|
|
1009
|
-
var _hoisted_5$
|
|
1007
|
+
var _hoisted_1$33 = { class: "rk-slider" };
|
|
1008
|
+
var _hoisted_2$27 = { class: "rk-slider-head" };
|
|
1009
|
+
var _hoisted_3$17 = ["for"];
|
|
1010
|
+
var _hoisted_4$14 = ["for"];
|
|
1011
|
+
var _hoisted_5$9 = [
|
|
1010
1012
|
"id",
|
|
1011
1013
|
"min",
|
|
1012
1014
|
"max",
|
|
@@ -1050,15 +1052,15 @@ var BaseSlider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
1050
1052
|
return span <= 0 ? 0 : (model.value - __props.min) / span * 100;
|
|
1051
1053
|
});
|
|
1052
1054
|
return (_ctx, _cache) => {
|
|
1053
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1054
|
-
createElementVNode("div", _hoisted_2$
|
|
1055
|
+
return openBlock(), createElementBlock("div", _hoisted_1$33, [
|
|
1056
|
+
createElementVNode("div", _hoisted_2$27, [createElementVNode("label", {
|
|
1055
1057
|
for: unref(id),
|
|
1056
1058
|
class: "rk-slider-label"
|
|
1057
|
-
}, toDisplayString(__props.label), 9, _hoisted_3$
|
|
1059
|
+
}, toDisplayString(__props.label), 9, _hoisted_3$17), __props.showValue ? (openBlock(), createElementBlock("output", {
|
|
1058
1060
|
key: 0,
|
|
1059
1061
|
for: unref(id),
|
|
1060
1062
|
class: "rk-slider-value"
|
|
1061
|
-
}, toDisplayString(text.value), 9, _hoisted_4$
|
|
1063
|
+
}, toDisplayString(text.value), 9, _hoisted_4$14)) : createCommentVNode("", true)]),
|
|
1062
1064
|
withDirectives(createElementVNode("input", {
|
|
1063
1065
|
id: unref(id),
|
|
1064
1066
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
@@ -1071,7 +1073,7 @@ var BaseSlider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
1071
1073
|
"aria-valuetext": text.value,
|
|
1072
1074
|
"aria-describedby": __props.hint ? hintId : void 0,
|
|
1073
1075
|
style: normalizeStyle({ "--rk-slider-filled": `${filled.value}%` })
|
|
1074
|
-
}, null, 12, _hoisted_5$
|
|
1076
|
+
}, null, 12, _hoisted_5$9), [[
|
|
1075
1077
|
vModelText,
|
|
1076
1078
|
model.value,
|
|
1077
1079
|
void 0,
|
|
@@ -1088,11 +1090,11 @@ var BaseSlider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
1088
1090
|
}), [["__scopeId", "data-v-7fa2769b"]]);
|
|
1089
1091
|
//#endregion
|
|
1090
1092
|
//#region src/components/BaseSpinner.vue?vue&type=script&setup=true&lang.ts
|
|
1091
|
-
var _hoisted_1$
|
|
1093
|
+
var _hoisted_1$32 = {
|
|
1092
1094
|
class: "rk-spin-wrap",
|
|
1093
1095
|
role: "status"
|
|
1094
1096
|
};
|
|
1095
|
-
var _hoisted_2$
|
|
1097
|
+
var _hoisted_2$26 = { class: "rk-spin-label" };
|
|
1096
1098
|
//#endregion
|
|
1097
1099
|
//#region src/components/BaseSpinner.vue
|
|
1098
1100
|
var BaseSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -1120,26 +1122,26 @@ var BaseSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
1120
1122
|
lg: "2.5rem"
|
|
1121
1123
|
};
|
|
1122
1124
|
return (_ctx, _cache) => {
|
|
1123
|
-
return openBlock(), createElementBlock("span", _hoisted_1$
|
|
1125
|
+
return openBlock(), createElementBlock("span", _hoisted_1$32, [createElementVNode("span", {
|
|
1124
1126
|
class: "rk-spin",
|
|
1125
1127
|
style: normalizeStyle({
|
|
1126
1128
|
width: SIZES[__props.size],
|
|
1127
1129
|
height: SIZES[__props.size]
|
|
1128
1130
|
}),
|
|
1129
1131
|
"aria-hidden": "true"
|
|
1130
|
-
}, null, 4), createElementVNode("span", _hoisted_2$
|
|
1132
|
+
}, null, 4), createElementVNode("span", _hoisted_2$26, toDisplayString(__props.label), 1)]);
|
|
1131
1133
|
};
|
|
1132
1134
|
}
|
|
1133
1135
|
}), [["__scopeId", "data-v-842da62c"]]);
|
|
1134
1136
|
//#endregion
|
|
1135
1137
|
//#region src/components/BaseSwitch.vue?vue&type=script&setup=true&lang.ts
|
|
1136
|
-
var _hoisted_1$
|
|
1137
|
-
var _hoisted_2$
|
|
1138
|
+
var _hoisted_1$31 = { class: "flex items-center justify-between gap-4" };
|
|
1139
|
+
var _hoisted_2$25 = {
|
|
1138
1140
|
key: 0,
|
|
1139
1141
|
class: "min-w-0"
|
|
1140
1142
|
};
|
|
1141
|
-
var _hoisted_3$
|
|
1142
|
-
var _hoisted_4$
|
|
1143
|
+
var _hoisted_3$16 = ["id"];
|
|
1144
|
+
var _hoisted_4$13 = [
|
|
1143
1145
|
"aria-checked",
|
|
1144
1146
|
"aria-labelledby",
|
|
1145
1147
|
"aria-label",
|
|
@@ -1178,10 +1180,10 @@ var BaseSwitch_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
1178
1180
|
if (!__props.disabled) model.value = !model.value;
|
|
1179
1181
|
}
|
|
1180
1182
|
return (_ctx, _cache) => {
|
|
1181
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1183
|
+
return openBlock(), createElementBlock("div", _hoisted_1$31, [!__props.labelHidden ? (openBlock(), createElementBlock("span", _hoisted_2$25, [createElementVNode("span", {
|
|
1182
1184
|
id: unref(id),
|
|
1183
1185
|
class: "text-ink block text-sm"
|
|
1184
|
-
}, toDisplayString(__props.label), 9, _hoisted_3$
|
|
1186
|
+
}, toDisplayString(__props.label), 9, _hoisted_3$16), __props.hint ? (openBlock(), createElementBlock("span", {
|
|
1185
1187
|
key: 0,
|
|
1186
1188
|
id: hintId,
|
|
1187
1189
|
class: "text-ink-soft mt-0.5 block text-xs"
|
|
@@ -1198,17 +1200,17 @@ var BaseSwitch_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
1198
1200
|
}, [..._cache[0] || (_cache[0] = [createElementVNode("span", {
|
|
1199
1201
|
class: "rk-switch-knob",
|
|
1200
1202
|
"aria-hidden": "true"
|
|
1201
|
-
}, null, -1)])], 10, _hoisted_4$
|
|
1203
|
+
}, null, -1)])], 10, _hoisted_4$13)]);
|
|
1202
1204
|
};
|
|
1203
1205
|
}
|
|
1204
1206
|
}), [["__scopeId", "data-v-3f4400a0"]]);
|
|
1205
1207
|
//#endregion
|
|
1206
1208
|
//#region src/components/BaseTable.vue?vue&type=script&setup=true&lang.ts
|
|
1207
|
-
var _hoisted_1$
|
|
1208
|
-
var _hoisted_2$
|
|
1209
|
-
var _hoisted_3$
|
|
1210
|
-
var _hoisted_4$
|
|
1211
|
-
var _hoisted_5$
|
|
1209
|
+
var _hoisted_1$30 = ["aria-label"];
|
|
1210
|
+
var _hoisted_2$24 = { class: "rk-table" };
|
|
1211
|
+
var _hoisted_3$15 = { key: 0 };
|
|
1212
|
+
var _hoisted_4$12 = { key: 1 };
|
|
1213
|
+
var _hoisted_5$8 = ["colspan"];
|
|
1212
1214
|
//#endregion
|
|
1213
1215
|
//#region src/components/BaseTable.vue
|
|
1214
1216
|
var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -1231,7 +1233,7 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1231
1233
|
tabindex: "0",
|
|
1232
1234
|
role: "region",
|
|
1233
1235
|
"aria-label": __props.caption
|
|
1234
|
-
}, [createElementVNode("table", _hoisted_2$
|
|
1236
|
+
}, [createElementVNode("table", _hoisted_2$24, [
|
|
1235
1237
|
createElementVNode("caption", { class: normalizeClass(__props.captionHidden ? "rk-table-caption-hidden" : "rk-table-caption") }, toDisplayString(__props.caption), 3),
|
|
1236
1238
|
createElementVNode("thead", null, [createElementVNode("tr", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
|
|
1237
1239
|
return openBlock(), createElementBlock("th", {
|
|
@@ -1240,7 +1242,7 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1240
1242
|
class: normalizeClass([column.align === "end" && "is-end", column.nowrap && "is-nowrap"])
|
|
1241
1243
|
}, toDisplayString(column.label), 3);
|
|
1242
1244
|
}), 128))])]),
|
|
1243
|
-
__props.rows.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_3$
|
|
1245
|
+
__props.rows.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_3$15, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row, index) => {
|
|
1244
1246
|
return openBlock(), createElementBlock("tr", { key: keyFor(row, index) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
|
|
1245
1247
|
return openBlock(), createElementBlock("td", {
|
|
1246
1248
|
key: column.key,
|
|
@@ -1250,17 +1252,17 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1250
1252
|
value: row[column.key]
|
|
1251
1253
|
}, () => [createTextVNode(toDisplayString(row[column.key]), 1)], true)], 2);
|
|
1252
1254
|
}), 128))]);
|
|
1253
|
-
}), 128))])) : (openBlock(), createElementBlock("tbody", _hoisted_4$
|
|
1255
|
+
}), 128))])) : (openBlock(), createElementBlock("tbody", _hoisted_4$12, [createElementVNode("tr", null, [createElementVNode("td", {
|
|
1254
1256
|
colspan: __props.columns.length,
|
|
1255
1257
|
class: "rk-table-empty"
|
|
1256
|
-
}, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_5$
|
|
1257
|
-
])], 8, _hoisted_1$
|
|
1258
|
+
}, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_5$8)])]))
|
|
1259
|
+
])], 8, _hoisted_1$30);
|
|
1258
1260
|
};
|
|
1259
1261
|
}
|
|
1260
1262
|
}), [["__scopeId", "data-v-89958b5a"]]);
|
|
1261
1263
|
//#endregion
|
|
1262
1264
|
//#region src/components/BaseTextarea.vue?vue&type=script&setup=true&lang.ts
|
|
1263
|
-
var _hoisted_1$
|
|
1265
|
+
var _hoisted_1$29 = [
|
|
1264
1266
|
"id",
|
|
1265
1267
|
"rows",
|
|
1266
1268
|
"aria-invalid",
|
|
@@ -1306,7 +1308,7 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
|
|
|
1306
1308
|
__props.variant === "unstyled" ? "" : "control text-ink rounded-card focus-visible:outline-primary resize-y px-3 py-2 leading-relaxed focus-visible:outline-2 focus-visible:outline-offset-1",
|
|
1307
1309
|
"text-base",
|
|
1308
1310
|
__props.variant !== "unstyled" && invalid ? "border-negative" : ""
|
|
1309
|
-
] }), null, 16, _hoisted_1$
|
|
1311
|
+
] }), null, 16, _hoisted_1$29), [[vModelText, unref(model)]])]),
|
|
1310
1312
|
_: 1
|
|
1311
1313
|
}, 8, [
|
|
1312
1314
|
"label",
|
|
@@ -1320,17 +1322,17 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
|
|
|
1320
1322
|
});
|
|
1321
1323
|
//#endregion
|
|
1322
1324
|
//#region src/components/EmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
1323
|
-
var _hoisted_1$
|
|
1324
|
-
var _hoisted_2$
|
|
1325
|
+
var _hoisted_1$28 = { class: "flex flex-col items-center gap-3 px-6 py-10 text-center" };
|
|
1326
|
+
var _hoisted_2$23 = {
|
|
1325
1327
|
key: 0,
|
|
1326
1328
|
class: "bg-muted text-primary rounded-card flex size-12 items-center justify-center"
|
|
1327
1329
|
};
|
|
1328
|
-
var _hoisted_3$
|
|
1329
|
-
var _hoisted_4$
|
|
1330
|
+
var _hoisted_3$14 = { class: "text-ink text-base font-semibold" };
|
|
1331
|
+
var _hoisted_4$11 = {
|
|
1330
1332
|
key: 1,
|
|
1331
1333
|
class: "text-ink-soft max-w-[36ch] text-sm"
|
|
1332
1334
|
};
|
|
1333
|
-
var _hoisted_5$
|
|
1335
|
+
var _hoisted_5$7 = {
|
|
1334
1336
|
key: 2,
|
|
1335
1337
|
class: "mt-2 flex w-full flex-col gap-2"
|
|
1336
1338
|
};
|
|
@@ -1352,11 +1354,11 @@ var EmptyState_default = /* @__PURE__ */ defineComponent({
|
|
|
1352
1354
|
* goes — the button that creates the first one.
|
|
1353
1355
|
*/
|
|
1354
1356
|
return (_ctx, _cache) => {
|
|
1355
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1356
|
-
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
1357
|
-
createElementVNode("h3", _hoisted_3$
|
|
1358
|
-
__props.description ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
1359
|
-
_ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5$
|
|
1357
|
+
return openBlock(), createElementBlock("div", _hoisted_1$28, [
|
|
1358
|
+
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$23, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
|
|
1359
|
+
createElementVNode("h3", _hoisted_3$14, toDisplayString(__props.title), 1),
|
|
1360
|
+
__props.description ? (openBlock(), createElementBlock("p", _hoisted_4$11, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
|
|
1361
|
+
_ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5$7, [renderSlot(_ctx.$slots, "action")])) : createCommentVNode("", true)
|
|
1360
1362
|
]);
|
|
1361
1363
|
};
|
|
1362
1364
|
}
|
|
@@ -1423,11 +1425,11 @@ var PageContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
1423
1425
|
});
|
|
1424
1426
|
//#endregion
|
|
1425
1427
|
//#region src/components/PageHeader.vue?vue&type=script&setup=true&lang.ts
|
|
1426
|
-
var _hoisted_1$
|
|
1427
|
-
var _hoisted_2$
|
|
1428
|
-
var _hoisted_3$
|
|
1429
|
-
var _hoisted_4$
|
|
1430
|
-
var _hoisted_5$
|
|
1428
|
+
var _hoisted_1$27 = { class: "grid h-12 shrink-0 grid-cols-[2.5rem_1fr_2.5rem] items-center" };
|
|
1429
|
+
var _hoisted_2$22 = { class: "justify-self-start" };
|
|
1430
|
+
var _hoisted_3$13 = { class: "text-ink flex min-w-0 justify-center text-base font-semibold tabular-nums" };
|
|
1431
|
+
var _hoisted_4$10 = { class: "truncate" };
|
|
1432
|
+
var _hoisted_5$6 = { class: "justify-self-end" };
|
|
1431
1433
|
//#endregion
|
|
1432
1434
|
//#region src/components/PageHeader.vue
|
|
1433
1435
|
var PageHeader_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1444,17 +1446,17 @@ var PageHeader_default = /* @__PURE__ */ defineComponent({
|
|
|
1444
1446
|
* each other.
|
|
1445
1447
|
*/
|
|
1446
1448
|
return (_ctx, _cache) => {
|
|
1447
|
-
return openBlock(), createElementBlock("header", _hoisted_1$
|
|
1448
|
-
createElementVNode("div", _hoisted_2$
|
|
1449
|
-
createElementVNode("h1", _hoisted_3$
|
|
1450
|
-
createElementVNode("div", _hoisted_5$
|
|
1449
|
+
return openBlock(), createElementBlock("header", _hoisted_1$27, [
|
|
1450
|
+
createElementVNode("div", _hoisted_2$22, [renderSlot(_ctx.$slots, "left")]),
|
|
1451
|
+
createElementVNode("h1", _hoisted_3$13, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", _hoisted_4$10, toDisplayString(__props.title), 1)])]),
|
|
1452
|
+
createElementVNode("div", _hoisted_5$6, [renderSlot(_ctx.$slots, "right")])
|
|
1451
1453
|
]);
|
|
1452
1454
|
};
|
|
1453
1455
|
}
|
|
1454
1456
|
});
|
|
1455
1457
|
//#endregion
|
|
1456
1458
|
//#region src/components/ProgressBar.vue?vue&type=script&setup=true&lang.ts
|
|
1457
|
-
var _hoisted_1$
|
|
1459
|
+
var _hoisted_1$26 = ["aria-valuenow", "aria-label"];
|
|
1458
1460
|
//#endregion
|
|
1459
1461
|
//#region src/components/ProgressBar.vue
|
|
1460
1462
|
var ProgressBar_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1486,24 +1488,24 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
|
|
|
1486
1488
|
}, [createElementVNode("div", {
|
|
1487
1489
|
class: "bg-primary h-full rounded-full transition-[width] duration-700 ease-out",
|
|
1488
1490
|
style: normalizeStyle({ width: `${portion.value}%` })
|
|
1489
|
-
}, null, 4)], 10, _hoisted_1$
|
|
1491
|
+
}, null, 4)], 10, _hoisted_1$26);
|
|
1490
1492
|
};
|
|
1491
1493
|
}
|
|
1492
1494
|
});
|
|
1493
1495
|
//#endregion
|
|
1494
1496
|
//#region src/components/PriceCard.vue?vue&type=script&setup=true&lang.ts
|
|
1495
|
-
var _hoisted_1$
|
|
1497
|
+
var _hoisted_1$25 = {
|
|
1496
1498
|
key: 0,
|
|
1497
1499
|
class: "bg-primary rounded-cell text-on-primary absolute -top-3 left-7 px-3 py-1 text-[0.7rem] font-semibold"
|
|
1498
1500
|
};
|
|
1499
|
-
var _hoisted_2$
|
|
1500
|
-
var _hoisted_3$
|
|
1501
|
-
var _hoisted_4$
|
|
1501
|
+
var _hoisted_2$21 = { class: "flex items-start justify-between gap-4" };
|
|
1502
|
+
var _hoisted_3$12 = { class: "text-ink mt-5 text-lg font-semibold" };
|
|
1503
|
+
var _hoisted_4$9 = {
|
|
1502
1504
|
key: 1,
|
|
1503
1505
|
class: "text-ink-soft mt-1.5 text-sm leading-relaxed"
|
|
1504
1506
|
};
|
|
1505
|
-
var _hoisted_5$
|
|
1506
|
-
var _hoisted_6$
|
|
1507
|
+
var _hoisted_5$5 = { class: "mt-6 flex items-baseline gap-1.5" };
|
|
1508
|
+
var _hoisted_6$5 = { class: "text-ink text-3xl font-semibold tracking-tight tabular-nums" };
|
|
1507
1509
|
var _hoisted_7$3 = {
|
|
1508
1510
|
key: 0,
|
|
1509
1511
|
class: "text-ink-soft text-sm"
|
|
@@ -1567,17 +1569,17 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
|
|
|
1567
1569
|
const palette = computed(() => TONE[__props.tone]);
|
|
1568
1570
|
return (_ctx, _cache) => {
|
|
1569
1571
|
return openBlock(), createElementBlock("article", { class: normalizeClass(["surface rounded-card ease-standard relative flex h-full flex-col p-7 transition-[border-color,box-shadow,transform] duration-(--duration-slower) hover:[--surface-border-color:color-mix(in_oklab,var(--color-primary)_60%,transparent)] hover:[--surface-shadow:var(--shadow-raised)] sm:p-8", [palette.value.ring, __props.recommended ? "[--surface-shadow:var(--shadow-raised)]" : "hover:-translate-y-0.5"]]) }, [
|
|
1570
|
-
__props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
1571
|
-
createElementVNode("div", _hoisted_2$
|
|
1572
|
+
__props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$25, toDisplayString(__props.badge), 1)) : createCommentVNode("", true),
|
|
1573
|
+
createElementVNode("div", _hoisted_2$21, [_ctx.$slots.icon ? (openBlock(), createElementBlock("span", {
|
|
1572
1574
|
key: 0,
|
|
1573
1575
|
class: normalizeClass(["rounded-card grid size-11 place-items-center text-xl", palette.value.icon])
|
|
1574
1576
|
}, [renderSlot(_ctx.$slots, "icon")], 2)) : createCommentVNode("", true), __props.chip ? (openBlock(), createElementBlock("span", {
|
|
1575
1577
|
key: 1,
|
|
1576
1578
|
class: normalizeClass(["rounded-cell ml-auto px-2.5 py-1 text-[0.7rem] font-medium", palette.value.soft])
|
|
1577
1579
|
}, toDisplayString(__props.chip), 3)) : createCommentVNode("", true)]),
|
|
1578
|
-
createElementVNode("h3", _hoisted_3$
|
|
1579
|
-
__props.lead ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
1580
|
-
createElementVNode("p", _hoisted_5$
|
|
1580
|
+
createElementVNode("h3", _hoisted_3$12, toDisplayString(__props.name), 1),
|
|
1581
|
+
__props.lead ? (openBlock(), createElementBlock("p", _hoisted_4$9, toDisplayString(__props.lead), 1)) : createCommentVNode("", true),
|
|
1582
|
+
createElementVNode("p", _hoisted_5$5, [createElementVNode("span", _hoisted_6$5, toDisplayString(__props.price), 1), __props.period ? (openBlock(), createElementBlock("span", _hoisted_7$3, toDisplayString(__props.period), 1)) : createCommentVNode("", true)]),
|
|
1581
1583
|
__props.note ? (openBlock(), createElementBlock("p", _hoisted_8$2, toDisplayString(__props.note), 1)) : createCommentVNode("", true),
|
|
1582
1584
|
createElementVNode("ul", _hoisted_9$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.features, (feature) => {
|
|
1583
1585
|
return openBlock(), createElementBlock("li", {
|
|
@@ -1592,8 +1594,8 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
|
|
|
1592
1594
|
});
|
|
1593
1595
|
//#endregion
|
|
1594
1596
|
//#region src/components/ToneDot.vue?vue&type=script&setup=true&lang.ts
|
|
1595
|
-
var _hoisted_1$
|
|
1596
|
-
var _hoisted_2$
|
|
1597
|
+
var _hoisted_1$24 = { class: "inline-flex items-center gap-1.5" };
|
|
1598
|
+
var _hoisted_2$20 = {
|
|
1597
1599
|
key: 0,
|
|
1598
1600
|
class: "text-ink-soft text-xs font-medium"
|
|
1599
1601
|
};
|
|
@@ -1614,13 +1616,13 @@ var ToneDot_default = /* @__PURE__ */ defineComponent({
|
|
|
1614
1616
|
* priorities — without this component knowing about any of them.
|
|
1615
1617
|
*/
|
|
1616
1618
|
return (_ctx, _cache) => {
|
|
1617
|
-
return openBlock(), createElementBlock("span", _hoisted_1$
|
|
1619
|
+
return openBlock(), createElementBlock("span", _hoisted_1$24, [createElementVNode("span", { class: normalizeClass(["size-2 rounded-full", __props.fill]) }, null, 2), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$20, toDisplayString(__props.label), 1)) : createCommentVNode("", true)]);
|
|
1618
1620
|
};
|
|
1619
1621
|
}
|
|
1620
1622
|
});
|
|
1621
1623
|
//#endregion
|
|
1622
1624
|
//#region src/components/SectionHeading.vue?vue&type=script&setup=true&lang.ts
|
|
1623
|
-
var _hoisted_1$
|
|
1625
|
+
var _hoisted_1$23 = {
|
|
1624
1626
|
key: 0,
|
|
1625
1627
|
class: "text-ink-soft text-xs tabular-nums"
|
|
1626
1628
|
};
|
|
@@ -1638,15 +1640,15 @@ var SectionHeading_default = /* @__PURE__ */ defineComponent({
|
|
|
1638
1640
|
return openBlock(), createElementBlock("h2", { class: normalizeClass(["flex w-fit items-center gap-2 self-start rounded-full border px-3 py-1", __props.tone.card]) }, [
|
|
1639
1641
|
createVNode(ToneDot_default, { fill: __props.tone.fill }, null, 8, ["fill"]),
|
|
1640
1642
|
createElementVNode("span", { class: normalizeClass(["text-xs font-semibold tracking-wide uppercase", __props.tone.text]) }, toDisplayString(__props.label), 3),
|
|
1641
|
-
__props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
1643
|
+
__props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$23, toDisplayString(__props.count), 1)) : createCommentVNode("", true)
|
|
1642
1644
|
], 2);
|
|
1643
1645
|
};
|
|
1644
1646
|
}
|
|
1645
1647
|
});
|
|
1646
1648
|
//#endregion
|
|
1647
1649
|
//#region src/components/SegmentedControl.vue?vue&type=script&setup=true&lang.ts
|
|
1648
|
-
var _hoisted_1$
|
|
1649
|
-
var _hoisted_2$
|
|
1650
|
+
var _hoisted_1$22 = { class: "bg-muted rounded-card flex w-full gap-1 p-1" };
|
|
1651
|
+
var _hoisted_2$19 = ["value", "name"];
|
|
1650
1652
|
//#endregion
|
|
1651
1653
|
//#region src/components/SegmentedControl.vue
|
|
1652
1654
|
var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1660,7 +1662,7 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
|
1660
1662
|
const model = useModel(__props, "modelValue");
|
|
1661
1663
|
const name = useId();
|
|
1662
1664
|
return (_ctx, _cache) => {
|
|
1663
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1665
|
+
return openBlock(), createElementBlock("div", _hoisted_1$22, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
|
|
1664
1666
|
return openBlock(), createElementBlock("label", {
|
|
1665
1667
|
key: String(option.value),
|
|
1666
1668
|
class: "flex-1 cursor-pointer"
|
|
@@ -1670,18 +1672,18 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
|
1670
1672
|
value: option.value,
|
|
1671
1673
|
name: unref(name),
|
|
1672
1674
|
class: "peer sr-only"
|
|
1673
|
-
}, null, 8, _hoisted_2$
|
|
1675
|
+
}, null, 8, _hoisted_2$19), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["peer-focus-visible:outline-primary flex h-10 items-center justify-center rounded-xl px-2 text-sm font-medium transition-colors select-none peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2", model.value === option.value ? "bg-surface text-ink shadow-(--shadow-control)" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
|
|
1674
1676
|
}), 128))]);
|
|
1675
1677
|
};
|
|
1676
1678
|
}
|
|
1677
1679
|
});
|
|
1678
1680
|
//#endregion
|
|
1679
1681
|
//#region src/components/SkeletonList.vue?vue&type=script&setup=true&lang.ts
|
|
1680
|
-
var _hoisted_1$
|
|
1682
|
+
var _hoisted_1$21 = {
|
|
1681
1683
|
role: "status",
|
|
1682
1684
|
class: "flex flex-col gap-1"
|
|
1683
1685
|
};
|
|
1684
|
-
var _hoisted_2$
|
|
1686
|
+
var _hoisted_2$18 = { class: "sr-only" };
|
|
1685
1687
|
//#endregion
|
|
1686
1688
|
//#region src/components/SkeletonList.vue
|
|
1687
1689
|
var SkeletonList_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1695,7 +1697,7 @@ var SkeletonList_default = /* @__PURE__ */ defineComponent({
|
|
|
1695
1697
|
/** A length starts with a digit, a dot, or opens a CSS function. */
|
|
1696
1698
|
const isLength = computed(() => /^(?:[.\d]|calc\(|var\(|clamp\(|min\(|max\()/.test(__props.rowHeight));
|
|
1697
1699
|
return (_ctx, _cache) => {
|
|
1698
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1700
|
+
return openBlock(), createElementBlock("div", _hoisted_1$21, [createElementVNode("span", _hoisted_2$18, toDisplayString(__props.label), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row) => {
|
|
1699
1701
|
return openBlock(), createElementBlock("div", {
|
|
1700
1702
|
key: row,
|
|
1701
1703
|
class: normalizeClass(["bg-muted rounded-card animate-pulse", isLength.value ? void 0 : __props.rowHeight]),
|
|
@@ -1708,10 +1710,10 @@ var SkeletonList_default = /* @__PURE__ */ defineComponent({
|
|
|
1708
1710
|
});
|
|
1709
1711
|
//#endregion
|
|
1710
1712
|
//#region src/components/StatCard.vue?vue&type=script&setup=true&lang.ts
|
|
1711
|
-
var _hoisted_1$
|
|
1712
|
-
var _hoisted_2$
|
|
1713
|
-
var _hoisted_3$
|
|
1714
|
-
var _hoisted_4$
|
|
1713
|
+
var _hoisted_1$20 = { class: "surface rounded-card flex flex-1 flex-col gap-0.5 p-3" };
|
|
1714
|
+
var _hoisted_2$17 = { class: "flex items-baseline gap-1" };
|
|
1715
|
+
var _hoisted_3$11 = { class: "text-ink text-xl font-semibold tabular-nums" };
|
|
1716
|
+
var _hoisted_4$8 = { class: "text-ink-soft text-xs" };
|
|
1715
1717
|
//#endregion
|
|
1716
1718
|
//#region src/components/StatCard.vue
|
|
1717
1719
|
var StatCard_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1728,22 +1730,22 @@ var StatCard_default = /* @__PURE__ */ defineComponent({
|
|
|
1728
1730
|
flat: ArrowRight
|
|
1729
1731
|
};
|
|
1730
1732
|
return (_ctx, _cache) => {
|
|
1731
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1733
|
+
return openBlock(), createElementBlock("div", _hoisted_1$20, [createElementVNode("div", _hoisted_2$17, [createElementVNode("span", _hoisted_3$11, toDisplayString(__props.value), 1), __props.trend ? (openBlock(), createBlock(resolveDynamicComponent(TREND_ICON[__props.trend]), {
|
|
1732
1734
|
key: 0,
|
|
1733
1735
|
class: "text-ink-soft size-3"
|
|
1734
|
-
})) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_4$
|
|
1736
|
+
})) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_4$8, toDisplayString(__props.label), 1)]);
|
|
1735
1737
|
};
|
|
1736
1738
|
}
|
|
1737
1739
|
});
|
|
1738
1740
|
//#endregion
|
|
1739
1741
|
//#region src/components/ToastHost.vue?vue&type=script&setup=true&lang.ts
|
|
1740
|
-
var _hoisted_1$
|
|
1742
|
+
var _hoisted_1$19 = [
|
|
1741
1743
|
"onMouseenter",
|
|
1742
1744
|
"onMouseleave",
|
|
1743
1745
|
"onFocusin",
|
|
1744
1746
|
"onFocusout"
|
|
1745
1747
|
];
|
|
1746
|
-
var _hoisted_2$
|
|
1748
|
+
var _hoisted_2$16 = { class: "flex-1 text-sm leading-snug" };
|
|
1747
1749
|
//#endregion
|
|
1748
1750
|
//#region src/components/ToastHost.vue
|
|
1749
1751
|
var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -1804,7 +1806,7 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1804
1806
|
class: normalizeClass(["mt-0.5 size-5 shrink-0", TONE_CLASS[toast.tone]]),
|
|
1805
1807
|
"aria-hidden": "true"
|
|
1806
1808
|
}, null, 8, ["class"])),
|
|
1807
|
-
createElementVNode("p", _hoisted_2$
|
|
1809
|
+
createElementVNode("p", _hoisted_2$16, toDisplayString(toast.message), 1),
|
|
1808
1810
|
toast.action ? (openBlock(), createBlock(BaseButton_default, {
|
|
1809
1811
|
key: 0,
|
|
1810
1812
|
variant: "link",
|
|
@@ -1827,7 +1829,7 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1827
1829
|
default: withCtx(() => [createVNode(unref(X), { class: "size-4" })]),
|
|
1828
1830
|
_: 1
|
|
1829
1831
|
}, 8, ["aria-label", "onClick"])
|
|
1830
|
-
], 40, _hoisted_1$
|
|
1832
|
+
], 40, _hoisted_1$19);
|
|
1831
1833
|
}), 128))]),
|
|
1832
1834
|
_: 1
|
|
1833
1835
|
})], 2)])) : createCommentVNode("", true);
|
|
@@ -1836,8 +1838,8 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
1836
1838
|
}), [["__scopeId", "data-v-737eb240"]]);
|
|
1837
1839
|
//#endregion
|
|
1838
1840
|
//#region src/components/LocaleLinks.vue?vue&type=script&setup=true&lang.ts
|
|
1839
|
-
var _hoisted_1$
|
|
1840
|
-
var _hoisted_2$
|
|
1841
|
+
var _hoisted_1$18 = ["aria-label"];
|
|
1842
|
+
var _hoisted_2$15 = [
|
|
1841
1843
|
"lang",
|
|
1842
1844
|
"aria-pressed",
|
|
1843
1845
|
"onClick"
|
|
@@ -1881,17 +1883,17 @@ var LocaleLinks_default = /* @__PURE__ */ defineComponent({
|
|
|
1881
1883
|
class: normalizeClass(["focus-ring rounded-full px-2.5 py-1.5 text-xs transition-colors", preference.value === locale ? "bg-muted text-ink font-semibold" : "text-ink-soft hover:text-ink"]),
|
|
1882
1884
|
"aria-pressed": preference.value === locale,
|
|
1883
1885
|
onClick: ($event) => preference.value = locale
|
|
1884
|
-
}, toDisplayString(__props.labels[locale]), 11, _hoisted_2$
|
|
1885
|
-
}), 128))], 8, _hoisted_1$
|
|
1886
|
+
}, toDisplayString(__props.labels[locale]), 11, _hoisted_2$15);
|
|
1887
|
+
}), 128))], 8, _hoisted_1$18);
|
|
1886
1888
|
};
|
|
1887
1889
|
}
|
|
1888
1890
|
});
|
|
1889
1891
|
//#endregion
|
|
1890
1892
|
//#region src/components/TabBar.vue?vue&type=script&setup=true&lang.ts
|
|
1891
|
-
var _hoisted_1$
|
|
1892
|
-
var _hoisted_2$
|
|
1893
|
-
var _hoisted_3$
|
|
1894
|
-
var _hoisted_4$
|
|
1893
|
+
var _hoisted_1$17 = { class: "tab-bar" };
|
|
1894
|
+
var _hoisted_2$14 = ["aria-label"];
|
|
1895
|
+
var _hoisted_3$10 = { class: "tab-icon-slot" };
|
|
1896
|
+
var _hoisted_4$7 = { class: "tab-label" };
|
|
1895
1897
|
//#endregion
|
|
1896
1898
|
//#region src/components/TabBar.vue
|
|
1897
1899
|
var TabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -1903,7 +1905,7 @@ var TabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
1903
1905
|
},
|
|
1904
1906
|
setup(__props) {
|
|
1905
1907
|
return (_ctx, _cache) => {
|
|
1906
|
-
return openBlock(), createElementBlock("header", _hoisted_1$
|
|
1908
|
+
return openBlock(), createElementBlock("header", _hoisted_1$17, [createElementVNode("nav", {
|
|
1907
1909
|
class: "tab-bar-inner",
|
|
1908
1910
|
"aria-label": __props.label || void 0
|
|
1909
1911
|
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
@@ -1914,21 +1916,21 @@ var TabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
1914
1916
|
"aria-current": item.key === __props.active ? "page" : void 0,
|
|
1915
1917
|
onClick: _cache[0] || (_cache[0] = ($event) => unref(tapFeedback)())
|
|
1916
1918
|
}, {
|
|
1917
|
-
default: withCtx(() => [createElementVNode("span", _hoisted_3$
|
|
1919
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_3$10, [(openBlock(), createBlock(resolveDynamicComponent(item.icon), { class: "tab-icon" }))]), createElementVNode("span", _hoisted_4$7, toDisplayString(item.label), 1)]),
|
|
1918
1920
|
_: 2
|
|
1919
1921
|
}, 1032, [
|
|
1920
1922
|
"to",
|
|
1921
1923
|
"class",
|
|
1922
1924
|
"aria-current"
|
|
1923
1925
|
]);
|
|
1924
|
-
}), 128))], 8, _hoisted_2$
|
|
1926
|
+
}), 128))], 8, _hoisted_2$14)]);
|
|
1925
1927
|
};
|
|
1926
1928
|
}
|
|
1927
1929
|
}), [["__scopeId", "data-v-a76891c4"]]);
|
|
1928
1930
|
//#endregion
|
|
1929
1931
|
//#region src/components/AvatarStack.vue?vue&type=script&setup=true&lang.ts
|
|
1930
|
-
var _hoisted_1$
|
|
1931
|
-
var _hoisted_2$
|
|
1932
|
+
var _hoisted_1$16 = ["aria-label"];
|
|
1933
|
+
var _hoisted_2$13 = {
|
|
1932
1934
|
key: 0,
|
|
1933
1935
|
class: "rk-stack-item rk-stack-rest",
|
|
1934
1936
|
"aria-hidden": "true"
|
|
@@ -1966,18 +1968,18 @@ var AvatarStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
1966
1968
|
"src",
|
|
1967
1969
|
"size"
|
|
1968
1970
|
])]);
|
|
1969
|
-
}), 128)), rest.value ? (openBlock(), createElementBlock("span", _hoisted_2$
|
|
1971
|
+
}), 128)), rest.value ? (openBlock(), createElementBlock("span", _hoisted_2$13, "+" + toDisplayString(rest.value), 1)) : createCommentVNode("", true)], 10, _hoisted_1$16);
|
|
1970
1972
|
};
|
|
1971
1973
|
}
|
|
1972
1974
|
}), [["__scopeId", "data-v-db629481"]]);
|
|
1973
1975
|
//#endregion
|
|
1974
1976
|
//#region src/components/BaseCalendar.vue?vue&type=script&setup=true&lang.ts
|
|
1975
|
-
var _hoisted_1$
|
|
1976
|
-
var _hoisted_2$
|
|
1977
|
-
var _hoisted_3$
|
|
1978
|
-
var _hoisted_4$
|
|
1979
|
-
var _hoisted_5$
|
|
1980
|
-
var _hoisted_6$
|
|
1977
|
+
var _hoisted_1$15 = { class: "rk-cal" };
|
|
1978
|
+
var _hoisted_2$12 = { class: "rk-cal-head" };
|
|
1979
|
+
var _hoisted_3$9 = ["aria-label"];
|
|
1980
|
+
var _hoisted_4$6 = ["aria-expanded"];
|
|
1981
|
+
var _hoisted_5$4 = ["aria-label"];
|
|
1982
|
+
var _hoisted_6$4 = {
|
|
1981
1983
|
key: 0,
|
|
1982
1984
|
class: "rk-cal-weekdays",
|
|
1983
1985
|
"aria-hidden": "true"
|
|
@@ -2169,8 +2171,8 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
2169
2171
|
if (next) focused.value = next;
|
|
2170
2172
|
});
|
|
2171
2173
|
return (_ctx, _cache) => {
|
|
2172
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
2173
|
-
createElementVNode("div", _hoisted_2$
|
|
2174
|
+
return openBlock(), createElementBlock("div", _hoisted_1$15, [
|
|
2175
|
+
createElementVNode("div", _hoisted_2$12, [
|
|
2174
2176
|
createElementVNode("button", {
|
|
2175
2177
|
type: "button",
|
|
2176
2178
|
class: "rk-cal-arrow focus-ring",
|
|
@@ -2179,13 +2181,13 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
2179
2181
|
}, [createVNode(unref(ChevronLeft), {
|
|
2180
2182
|
class: "size-4",
|
|
2181
2183
|
"aria-hidden": "true"
|
|
2182
|
-
})], 8, _hoisted_3$
|
|
2184
|
+
})], 8, _hoisted_3$9),
|
|
2183
2185
|
createElementVNode("button", {
|
|
2184
2186
|
type: "button",
|
|
2185
2187
|
class: "rk-cal-title focus-ring",
|
|
2186
2188
|
"aria-expanded": view.value !== "days",
|
|
2187
2189
|
onClick: cycleView
|
|
2188
|
-
}, toDisplayString(view.value === "years" ? `${years.value[0]} – ${years.value[11]}` : monthTitle.value), 9, _hoisted_4$
|
|
2190
|
+
}, toDisplayString(view.value === "years" ? `${years.value[0]} – ${years.value[11]}` : monthTitle.value), 9, _hoisted_4$6),
|
|
2189
2191
|
createElementVNode("button", {
|
|
2190
2192
|
type: "button",
|
|
2191
2193
|
class: "rk-cal-arrow focus-ring",
|
|
@@ -2194,9 +2196,9 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
2194
2196
|
}, [createVNode(unref(ChevronRight), {
|
|
2195
2197
|
class: "size-4",
|
|
2196
2198
|
"aria-hidden": "true"
|
|
2197
|
-
})], 8, _hoisted_5$
|
|
2199
|
+
})], 8, _hoisted_5$4)
|
|
2198
2200
|
]),
|
|
2199
|
-
view.value === "days" ? (openBlock(), createElementBlock("div", _hoisted_6$
|
|
2201
|
+
view.value === "days" ? (openBlock(), createElementBlock("div", _hoisted_6$4, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekdays.value, (day) => {
|
|
2200
2202
|
return openBlock(), createElementBlock("span", { key: day.long }, toDisplayString(day.short), 1);
|
|
2201
2203
|
}), 128))])) : createCommentVNode("", true),
|
|
2202
2204
|
view.value === "days" ? (openBlock(), createElementBlock("div", {
|
|
@@ -2252,8 +2254,8 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
2252
2254
|
}), [["__scopeId", "data-v-6d0b0811"]]);
|
|
2253
2255
|
//#endregion
|
|
2254
2256
|
//#region src/components/BaseChip.vue?vue&type=script&setup=true&lang.ts
|
|
2255
|
-
var _hoisted_1$
|
|
2256
|
-
var _hoisted_2$
|
|
2257
|
+
var _hoisted_1$14 = { class: "truncate" };
|
|
2258
|
+
var _hoisted_2$11 = ["aria-label", "disabled"];
|
|
2257
2259
|
//#endregion
|
|
2258
2260
|
//#region src/components/BaseChip.vue
|
|
2259
2261
|
var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -2292,7 +2294,7 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
2292
2294
|
class: "size-3.5 shrink-0",
|
|
2293
2295
|
"aria-hidden": "true"
|
|
2294
2296
|
})) : createCommentVNode("", true),
|
|
2295
|
-
createElementVNode("span", _hoisted_1$
|
|
2297
|
+
createElementVNode("span", _hoisted_1$14, toDisplayString(__props.label), 1),
|
|
2296
2298
|
__props.removeLabel ? (openBlock(), createElementBlock("button", {
|
|
2297
2299
|
key: 1,
|
|
2298
2300
|
type: "button",
|
|
@@ -2303,7 +2305,7 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
2303
2305
|
}, [createVNode(unref(X), {
|
|
2304
2306
|
class: "size-3",
|
|
2305
2307
|
"aria-hidden": "true"
|
|
2306
|
-
})], 8, _hoisted_2$
|
|
2308
|
+
})], 8, _hoisted_2$11)) : createCommentVNode("", true)
|
|
2307
2309
|
]),
|
|
2308
2310
|
_: 1
|
|
2309
2311
|
}, 8, [
|
|
@@ -2317,12 +2319,12 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
2317
2319
|
}), [["__scopeId", "data-v-e9026659"]]);
|
|
2318
2320
|
//#endregion
|
|
2319
2321
|
//#region src/components/BaseKbd.vue?vue&type=script&setup=true&lang.ts
|
|
2320
|
-
var _hoisted_1$
|
|
2322
|
+
var _hoisted_1$13 = {
|
|
2321
2323
|
key: 0,
|
|
2322
2324
|
class: "rk-kbd-joiner",
|
|
2323
2325
|
"aria-hidden": "true"
|
|
2324
2326
|
};
|
|
2325
|
-
var _hoisted_2$
|
|
2327
|
+
var _hoisted_2$10 = { class: "rk-kbd-key control" };
|
|
2326
2328
|
//#endregion
|
|
2327
2329
|
//#region src/components/BaseKbd.vue
|
|
2328
2330
|
var BaseKbd_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -2336,12 +2338,139 @@ var BaseKbd_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
2336
2338
|
const list = computed(() => typeof __props.keys === "string" ? [__props.keys] : __props.keys);
|
|
2337
2339
|
return (_ctx, _cache) => {
|
|
2338
2340
|
return openBlock(), createElementBlock("span", { class: normalizeClass(["rk-kbd", `is-${__props.size}`]) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(list.value, (key, index) => {
|
|
2339
|
-
return openBlock(), createElementBlock(Fragment, { key }, [index > 0 && __props.joiner ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
2341
|
+
return openBlock(), createElementBlock(Fragment, { key }, [index > 0 && __props.joiner ? (openBlock(), createElementBlock("span", _hoisted_1$13, toDisplayString(__props.joiner), 1)) : createCommentVNode("", true), createElementVNode("kbd", _hoisted_2$10, toDisplayString(key), 1)], 64);
|
|
2340
2342
|
}), 128))], 2);
|
|
2341
2343
|
};
|
|
2342
2344
|
}
|
|
2343
2345
|
}), [["__scopeId", "data-v-e4b97bbe"]]);
|
|
2344
2346
|
//#endregion
|
|
2347
|
+
//#region src/components/BaseListbox.vue?vue&type=script&setup=true&lang.ts
|
|
2348
|
+
var _hoisted_1$12 = [
|
|
2349
|
+
"aria-label",
|
|
2350
|
+
"aria-multiselectable",
|
|
2351
|
+
"aria-activedescendant"
|
|
2352
|
+
];
|
|
2353
|
+
var _hoisted_2$9 = [
|
|
2354
|
+
"id",
|
|
2355
|
+
"aria-selected",
|
|
2356
|
+
"aria-disabled",
|
|
2357
|
+
"onClick"
|
|
2358
|
+
];
|
|
2359
|
+
var _hoisted_3$8 = { class: "min-w-0 flex-1" };
|
|
2360
|
+
var _hoisted_4$5 = { class: "rk-listbox-label" };
|
|
2361
|
+
var _hoisted_5$3 = {
|
|
2362
|
+
key: 0,
|
|
2363
|
+
class: "rk-listbox-description"
|
|
2364
|
+
};
|
|
2365
|
+
var _hoisted_6$3 = {
|
|
2366
|
+
key: 0,
|
|
2367
|
+
class: "rk-listbox-empty"
|
|
2368
|
+
};
|
|
2369
|
+
//#endregion
|
|
2370
|
+
//#region src/components/BaseListbox.vue
|
|
2371
|
+
var BaseListbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2372
|
+
__name: "BaseListbox",
|
|
2373
|
+
props: {
|
|
2374
|
+
modelValue: { default: () => void 0 },
|
|
2375
|
+
options: {},
|
|
2376
|
+
label: {},
|
|
2377
|
+
mode: { default: "single" },
|
|
2378
|
+
height: { default: "14rem" }
|
|
2379
|
+
},
|
|
2380
|
+
emits: ["update:modelValue"],
|
|
2381
|
+
setup(__props, { emit: __emit }) {
|
|
2382
|
+
const emit = __emit;
|
|
2383
|
+
const model = useBoundValue(() => __props.modelValue, (value) => emit("update:modelValue", value));
|
|
2384
|
+
const id = useId();
|
|
2385
|
+
const active = ref(0);
|
|
2386
|
+
let typed = "";
|
|
2387
|
+
let typedAt = 0;
|
|
2388
|
+
const chosen = computed(() => {
|
|
2389
|
+
const value = model.value;
|
|
2390
|
+
if (Array.isArray(value)) return new Set(value);
|
|
2391
|
+
return new Set(value === void 0 ? [] : [value]);
|
|
2392
|
+
});
|
|
2393
|
+
function select(option) {
|
|
2394
|
+
if (option.disabled) return;
|
|
2395
|
+
if (__props.mode === "multiple") {
|
|
2396
|
+
const next = new Set(chosen.value);
|
|
2397
|
+
if (next.has(option.value)) next.delete(option.value);
|
|
2398
|
+
else next.add(option.value);
|
|
2399
|
+
model.value = __props.options.map((one) => one.value).filter((value) => next.has(value));
|
|
2400
|
+
return;
|
|
2401
|
+
}
|
|
2402
|
+
model.value = option.value;
|
|
2403
|
+
}
|
|
2404
|
+
function moveTo(index) {
|
|
2405
|
+
if (__props.options.length === 0) return;
|
|
2406
|
+
active.value = Math.max(0, Math.min(__props.options.length - 1, index));
|
|
2407
|
+
const option = __props.options[active.value];
|
|
2408
|
+
if (__props.mode === "single" && option && !option.disabled) select(option);
|
|
2409
|
+
document.getElementById(`${id}-${active.value}`)?.scrollIntoView?.({ block: "nearest" });
|
|
2410
|
+
}
|
|
2411
|
+
/** The next option after the current one that starts with what was typed. */
|
|
2412
|
+
function jumpTo(letter) {
|
|
2413
|
+
const now = Date.now();
|
|
2414
|
+
typed = now - typedAt > 700 ? letter : typed + letter;
|
|
2415
|
+
typedAt = now;
|
|
2416
|
+
const from = typed.length === 1 ? active.value + 1 : active.value;
|
|
2417
|
+
const found = [...__props.options.slice(from), ...__props.options.slice(0, from)].find((option) => !option.disabled && option.label.toLowerCase().startsWith(typed.toLowerCase()));
|
|
2418
|
+
if (found) moveTo(__props.options.indexOf(found));
|
|
2419
|
+
}
|
|
2420
|
+
function onKeydown(event) {
|
|
2421
|
+
const moves = {
|
|
2422
|
+
ArrowDown: active.value + 1,
|
|
2423
|
+
ArrowUp: active.value - 1,
|
|
2424
|
+
Home: 0,
|
|
2425
|
+
End: __props.options.length - 1
|
|
2426
|
+
};
|
|
2427
|
+
if (event.key in moves) {
|
|
2428
|
+
event.preventDefault();
|
|
2429
|
+
moveTo(moves[event.key]);
|
|
2430
|
+
return;
|
|
2431
|
+
}
|
|
2432
|
+
if (event.key === " " || event.key === "Enter") {
|
|
2433
|
+
const option = __props.options[active.value];
|
|
2434
|
+
if (!option) return;
|
|
2435
|
+
event.preventDefault();
|
|
2436
|
+
select(option);
|
|
2437
|
+
return;
|
|
2438
|
+
}
|
|
2439
|
+
if (event.key.length === 1 && !event.metaKey && !event.ctrlKey && !event.altKey) jumpTo(event.key);
|
|
2440
|
+
}
|
|
2441
|
+
return (_ctx, _cache) => {
|
|
2442
|
+
return openBlock(), createElementBlock("div", {
|
|
2443
|
+
class: "rk-listbox control",
|
|
2444
|
+
style: normalizeStyle({ maxHeight: __props.height }),
|
|
2445
|
+
role: "listbox",
|
|
2446
|
+
tabindex: "0",
|
|
2447
|
+
"aria-label": __props.label,
|
|
2448
|
+
"aria-multiselectable": __props.mode === "multiple" ? true : void 0,
|
|
2449
|
+
"aria-activedescendant": __props.options.length ? `${unref(id)}-${active.value}` : void 0,
|
|
2450
|
+
onKeydown
|
|
2451
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option, index) => {
|
|
2452
|
+
return openBlock(), createElementBlock("div", {
|
|
2453
|
+
id: `${unref(id)}-${index}`,
|
|
2454
|
+
key: option.value,
|
|
2455
|
+
class: normalizeClass(["rk-listbox-option", {
|
|
2456
|
+
"is-active": index === active.value,
|
|
2457
|
+
"is-chosen": chosen.value.has(option.value),
|
|
2458
|
+
"is-disabled": option.disabled
|
|
2459
|
+
}]),
|
|
2460
|
+
role: "option",
|
|
2461
|
+
"aria-selected": chosen.value.has(option.value),
|
|
2462
|
+
"aria-disabled": option.disabled,
|
|
2463
|
+
onClick: ($event) => (active.value = index, select(option))
|
|
2464
|
+
}, [createElementVNode("span", _hoisted_3$8, [createElementVNode("span", _hoisted_4$5, toDisplayString(option.label), 1), option.description ? (openBlock(), createElementBlock("span", _hoisted_5$3, toDisplayString(option.description), 1)) : createCommentVNode("", true)]), chosen.value.has(option.value) ? (openBlock(), createBlock(unref(Check), {
|
|
2465
|
+
key: 0,
|
|
2466
|
+
class: "size-4 shrink-0",
|
|
2467
|
+
"aria-hidden": "true"
|
|
2468
|
+
})) : createCommentVNode("", true)], 10, _hoisted_2$9);
|
|
2469
|
+
}), 128)), __props.options.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_6$3)) : createCommentVNode("", true)], 44, _hoisted_1$12);
|
|
2470
|
+
};
|
|
2471
|
+
}
|
|
2472
|
+
}), [["__scopeId", "data-v-95e230a5"]]);
|
|
2473
|
+
//#endregion
|
|
2345
2474
|
//#region src/components/BaseLink.vue
|
|
2346
2475
|
var BaseLink_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2347
2476
|
__name: "BaseLink",
|
|
@@ -2507,43 +2636,6 @@ var BaseSeparator_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
2507
2636
|
}
|
|
2508
2637
|
}), [["__scopeId", "data-v-9f8cc9aa"]]);
|
|
2509
2638
|
//#endregion
|
|
2510
|
-
//#region src/components/BaseSkeleton.vue
|
|
2511
|
-
var BaseSkeleton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
2512
|
-
__name: "BaseSkeleton",
|
|
2513
|
-
props: {
|
|
2514
|
-
width: { default: "100%" },
|
|
2515
|
-
height: { default: "1rem" },
|
|
2516
|
-
shape: { default: "block" }
|
|
2517
|
-
},
|
|
2518
|
-
setup(__props) {
|
|
2519
|
-
/**
|
|
2520
|
-
* One grey box standing in for content that has not arrived.
|
|
2521
|
-
*
|
|
2522
|
-
* `SkeletonList` is rows of these for a list; this is the primitive, for the
|
|
2523
|
-
* shapes a list does not cover — an avatar, a heading, a chart.
|
|
2524
|
-
*
|
|
2525
|
-
* A height is a CSS length, never a class: `h-4` inside a component the app
|
|
2526
|
-
* does not control would render at zero the day that utility is not in the
|
|
2527
|
-
* app's stylesheet, which is exactly how every skeleton in one app came out
|
|
2528
|
-
* invisible.
|
|
2529
|
-
*
|
|
2530
|
-
* It is hidden from assistive tech. The thing that is loading says so —
|
|
2531
|
-
* through `aria-busy`, or a status message — and a screen reader reading
|
|
2532
|
-
* "blank, blank, blank" helps nobody.
|
|
2533
|
-
*/
|
|
2534
|
-
return (_ctx, _cache) => {
|
|
2535
|
-
return openBlock(), createElementBlock("span", {
|
|
2536
|
-
class: normalizeClass(["rk-skeleton", `is-${__props.shape}`]),
|
|
2537
|
-
style: normalizeStyle({
|
|
2538
|
-
width: __props.shape === "circle" ? __props.height : __props.width,
|
|
2539
|
-
height: __props.height
|
|
2540
|
-
}),
|
|
2541
|
-
"aria-hidden": "true"
|
|
2542
|
-
}, null, 6);
|
|
2543
|
-
};
|
|
2544
|
-
}
|
|
2545
|
-
}), [["__scopeId", "data-v-37327de6"]]);
|
|
2546
|
-
//#endregion
|
|
2547
2639
|
//#region src/components/CopyButton.vue?vue&type=script&setup=true&lang.ts
|
|
2548
2640
|
var _hoisted_1$9 = ["aria-label"];
|
|
2549
2641
|
var _hoisted_2$7 = { key: 2 };
|
|
@@ -3831,8 +3923,8 @@ function createI18nRuntime(options) {
|
|
|
3831
3923
|
*
|
|
3832
3924
|
* The fallback keeps `vitest` and `vite dev` honest, where no define runs.
|
|
3833
3925
|
*/
|
|
3834
|
-
var VERSION = "2.
|
|
3926
|
+
var VERSION = "2.8.0";
|
|
3835
3927
|
//#endregion
|
|
3836
|
-
export { AppError, AvatarStack_default as AvatarStack, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseMenu_default as BaseMenu, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, CircularProgress_default as CircularProgress, CopyButton_default as CopyButton, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, addDays, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, ensureSheetRoot, formatDate, formatNumber, fromDateKey, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, toRedirectPath, todayKey, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
|
|
3928
|
+
export { AppError, AvatarStack_default as AvatarStack, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseListbox_default as BaseListbox, BaseMenu_default as BaseMenu, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, CircularProgress_default as CircularProgress, CopyButton_default as CopyButton, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, addDays, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, ensureSheetRoot, formatDate, formatNumber, fromDateKey, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, toRedirectPath, todayKey, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
|
|
3837
3929
|
|
|
3838
3930
|
//# sourceMappingURL=index.js.map
|