rei-kit 0.13.0 → 0.14.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/BaseSheet-CLIhXDwe.js +253 -0
- package/dist/BaseSheet-CLIhXDwe.js.map +1 -0
- package/dist/{_plugin-vue_export-helper-3AcMDTtW.js → SettingsGroup-DtEB_Hrd.js} +12 -148
- package/dist/SettingsGroup-DtEB_Hrd.js.map +1 -0
- package/dist/SettingsRow-MnVleeTR.js +217 -0
- package/dist/SettingsRow-MnVleeTR.js.map +1 -0
- package/dist/app/LocaleSheet.vue.d.ts +36 -0
- package/dist/app/TourShell.vue.d.ts +74 -0
- package/dist/app/index.d.ts +2 -0
- package/dist/app.js +226 -9
- package/dist/app.js.map +1 -1
- package/dist/index.js +77 -309
- package/dist/index.js.map +1 -1
- package/dist/pwa/InstallSettings.vue.d.ts +26 -0
- package/dist/pwa/index.d.ts +1 -0
- package/dist/pwa.js +50 -3
- package/dist/pwa.js.map +1 -1
- package/dist/styles.css +45 -0
- package/package.json +1 -1
- package/dist/_plugin-vue_export-helper-3AcMDTtW.js.map +0 -1
- package/dist/use-theme-_MnaDD5v.js +0 -94
- package/dist/use-theme-_MnaDD5v.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { a as
|
|
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-DtEB_Hrd.js";
|
|
2
2
|
import { n as registerErrorMapper, r as toAppError, t as AppError } from "./app-error-DF9cijE0.js";
|
|
3
|
-
import { a as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { a as readStoredTheme, i as isThemePreference, n as useVisualViewport, o as setThemeStorageKey, r as applyTheme, s as useTheme, t as BaseSheet_default } from "./BaseSheet-CLIhXDwe.js";
|
|
4
|
+
import { n as _plugin_vue_export_helper_default, r as BaseButton_default, t as SettingsRow_default } from "./SettingsRow-MnVleeTR.js";
|
|
5
|
+
import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, normalizeStyle, onBeforeUnmount, onErrorCaptured, onMounted, onScopeDispose, onUnmounted, openBlock, readonly, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useId, useModel, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
6
|
+
import { ArrowDown, ArrowRight, ArrowUp, CheckCircle2, ChevronDown, Info, TriangleAlert, X, XCircle } from "lucide-vue-next";
|
|
6
7
|
import { RouterLink } from "vue-router";
|
|
7
8
|
import { createI18n } from "vue-i18n";
|
|
8
9
|
//#region src/utils/format.ts
|
|
@@ -415,47 +416,6 @@ function useMediaQuery(query) {
|
|
|
415
416
|
return matches;
|
|
416
417
|
}
|
|
417
418
|
//#endregion
|
|
418
|
-
//#region src/composables/use-visual-viewport.ts
|
|
419
|
-
/**
|
|
420
|
-
* Tracks the visual viewport.
|
|
421
|
-
*
|
|
422
|
-
* Chrome and Android browsers honour `interactive-widget=resizes-content`, so
|
|
423
|
-
* the layout viewport already shrinks for the keyboard there. Safari on iOS
|
|
424
|
-
* does not implement it: it shrinks only the *visual* viewport, leaving a sheet
|
|
425
|
-
* sized in `dvh` sitting partly underneath the keyboard.
|
|
426
|
-
*
|
|
427
|
-
* `null` means the API is unavailable, which callers should read as "trust the
|
|
428
|
-
* layout viewport" rather than as zero. A server has no viewport at all, so it
|
|
429
|
-
* gets that same `null` — this runs during `setup`, and a component using it
|
|
430
|
-
* has to survive being rendered there.
|
|
431
|
-
*
|
|
432
|
-
* @example
|
|
433
|
-
* ```ts
|
|
434
|
-
* const viewport = useVisualViewport()
|
|
435
|
-
* // :style="viewport ? { height: `${viewport.height}px` } : undefined"
|
|
436
|
-
* ```
|
|
437
|
-
*/
|
|
438
|
-
function useVisualViewport() {
|
|
439
|
-
const rect = ref(null);
|
|
440
|
-
const viewport = typeof window === "undefined" ? void 0 : window.visualViewport;
|
|
441
|
-
if (!viewport) return readonly(rect);
|
|
442
|
-
function read() {
|
|
443
|
-
if (!viewport) return;
|
|
444
|
-
rect.value = {
|
|
445
|
-
height: viewport.height,
|
|
446
|
-
offsetTop: viewport.offsetTop
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
read();
|
|
450
|
-
viewport.addEventListener("resize", read);
|
|
451
|
-
viewport.addEventListener("scroll", read);
|
|
452
|
-
onScopeDispose(() => {
|
|
453
|
-
viewport.removeEventListener("resize", read);
|
|
454
|
-
viewport.removeEventListener("scroll", read);
|
|
455
|
-
});
|
|
456
|
-
return readonly(rect);
|
|
457
|
-
}
|
|
458
|
-
//#endregion
|
|
459
419
|
//#region src/composables/use-toast.ts
|
|
460
420
|
/**
|
|
461
421
|
* Four seconds: long enough to read a short sentence twice, short enough that
|
|
@@ -567,9 +527,9 @@ function useToast() {
|
|
|
567
527
|
}
|
|
568
528
|
//#endregion
|
|
569
529
|
//#region src/components/BaseAlert.vue?vue&type=script&setup=true&lang.ts
|
|
570
|
-
var _hoisted_1$
|
|
571
|
-
var _hoisted_2$
|
|
572
|
-
var _hoisted_3$
|
|
530
|
+
var _hoisted_1$18 = ["role", "aria-live"];
|
|
531
|
+
var _hoisted_2$13 = { class: "min-w-0 flex-1" };
|
|
532
|
+
var _hoisted_3$8 = {
|
|
573
533
|
key: 0,
|
|
574
534
|
class: "text-ink font-semibold"
|
|
575
535
|
};
|
|
@@ -610,9 +570,9 @@ var BaseAlert_default = /* @__PURE__ */ defineComponent({
|
|
|
610
570
|
class: normalizeClass(["mt-px grid size-6 shrink-0 place-items-center rounded-full text-xs font-semibold", mark.value]),
|
|
611
571
|
"aria-hidden": "true"
|
|
612
572
|
}, [renderSlot(_ctx.$slots, "mark")], 2)) : createCommentVNode("", true),
|
|
613
|
-
createElementVNode("div", _hoisted_2$
|
|
573
|
+
createElementVNode("div", _hoisted_2$13, [_ctx.$slots.title ? (openBlock(), createElementBlock("p", _hoisted_3$8, [renderSlot(_ctx.$slots, "title")])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(_ctx.$slots.title ? "mt-1" : "") }, [renderSlot(_ctx.$slots, "default")], 2)]),
|
|
614
574
|
renderSlot(_ctx.$slots, "action")
|
|
615
|
-
], 10, _hoisted_1$
|
|
575
|
+
], 10, _hoisted_1$18);
|
|
616
576
|
};
|
|
617
577
|
}
|
|
618
578
|
});
|
|
@@ -637,7 +597,7 @@ var BaseBadge_default = /* @__PURE__ */ defineComponent({
|
|
|
637
597
|
});
|
|
638
598
|
//#endregion
|
|
639
599
|
//#region src/components/FormField.vue?vue&type=script&setup=true&lang.ts
|
|
640
|
-
var _hoisted_1$
|
|
600
|
+
var _hoisted_1$17 = ["for"];
|
|
641
601
|
//#endregion
|
|
642
602
|
//#region src/components/FormField.vue
|
|
643
603
|
var FormField_default = /* @__PURE__ */ defineComponent({
|
|
@@ -665,7 +625,7 @@ var FormField_default = /* @__PURE__ */ defineComponent({
|
|
|
665
625
|
createElementVNode("label", {
|
|
666
626
|
for: unref(id),
|
|
667
627
|
class: normalizeClass(["font-medium", [__props.labelHidden ? "sr-only" : "", __props.size === "sm" ? "text-ink-soft text-xs" : "text-ink text-sm"]])
|
|
668
|
-
}, toDisplayString(__props.label), 11, _hoisted_1$
|
|
628
|
+
}, toDisplayString(__props.label), 11, _hoisted_1$17),
|
|
669
629
|
renderSlot(_ctx.$slots, "default", {
|
|
670
630
|
id: unref(id),
|
|
671
631
|
describedBy: describedBy.value,
|
|
@@ -687,7 +647,7 @@ var FormField_default = /* @__PURE__ */ defineComponent({
|
|
|
687
647
|
});
|
|
688
648
|
//#endregion
|
|
689
649
|
//#region src/components/BaseInput.vue?vue&type=script&setup=true&lang.ts
|
|
690
|
-
var _hoisted_1$
|
|
650
|
+
var _hoisted_1$16 = [
|
|
691
651
|
"id",
|
|
692
652
|
"type",
|
|
693
653
|
"aria-invalid",
|
|
@@ -735,7 +695,7 @@ var BaseInput_default = /* @__PURE__ */ defineComponent({
|
|
|
735
695
|
__props.variant === "unstyled" ? "" : "border-hair bg-surface text-ink rounded-card focus-visible:outline-primary border px-3 focus-visible:outline-2 focus-visible:outline-offset-1",
|
|
736
696
|
__props.variant === "unstyled" ? "text-base" : CONTROL_CLASS,
|
|
737
697
|
__props.variant !== "unstyled" && invalid ? "border-negative" : ""
|
|
738
|
-
] }), null, 16, _hoisted_1$
|
|
698
|
+
] }), null, 16, _hoisted_1$16), [[vModelDynamic, model.value]])]),
|
|
739
699
|
_: 1
|
|
740
700
|
}, 8, [
|
|
741
701
|
"label",
|
|
@@ -748,122 +708,6 @@ var BaseInput_default = /* @__PURE__ */ defineComponent({
|
|
|
748
708
|
}
|
|
749
709
|
});
|
|
750
710
|
//#endregion
|
|
751
|
-
//#region src/components/BaseSheet.vue?vue&type=script&setup=true&lang.ts
|
|
752
|
-
var _hoisted_1$18 = { class: "shell-frame md:rounded-shell relative flex max-h-full flex-col justify-end overflow-hidden" };
|
|
753
|
-
var _hoisted_2$15 = ["aria-label"];
|
|
754
|
-
var _hoisted_3$10 = { class: "flex shrink-0 items-start gap-3 px-6 pt-4 pb-5" };
|
|
755
|
-
var _hoisted_4$7 = { class: "min-w-0 flex-1" };
|
|
756
|
-
var _hoisted_5$4 = { class: "text-ink text-xl leading-tight font-semibold" };
|
|
757
|
-
var _hoisted_6$2 = {
|
|
758
|
-
key: 0,
|
|
759
|
-
class: "text-ink-soft mt-1 text-sm leading-snug"
|
|
760
|
-
};
|
|
761
|
-
var _hoisted_7$2 = { class: "min-h-0 flex-1 overflow-y-auto px-6 pb-[calc(2rem+env(safe-area-inset-bottom,0px))]" };
|
|
762
|
-
//#endregion
|
|
763
|
-
//#region src/components/BaseSheet.vue
|
|
764
|
-
var BaseSheet_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
765
|
-
__name: "BaseSheet",
|
|
766
|
-
props: /*@__PURE__*/ mergeModels({
|
|
767
|
-
title: {},
|
|
768
|
-
subtitle: { default: "" },
|
|
769
|
-
closeLabel: { default: "Close" }
|
|
770
|
-
}, {
|
|
771
|
-
"modelValue": {
|
|
772
|
-
type: Boolean,
|
|
773
|
-
required: true
|
|
774
|
-
},
|
|
775
|
-
"modelModifiers": {}
|
|
776
|
-
}),
|
|
777
|
-
emits: ["update:modelValue"],
|
|
778
|
-
setup(__props) {
|
|
779
|
-
const open = useModel(__props, "modelValue");
|
|
780
|
-
const viewport = useVisualViewport();
|
|
781
|
-
/**
|
|
782
|
-
* Pins the sheet to the area the keyboard has left visible.
|
|
783
|
-
*
|
|
784
|
-
* Only needed where the layout viewport does not shrink on its own — iOS. On
|
|
785
|
-
* Android the numbers already agree, so this is a no-op there rather than a
|
|
786
|
-
* second, competing adjustment.
|
|
787
|
-
*/
|
|
788
|
-
const viewportStyle = computed(() => viewport.value ? {
|
|
789
|
-
height: `${viewport.value.height}px`,
|
|
790
|
-
top: `${viewport.value.offsetTop}px`
|
|
791
|
-
} : void 0);
|
|
792
|
-
const panel = ref(null);
|
|
793
|
-
let lastFocused = null;
|
|
794
|
-
function close() {
|
|
795
|
-
open.value = false;
|
|
796
|
-
}
|
|
797
|
-
function onKeydown(event) {
|
|
798
|
-
if (event.key === "Escape") close();
|
|
799
|
-
}
|
|
800
|
-
watch(open, async (isOpen) => {
|
|
801
|
-
if (isOpen) {
|
|
802
|
-
setBackgroundInert(true);
|
|
803
|
-
lastFocused = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
804
|
-
window.addEventListener("keydown", onKeydown);
|
|
805
|
-
await nextTick();
|
|
806
|
-
panel.value?.focus();
|
|
807
|
-
} else {
|
|
808
|
-
window.removeEventListener("keydown", onKeydown);
|
|
809
|
-
lastFocused?.focus();
|
|
810
|
-
lastFocused = null;
|
|
811
|
-
setBackgroundInert(false);
|
|
812
|
-
}
|
|
813
|
-
});
|
|
814
|
-
/**
|
|
815
|
-
* `inert` takes the whole app out of tab order and pointer events while the
|
|
816
|
-
* sheet is open — a real focus trap without keydown bookkeeping.
|
|
817
|
-
*
|
|
818
|
-
* The sheet itself is teleported to `#sheet-root`, a sibling of `#app`, so it
|
|
819
|
-
* stays interactive.
|
|
820
|
-
*/
|
|
821
|
-
function setBackgroundInert(isInert) {
|
|
822
|
-
document.getElementById("app")?.toggleAttribute("inert", isInert);
|
|
823
|
-
}
|
|
824
|
-
onUnmounted(() => {
|
|
825
|
-
window.removeEventListener("keydown", onKeydown);
|
|
826
|
-
setBackgroundInert(false);
|
|
827
|
-
});
|
|
828
|
-
return (_ctx, _cache) => {
|
|
829
|
-
return openBlock(), createBlock(Teleport, { to: "#sheet-root" }, [createVNode(Transition, { name: "sheet" }, {
|
|
830
|
-
default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", {
|
|
831
|
-
key: 0,
|
|
832
|
-
class: "fixed inset-x-0 top-0 bottom-0 z-50 flex items-center justify-center",
|
|
833
|
-
style: normalizeStyle(viewportStyle.value)
|
|
834
|
-
}, [createElementVNode("div", _hoisted_1$18, [createElementVNode("div", {
|
|
835
|
-
class: "bg-ink/45 absolute inset-0 backdrop-blur-[2px]",
|
|
836
|
-
onClick: close
|
|
837
|
-
}), createElementVNode("section", {
|
|
838
|
-
ref_key: "panel",
|
|
839
|
-
ref: panel,
|
|
840
|
-
role: "dialog",
|
|
841
|
-
"aria-modal": "true",
|
|
842
|
-
"aria-label": __props.title,
|
|
843
|
-
tabindex: "-1",
|
|
844
|
-
class: "sheet-panel bg-surface relative flex max-h-[94%] min-h-[56dvh] flex-col rounded-t-[28px] shadow-2xl outline-none"
|
|
845
|
-
}, [
|
|
846
|
-
_cache[0] || (_cache[0] = createElementVNode("div", {
|
|
847
|
-
class: "flex shrink-0 justify-center pt-3",
|
|
848
|
-
"aria-hidden": "true"
|
|
849
|
-
}, [createElementVNode("span", { class: "bg-hair h-1.5 w-10 rounded-full" })], -1)),
|
|
850
|
-
createElementVNode("header", _hoisted_3$10, [createElementVNode("div", _hoisted_4$7, [createElementVNode("h2", _hoisted_5$4, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_6$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), createVNode(BaseButton_default, {
|
|
851
|
-
variant: "unstyled",
|
|
852
|
-
class: "text-ink-soft hover:bg-muted hover:text-ink -mt-1 flex size-10 shrink-0 items-center justify-center rounded-full transition-colors active:scale-90",
|
|
853
|
-
"aria-label": __props.closeLabel,
|
|
854
|
-
onClick: close
|
|
855
|
-
}, {
|
|
856
|
-
default: withCtx(() => [createVNode(unref(X), { class: "size-5" })]),
|
|
857
|
-
_: 1
|
|
858
|
-
}, 8, ["aria-label"])]),
|
|
859
|
-
createElementVNode("div", _hoisted_7$2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])
|
|
860
|
-
], 8, _hoisted_2$15)])], 4)) : createCommentVNode("", true)]),
|
|
861
|
-
_: 3
|
|
862
|
-
})]);
|
|
863
|
-
};
|
|
864
|
-
}
|
|
865
|
-
}), [["__scopeId", "data-v-51709579"]]);
|
|
866
|
-
//#endregion
|
|
867
711
|
//#region src/components/BaseCard.vue
|
|
868
712
|
var BaseCard_default = /* @__PURE__ */ defineComponent({
|
|
869
713
|
__name: "BaseCard",
|
|
@@ -930,9 +774,9 @@ var BaseCard_default = /* @__PURE__ */ defineComponent({
|
|
|
930
774
|
});
|
|
931
775
|
//#endregion
|
|
932
776
|
//#region src/components/BaseCheckbox.vue?vue&type=script&setup=true&lang.ts
|
|
933
|
-
var _hoisted_1$
|
|
934
|
-
var _hoisted_2$
|
|
935
|
-
var _hoisted_3$
|
|
777
|
+
var _hoisted_1$15 = { class: "flex flex-col gap-1.5" };
|
|
778
|
+
var _hoisted_2$12 = ["for"];
|
|
779
|
+
var _hoisted_3$7 = [
|
|
936
780
|
"id",
|
|
937
781
|
"disabled",
|
|
938
782
|
"aria-invalid",
|
|
@@ -969,7 +813,7 @@ var BaseCheckbox_default = /* @__PURE__ */ defineComponent({
|
|
|
969
813
|
if (__props.hint) return hintId;
|
|
970
814
|
});
|
|
971
815
|
return (_ctx, _cache) => {
|
|
972
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
816
|
+
return openBlock(), createElementBlock("div", _hoisted_1$15, [createElementVNode("label", {
|
|
973
817
|
for: unref(id),
|
|
974
818
|
class: normalizeClass(["flex items-center", [__props.size === "sm" ? "gap-2" : "gap-3", __props.disabled ? "opacity-50" : "cursor-pointer"]])
|
|
975
819
|
}, [withDirectives(createElementVNode("input", {
|
|
@@ -980,7 +824,7 @@ var BaseCheckbox_default = /* @__PURE__ */ defineComponent({
|
|
|
980
824
|
"aria-invalid": Boolean(__props.error),
|
|
981
825
|
"aria-describedby": describedBy.value,
|
|
982
826
|
class: "accent-primary focus-visible:outline-primary size-4 shrink-0 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
983
|
-
}, null, 8, _hoisted_3$
|
|
827
|
+
}, null, 8, _hoisted_3$7), [[vModelCheckbox, model.value]]), createElementVNode("span", { class: normalizeClass(["text-sm", __props.size === "sm" ? "text-ink-soft" : "text-ink"]) }, toDisplayString(__props.label), 3)], 10, _hoisted_2$12), __props.error ? (openBlock(), createElementBlock("p", {
|
|
984
828
|
key: 0,
|
|
985
829
|
id: errorId,
|
|
986
830
|
class: "text-negative text-xs"
|
|
@@ -994,13 +838,13 @@ var BaseCheckbox_default = /* @__PURE__ */ defineComponent({
|
|
|
994
838
|
});
|
|
995
839
|
//#endregion
|
|
996
840
|
//#region src/components/BaseRadioGroup.vue?vue&type=script&setup=true&lang.ts
|
|
997
|
-
var _hoisted_1$
|
|
998
|
-
var _hoisted_2$
|
|
841
|
+
var _hoisted_1$14 = ["aria-describedby"];
|
|
842
|
+
var _hoisted_2$11 = [
|
|
999
843
|
"name",
|
|
1000
844
|
"value",
|
|
1001
845
|
"disabled"
|
|
1002
846
|
];
|
|
1003
|
-
var _hoisted_3$
|
|
847
|
+
var _hoisted_3$6 = { class: "text-ink text-sm" };
|
|
1004
848
|
//#endregion
|
|
1005
849
|
//#region src/components/BaseRadioGroup.vue
|
|
1006
850
|
var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1045,7 +889,7 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
|
1045
889
|
value: option.value,
|
|
1046
890
|
disabled: option.disabled,
|
|
1047
891
|
class: "accent-primary focus-visible:outline-primary size-4 shrink-0 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
1048
|
-
}, null, 8, _hoisted_2$
|
|
892
|
+
}, null, 8, _hoisted_2$11), [[vModelRadio, model.value]]), createElementVNode("span", _hoisted_3$6, toDisplayString(option.label), 1)], 2);
|
|
1049
893
|
}), 128)),
|
|
1050
894
|
__props.error ? (openBlock(), createElementBlock("p", {
|
|
1051
895
|
key: 0,
|
|
@@ -1056,24 +900,24 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
|
|
|
1056
900
|
id: hintId,
|
|
1057
901
|
class: "text-ink-soft text-xs"
|
|
1058
902
|
}, toDisplayString(__props.hint), 1)) : createCommentVNode("", true)
|
|
1059
|
-
], 8, _hoisted_1$
|
|
903
|
+
], 8, _hoisted_1$14);
|
|
1060
904
|
};
|
|
1061
905
|
}
|
|
1062
906
|
});
|
|
1063
907
|
//#endregion
|
|
1064
908
|
//#region src/components/BaseSelect.vue?vue&type=script&setup=true&lang.ts
|
|
1065
|
-
var _hoisted_1$
|
|
1066
|
-
var _hoisted_2$
|
|
909
|
+
var _hoisted_1$13 = { class: "relative" };
|
|
910
|
+
var _hoisted_2$10 = [
|
|
1067
911
|
"id",
|
|
1068
912
|
"aria-invalid",
|
|
1069
913
|
"aria-describedby"
|
|
1070
914
|
];
|
|
1071
|
-
var _hoisted_3$
|
|
915
|
+
var _hoisted_3$5 = {
|
|
1072
916
|
key: 0,
|
|
1073
917
|
value: void 0,
|
|
1074
918
|
disabled: ""
|
|
1075
919
|
};
|
|
1076
|
-
var _hoisted_4$
|
|
920
|
+
var _hoisted_4$5 = ["value", "disabled"];
|
|
1077
921
|
//#endregion
|
|
1078
922
|
//#region src/components/BaseSelect.vue
|
|
1079
923
|
var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1109,7 +953,7 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
1109
953
|
"label-hidden": __props.labelHidden,
|
|
1110
954
|
size: __props.size
|
|
1111
955
|
}, {
|
|
1112
|
-
default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$
|
|
956
|
+
default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$13, [withDirectives(createElementVNode("select", {
|
|
1113
957
|
id,
|
|
1114
958
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
1115
959
|
"aria-invalid": invalid,
|
|
@@ -1119,13 +963,13 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
1119
963
|
__props.variant === "unstyled" ? "" : SIZE_CLASS[__props.size],
|
|
1120
964
|
__props.variant !== "unstyled" && invalid ? "border-negative" : ""
|
|
1121
965
|
]])
|
|
1122
|
-
}, [__props.placeholder ? (openBlock(), createElementBlock("option", _hoisted_3$
|
|
966
|
+
}, [__props.placeholder ? (openBlock(), createElementBlock("option", _hoisted_3$5, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
|
|
1123
967
|
return openBlock(), createElementBlock("option", {
|
|
1124
968
|
key: option.value,
|
|
1125
969
|
value: option.value,
|
|
1126
970
|
disabled: option.disabled
|
|
1127
|
-
}, toDisplayString(option.label), 9, _hoisted_4$
|
|
1128
|
-
}), 128))], 10, _hoisted_2$
|
|
971
|
+
}, toDisplayString(option.label), 9, _hoisted_4$5);
|
|
972
|
+
}), 128))], 10, _hoisted_2$10), [[vModelSelect, model.value]]), createVNode(unref(ChevronDown), {
|
|
1129
973
|
class: "text-ink-soft pointer-events-none absolute top-1/2 right-3 size-4 -translate-y-1/2",
|
|
1130
974
|
"aria-hidden": "true"
|
|
1131
975
|
})])]),
|
|
@@ -1142,7 +986,7 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
1142
986
|
});
|
|
1143
987
|
//#endregion
|
|
1144
988
|
//#region src/components/BaseTextarea.vue?vue&type=script&setup=true&lang.ts
|
|
1145
|
-
var _hoisted_1$
|
|
989
|
+
var _hoisted_1$12 = [
|
|
1146
990
|
"id",
|
|
1147
991
|
"rows",
|
|
1148
992
|
"aria-invalid",
|
|
@@ -1189,7 +1033,7 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
|
|
|
1189
1033
|
__props.variant === "unstyled" ? "" : "border-hair bg-surface text-ink rounded-card focus-visible:outline-primary resize-y border px-3 py-2 leading-relaxed focus-visible:outline-2 focus-visible:outline-offset-1",
|
|
1190
1034
|
"text-base",
|
|
1191
1035
|
__props.variant !== "unstyled" && invalid ? "border-negative" : ""
|
|
1192
|
-
] }), null, 16, _hoisted_1$
|
|
1036
|
+
] }), null, 16, _hoisted_1$12), [[vModelText, model.value]])]),
|
|
1193
1037
|
_: 1
|
|
1194
1038
|
}, 8, [
|
|
1195
1039
|
"label",
|
|
@@ -1203,17 +1047,17 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
|
|
|
1203
1047
|
});
|
|
1204
1048
|
//#endregion
|
|
1205
1049
|
//#region src/components/EmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
1206
|
-
var _hoisted_1$
|
|
1207
|
-
var _hoisted_2$
|
|
1050
|
+
var _hoisted_1$11 = { class: "flex flex-col items-center gap-3 px-6 py-10 text-center" };
|
|
1051
|
+
var _hoisted_2$9 = {
|
|
1208
1052
|
key: 0,
|
|
1209
1053
|
class: "bg-muted text-primary rounded-card flex size-12 items-center justify-center"
|
|
1210
1054
|
};
|
|
1211
|
-
var _hoisted_3$
|
|
1212
|
-
var _hoisted_4$
|
|
1055
|
+
var _hoisted_3$4 = { class: "text-ink text-base font-semibold" };
|
|
1056
|
+
var _hoisted_4$4 = {
|
|
1213
1057
|
key: 1,
|
|
1214
1058
|
class: "text-ink-soft max-w-[36ch] text-sm"
|
|
1215
1059
|
};
|
|
1216
|
-
var _hoisted_5$
|
|
1060
|
+
var _hoisted_5$2 = {
|
|
1217
1061
|
key: 2,
|
|
1218
1062
|
class: "mt-2 flex w-full flex-col gap-2"
|
|
1219
1063
|
};
|
|
@@ -1227,11 +1071,11 @@ var EmptyState_default = /* @__PURE__ */ defineComponent({
|
|
|
1227
1071
|
},
|
|
1228
1072
|
setup(__props) {
|
|
1229
1073
|
return (_ctx, _cache) => {
|
|
1230
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1231
|
-
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
1232
|
-
createElementVNode("h3", _hoisted_3$
|
|
1233
|
-
__props.description ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
1234
|
-
_ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5$
|
|
1074
|
+
return openBlock(), createElementBlock("div", _hoisted_1$11, [
|
|
1075
|
+
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$9, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
|
|
1076
|
+
createElementVNode("h3", _hoisted_3$4, toDisplayString(__props.title), 1),
|
|
1077
|
+
__props.description ? (openBlock(), createElementBlock("p", _hoisted_4$4, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
|
|
1078
|
+
_ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5$2, [renderSlot(_ctx.$slots, "action")])) : createCommentVNode("", true)
|
|
1235
1079
|
]);
|
|
1236
1080
|
};
|
|
1237
1081
|
}
|
|
@@ -1298,11 +1142,11 @@ var PageContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
1298
1142
|
});
|
|
1299
1143
|
//#endregion
|
|
1300
1144
|
//#region src/components/PageHeader.vue?vue&type=script&setup=true&lang.ts
|
|
1301
|
-
var _hoisted_1$
|
|
1302
|
-
var _hoisted_2$
|
|
1303
|
-
var _hoisted_3$
|
|
1304
|
-
var _hoisted_4$
|
|
1305
|
-
var _hoisted_5$
|
|
1145
|
+
var _hoisted_1$10 = { class: "grid h-12 shrink-0 grid-cols-[2.5rem_1fr_2.5rem] items-center" };
|
|
1146
|
+
var _hoisted_2$8 = { class: "justify-self-start" };
|
|
1147
|
+
var _hoisted_3$3 = { class: "text-ink flex min-w-0 justify-center text-base font-semibold tabular-nums" };
|
|
1148
|
+
var _hoisted_4$3 = { class: "truncate" };
|
|
1149
|
+
var _hoisted_5$1 = { class: "justify-self-end" };
|
|
1306
1150
|
//#endregion
|
|
1307
1151
|
//#region src/components/PageHeader.vue
|
|
1308
1152
|
var PageHeader_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1310,17 +1154,17 @@ var PageHeader_default = /* @__PURE__ */ defineComponent({
|
|
|
1310
1154
|
props: { title: {} },
|
|
1311
1155
|
setup(__props) {
|
|
1312
1156
|
return (_ctx, _cache) => {
|
|
1313
|
-
return openBlock(), createElementBlock("header", _hoisted_1$
|
|
1314
|
-
createElementVNode("div", _hoisted_2$
|
|
1315
|
-
createElementVNode("h1", _hoisted_3$
|
|
1316
|
-
createElementVNode("div", _hoisted_5$
|
|
1157
|
+
return openBlock(), createElementBlock("header", _hoisted_1$10, [
|
|
1158
|
+
createElementVNode("div", _hoisted_2$8, [renderSlot(_ctx.$slots, "left")]),
|
|
1159
|
+
createElementVNode("h1", _hoisted_3$3, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", _hoisted_4$3, toDisplayString(__props.title), 1)])]),
|
|
1160
|
+
createElementVNode("div", _hoisted_5$1, [renderSlot(_ctx.$slots, "right")])
|
|
1317
1161
|
]);
|
|
1318
1162
|
};
|
|
1319
1163
|
}
|
|
1320
1164
|
});
|
|
1321
1165
|
//#endregion
|
|
1322
1166
|
//#region src/components/ProgressBar.vue?vue&type=script&setup=true&lang.ts
|
|
1323
|
-
var _hoisted_1$
|
|
1167
|
+
var _hoisted_1$9 = ["aria-valuenow", "aria-label"];
|
|
1324
1168
|
//#endregion
|
|
1325
1169
|
//#region src/components/ProgressBar.vue
|
|
1326
1170
|
var ProgressBar_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1352,25 +1196,25 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
|
|
|
1352
1196
|
}, [createElementVNode("div", {
|
|
1353
1197
|
class: "bg-primary h-full rounded-full transition-[width] duration-700 ease-out",
|
|
1354
1198
|
style: normalizeStyle({ width: `${portion.value}%` })
|
|
1355
|
-
}, null, 4)], 10, _hoisted_1$
|
|
1199
|
+
}, null, 4)], 10, _hoisted_1$9);
|
|
1356
1200
|
};
|
|
1357
1201
|
}
|
|
1358
1202
|
});
|
|
1359
1203
|
//#endregion
|
|
1360
1204
|
//#region src/components/PriceCard.vue?vue&type=script&setup=true&lang.ts
|
|
1361
|
-
var _hoisted_1$
|
|
1205
|
+
var _hoisted_1$8 = {
|
|
1362
1206
|
key: 0,
|
|
1363
1207
|
class: "bg-primary rounded-cell absolute -top-3 left-7 px-3 py-1 text-[0.7rem] font-semibold text-white"
|
|
1364
1208
|
};
|
|
1365
|
-
var _hoisted_2$
|
|
1366
|
-
var _hoisted_3$
|
|
1367
|
-
var _hoisted_4$
|
|
1209
|
+
var _hoisted_2$7 = { class: "flex items-start justify-between gap-4" };
|
|
1210
|
+
var _hoisted_3$2 = { class: "text-ink mt-5 text-lg font-semibold" };
|
|
1211
|
+
var _hoisted_4$2 = {
|
|
1368
1212
|
key: 1,
|
|
1369
1213
|
class: "text-ink-soft mt-1.5 text-sm leading-relaxed"
|
|
1370
1214
|
};
|
|
1371
|
-
var _hoisted_5
|
|
1372
|
-
var _hoisted_6
|
|
1373
|
-
var _hoisted_7
|
|
1215
|
+
var _hoisted_5 = { class: "mt-6 flex items-baseline gap-1.5" };
|
|
1216
|
+
var _hoisted_6 = { class: "text-ink text-3xl font-semibold tracking-tight tabular-nums" };
|
|
1217
|
+
var _hoisted_7 = {
|
|
1374
1218
|
key: 0,
|
|
1375
1219
|
class: "text-ink-soft text-sm"
|
|
1376
1220
|
};
|
|
@@ -1433,17 +1277,17 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
|
|
|
1433
1277
|
const palette = computed(() => TONE[__props.tone]);
|
|
1434
1278
|
return (_ctx, _cache) => {
|
|
1435
1279
|
return openBlock(), createElementBlock("article", { class: normalizeClass(["bg-surface rounded-card relative flex h-full flex-col border p-7 shadow-[var(--shadow-card)] transition-[border-color,box-shadow,transform] duration-[420ms] hover:border-[color-mix(in_oklab,var(--color-primary)_60%,transparent)] hover:shadow-[var(--shadow-lift)] sm:p-8", [palette.value.ring, __props.recommended ? "shadow-[var(--shadow-lift)]" : "hover:-translate-y-0.5"]]) }, [
|
|
1436
|
-
__props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
1437
|
-
createElementVNode("div", _hoisted_2$
|
|
1280
|
+
__props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$8, toDisplayString(__props.badge), 1)) : createCommentVNode("", true),
|
|
1281
|
+
createElementVNode("div", _hoisted_2$7, [_ctx.$slots.icon ? (openBlock(), createElementBlock("span", {
|
|
1438
1282
|
key: 0,
|
|
1439
1283
|
class: normalizeClass(["rounded-card grid size-11 place-items-center text-xl", palette.value.icon])
|
|
1440
1284
|
}, [renderSlot(_ctx.$slots, "icon")], 2)) : createCommentVNode("", true), __props.chip ? (openBlock(), createElementBlock("span", {
|
|
1441
1285
|
key: 1,
|
|
1442
1286
|
class: normalizeClass(["rounded-cell ml-auto px-2.5 py-1 text-[0.7rem] font-medium", palette.value.soft])
|
|
1443
1287
|
}, toDisplayString(__props.chip), 3)) : createCommentVNode("", true)]),
|
|
1444
|
-
createElementVNode("h3", _hoisted_3$
|
|
1445
|
-
__props.lead ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
1446
|
-
createElementVNode("p", _hoisted_5
|
|
1288
|
+
createElementVNode("h3", _hoisted_3$2, toDisplayString(__props.name), 1),
|
|
1289
|
+
__props.lead ? (openBlock(), createElementBlock("p", _hoisted_4$2, toDisplayString(__props.lead), 1)) : createCommentVNode("", true),
|
|
1290
|
+
createElementVNode("p", _hoisted_5, [createElementVNode("span", _hoisted_6, toDisplayString(__props.price), 1), __props.period ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(__props.period), 1)) : createCommentVNode("", true)]),
|
|
1447
1291
|
__props.note ? (openBlock(), createElementBlock("p", _hoisted_8, toDisplayString(__props.note), 1)) : createCommentVNode("", true),
|
|
1448
1292
|
createElementVNode("ul", _hoisted_9, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.features, (feature) => {
|
|
1449
1293
|
return openBlock(), createElementBlock("li", {
|
|
@@ -1458,8 +1302,8 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
|
|
|
1458
1302
|
});
|
|
1459
1303
|
//#endregion
|
|
1460
1304
|
//#region src/components/ToneDot.vue?vue&type=script&setup=true&lang.ts
|
|
1461
|
-
var _hoisted_1$
|
|
1462
|
-
var _hoisted_2$
|
|
1305
|
+
var _hoisted_1$7 = { class: "inline-flex items-center gap-1.5" };
|
|
1306
|
+
var _hoisted_2$6 = {
|
|
1463
1307
|
key: 0,
|
|
1464
1308
|
class: "text-ink-soft text-xs font-medium"
|
|
1465
1309
|
};
|
|
@@ -1480,13 +1324,13 @@ var ToneDot_default = /* @__PURE__ */ defineComponent({
|
|
|
1480
1324
|
* priorities — without this component knowing about any of them.
|
|
1481
1325
|
*/
|
|
1482
1326
|
return (_ctx, _cache) => {
|
|
1483
|
-
return openBlock(), createElementBlock("span", _hoisted_1$
|
|
1327
|
+
return openBlock(), createElementBlock("span", _hoisted_1$7, [createElementVNode("span", { class: normalizeClass(["size-2 rounded-full", __props.fill]) }, null, 2), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$6, toDisplayString(__props.label), 1)) : createCommentVNode("", true)]);
|
|
1484
1328
|
};
|
|
1485
1329
|
}
|
|
1486
1330
|
});
|
|
1487
1331
|
//#endregion
|
|
1488
1332
|
//#region src/components/SectionHeading.vue?vue&type=script&setup=true&lang.ts
|
|
1489
|
-
var _hoisted_1$
|
|
1333
|
+
var _hoisted_1$6 = {
|
|
1490
1334
|
key: 0,
|
|
1491
1335
|
class: "text-ink-soft text-xs tabular-nums"
|
|
1492
1336
|
};
|
|
@@ -1504,15 +1348,15 @@ var SectionHeading_default = /* @__PURE__ */ defineComponent({
|
|
|
1504
1348
|
return openBlock(), createElementBlock("h2", { class: normalizeClass(["flex items-center gap-2 self-start rounded-full border px-3 py-1", __props.tone.card]) }, [
|
|
1505
1349
|
createVNode(ToneDot_default, { fill: __props.tone.fill }, null, 8, ["fill"]),
|
|
1506
1350
|
createElementVNode("span", { class: normalizeClass(["text-xs font-semibold tracking-wide uppercase", __props.tone.text]) }, toDisplayString(__props.label), 3),
|
|
1507
|
-
__props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
1351
|
+
__props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$6, toDisplayString(__props.count), 1)) : createCommentVNode("", true)
|
|
1508
1352
|
], 2);
|
|
1509
1353
|
};
|
|
1510
1354
|
}
|
|
1511
1355
|
});
|
|
1512
1356
|
//#endregion
|
|
1513
1357
|
//#region src/components/SegmentedControl.vue?vue&type=script&setup=true&lang.ts
|
|
1514
|
-
var _hoisted_1$
|
|
1515
|
-
var _hoisted_2$
|
|
1358
|
+
var _hoisted_1$5 = { class: "bg-muted rounded-card flex w-full gap-1 p-1" };
|
|
1359
|
+
var _hoisted_2$5 = ["value", "name"];
|
|
1516
1360
|
//#endregion
|
|
1517
1361
|
//#region src/components/SegmentedControl.vue
|
|
1518
1362
|
var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1526,7 +1370,7 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
|
1526
1370
|
const model = useModel(__props, "modelValue");
|
|
1527
1371
|
const name = useId();
|
|
1528
1372
|
return (_ctx, _cache) => {
|
|
1529
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1373
|
+
return openBlock(), createElementBlock("div", _hoisted_1$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
|
|
1530
1374
|
return openBlock(), createElementBlock("label", {
|
|
1531
1375
|
key: String(option.value),
|
|
1532
1376
|
class: "flex-1 cursor-pointer"
|
|
@@ -1536,88 +1380,12 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
|
|
|
1536
1380
|
value: option.value,
|
|
1537
1381
|
name: unref(name),
|
|
1538
1382
|
class: "sr-only"
|
|
1539
|
-
}, null, 8, _hoisted_2$
|
|
1383
|
+
}, null, 8, _hoisted_2$5), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["flex h-10 items-center justify-center rounded-xl px-2 text-sm font-medium transition-colors select-none", model.value === option.value ? "bg-surface text-ink shadow-sm" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
|
|
1540
1384
|
}), 128))]);
|
|
1541
1385
|
};
|
|
1542
1386
|
}
|
|
1543
1387
|
});
|
|
1544
1388
|
//#endregion
|
|
1545
|
-
//#region src/components/SettingsGroup.vue?vue&type=script&setup=true&lang.ts
|
|
1546
|
-
var _hoisted_1$6 = { class: "flex flex-col gap-2" };
|
|
1547
|
-
var _hoisted_2$6 = { class: "text-ink-soft px-1 text-xs font-semibold tracking-wide uppercase" };
|
|
1548
|
-
var _hoisted_3$3 = { class: "border-hair bg-surface rounded-card divide-hair divide-y overflow-hidden border" };
|
|
1549
|
-
//#endregion
|
|
1550
|
-
//#region src/components/SettingsGroup.vue
|
|
1551
|
-
var SettingsGroup_default = /* @__PURE__ */ defineComponent({
|
|
1552
|
-
__name: "SettingsGroup",
|
|
1553
|
-
props: { title: {} },
|
|
1554
|
-
setup(__props) {
|
|
1555
|
-
return (_ctx, _cache) => {
|
|
1556
|
-
return openBlock(), createElementBlock("section", _hoisted_1$6, [createElementVNode("h2", _hoisted_2$6, toDisplayString(__props.title), 1), createElementVNode("div", _hoisted_3$3, [renderSlot(_ctx.$slots, "default")])]);
|
|
1557
|
-
};
|
|
1558
|
-
}
|
|
1559
|
-
});
|
|
1560
|
-
//#endregion
|
|
1561
|
-
//#region src/components/SettingsRow.vue?vue&type=script&setup=true&lang.ts
|
|
1562
|
-
var _hoisted_1$5 = { class: "flex items-center gap-3" };
|
|
1563
|
-
var _hoisted_2$5 = {
|
|
1564
|
-
key: 0,
|
|
1565
|
-
class: "bg-muted text-ink-soft flex size-9 shrink-0 items-center justify-center rounded-xl",
|
|
1566
|
-
"aria-hidden": "true"
|
|
1567
|
-
};
|
|
1568
|
-
var _hoisted_3$2 = { class: "min-w-0 flex-1" };
|
|
1569
|
-
var _hoisted_4$2 = { class: "text-ink text-sm font-medium" };
|
|
1570
|
-
var _hoisted_5 = {
|
|
1571
|
-
key: 0,
|
|
1572
|
-
class: "text-ink-soft mt-0.5 text-xs leading-snug"
|
|
1573
|
-
};
|
|
1574
|
-
var _hoisted_6 = {
|
|
1575
|
-
key: 1,
|
|
1576
|
-
class: "shrink-0"
|
|
1577
|
-
};
|
|
1578
|
-
var _hoisted_7 = { key: 0 };
|
|
1579
|
-
//#endregion
|
|
1580
|
-
//#region src/components/SettingsRow.vue
|
|
1581
|
-
var SettingsRow_default = /* @__PURE__ */ defineComponent({
|
|
1582
|
-
__name: "SettingsRow",
|
|
1583
|
-
props: {
|
|
1584
|
-
label: {},
|
|
1585
|
-
description: { default: "" },
|
|
1586
|
-
icon: { default: () => void 0 },
|
|
1587
|
-
interactive: {
|
|
1588
|
-
type: Boolean,
|
|
1589
|
-
default: false
|
|
1590
|
-
},
|
|
1591
|
-
stacked: {
|
|
1592
|
-
type: Boolean,
|
|
1593
|
-
default: false
|
|
1594
|
-
}
|
|
1595
|
-
},
|
|
1596
|
-
emits: ["click"],
|
|
1597
|
-
setup(__props, { emit: __emit }) {
|
|
1598
|
-
const emit = __emit;
|
|
1599
|
-
return (_ctx, _cache) => {
|
|
1600
|
-
return openBlock(), createBlock(resolveDynamicComponent(__props.interactive ? "button" : "div"), {
|
|
1601
|
-
type: __props.interactive ? "button" : void 0,
|
|
1602
|
-
class: normalizeClass(["flex w-full items-center gap-3 px-4 py-3 text-left", [__props.interactive ? "hover:bg-muted/60 transition-colors active:scale-[0.99]" : "", __props.stacked ? "flex-col items-stretch gap-3" : ""]]),
|
|
1603
|
-
onClick: _cache[0] || (_cache[0] = ($event) => __props.interactive && emit("click"))
|
|
1604
|
-
}, {
|
|
1605
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_1$5, [
|
|
1606
|
-
__props.icon ? (openBlock(), createElementBlock("span", _hoisted_2$5, [(openBlock(), createBlock(resolveDynamicComponent(__props.icon), { class: "size-[18px]" }))])) : createCommentVNode("", true),
|
|
1607
|
-
createElementVNode("div", _hoisted_3$2, [createElementVNode("p", _hoisted_4$2, toDisplayString(__props.label), 1), __props.description ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(__props.description), 1)) : createCommentVNode("", true)]),
|
|
1608
|
-
!__props.stacked ? (openBlock(), createElementBlock("div", _hoisted_6, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true),
|
|
1609
|
-
__props.interactive ? (openBlock(), createBlock(unref(ChevronRight), {
|
|
1610
|
-
key: 2,
|
|
1611
|
-
class: "text-ink-soft size-4 shrink-0",
|
|
1612
|
-
"aria-hidden": "true"
|
|
1613
|
-
})) : createCommentVNode("", true)
|
|
1614
|
-
]), __props.stacked ? (openBlock(), createElementBlock("div", _hoisted_7, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)]),
|
|
1615
|
-
_: 3
|
|
1616
|
-
}, 8, ["type", "class"]);
|
|
1617
|
-
};
|
|
1618
|
-
}
|
|
1619
|
-
});
|
|
1620
|
-
//#endregion
|
|
1621
1389
|
//#region src/components/SkeletonList.vue?vue&type=script&setup=true&lang.ts
|
|
1622
1390
|
var _hoisted_1$4 = {
|
|
1623
1391
|
role: "status",
|
|
@@ -2013,7 +1781,7 @@ function createI18nRuntime(options) {
|
|
|
2013
1781
|
*
|
|
2014
1782
|
* The fallback keeps `vitest` and `vite dev` honest, where no define runs.
|
|
2015
1783
|
*/
|
|
2016
|
-
var VERSION = "0.
|
|
1784
|
+
var VERSION = "0.14.0";
|
|
2017
1785
|
//#endregion
|
|
2018
1786
|
export { AppError, BaseAlert_default as BaseAlert, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseInput_default as BaseInput, BaseRadioGroup_default as BaseRadioGroup, BaseSelect_default as BaseSelect, BaseSheet_default as BaseSheet, BaseTextarea_default as BaseTextarea, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, 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, ToastHost_default as ToastHost, ToneDot_default as ToneDot, VERSION, addDays, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, formatDate, fromDateKey, isApplePortable, isInstalled, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, todayKey, useDebouncedCallback, useDragScroll, useMediaQuery, useOnline, useTheme, useToast, useToday, useVisualViewport };
|
|
2019
1787
|
|