@sparklingopinions/sparkling-ui 0.9.3 → 0.11.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/aliases.d.ts +3 -3
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Badge/Badge.vue.d.ts +6 -3
- package/dist/components/Badge/Badge.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/Badge/Badge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Meter/Meter.js +7 -0
- package/dist/components/Meter/Meter.js.map +1 -0
- package/dist/components/Meter/Meter.vue.d.ts +21 -0
- package/dist/components/Meter/Meter.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/components/Meter/Meter.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/Meter/index.d.ts +2 -0
- package/dist/components/PricingCard/PricingCard.js +7 -0
- package/dist/components/PricingCard/PricingCard.js.map +1 -0
- package/dist/components/PricingCard/PricingCard.vue.d.ts +41 -0
- package/dist/components/PricingCard/PricingCard.vue_vue_type_script_setup_true_lang.js +82 -0
- package/dist/components/PricingCard/PricingCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/PricingCard/index.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +22 -20
- package/package.json +1 -1
package/dist/aliases.d.ts
CHANGED
|
@@ -126,7 +126,7 @@ export type ConfirmDialogProps = AlertDialogProps;
|
|
|
126
126
|
/** @deprecated Renamed to Badge. */
|
|
127
127
|
export declare const Pill: {
|
|
128
128
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<BadgeProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
129
|
-
variant: "text" | "soft";
|
|
129
|
+
variant: "text" | "soft" | "outline";
|
|
130
130
|
label: string;
|
|
131
131
|
tone: BadgeTone;
|
|
132
132
|
dot: boolean;
|
|
@@ -138,7 +138,7 @@ export declare const Pill: {
|
|
|
138
138
|
M: {};
|
|
139
139
|
Defaults: {};
|
|
140
140
|
}, Readonly<BadgeProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
141
|
-
variant: "text" | "soft";
|
|
141
|
+
variant: "text" | "soft" | "outline";
|
|
142
142
|
label: string;
|
|
143
143
|
tone: BadgeTone;
|
|
144
144
|
dot: boolean;
|
|
@@ -147,7 +147,7 @@ export declare const Pill: {
|
|
|
147
147
|
__isTeleport?: never;
|
|
148
148
|
__isSuspense?: never;
|
|
149
149
|
} & import("vue").ComponentOptionsBase<Readonly<BadgeProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
150
|
-
variant: "text" | "soft";
|
|
150
|
+
variant: "text" | "soft" | "outline";
|
|
151
151
|
label: string;
|
|
152
152
|
tone: BadgeTone;
|
|
153
153
|
dot: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","names":["_sfc_main","Badge_vue_vue_type_script_setup_true_lang_default","Badge_default"],"sources":["../../../src/components/Badge/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'info' | 'danger'\n\nexport interface BadgeProps {\n tone?: BadgeTone\n
|
|
1
|
+
{"version":3,"file":"Badge.js","names":["_sfc_main","Badge_vue_vue_type_script_setup_true_lang_default","Badge_default"],"sources":["../../../src/components/Badge/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'info' | 'danger'\n\nexport interface BadgeProps {\n tone?: BadgeTone\n /**\n * `soft` is a tinted chip; `text` is a dot and a coloured label, lighter; `outline` is a small\n * neutral pill (the dot carries the tone) for a count that isn't the page's own.\n */\n variant?: 'soft' | 'text' | 'outline'\n dot?: boolean\n label?: string\n}\n\nconst props = withDefaults(defineProps<BadgeProps>(), { tone: 'neutral', variant: 'soft', dot: true, label: undefined })\n\nconst tones: Record<BadgeTone, { chip: string; text: string; dot: string }> = {\n neutral: { chip: 'bg-sui-sunken text-sui-ink-subtle', text: 'text-sui-ink-muted', dot: 'bg-sui-mark-faint' },\n accent: { chip: 'bg-sui-accent-wash text-sui-accent', text: 'text-sui-accent', dot: 'bg-sui-accent-solid' },\n success: {\n chip: 'bg-sui-success-soft text-sui-success',\n text: 'text-sui-success',\n dot: 'bg-sui-success-mid'\n },\n warning: {\n chip: 'bg-sui-warning-soft text-sui-warning',\n text: 'text-sui-warning',\n dot: 'bg-sui-warning-bright'\n },\n info: { chip: 'bg-sui-info-soft text-sui-info', text: 'text-sui-info', dot: 'bg-sui-info-mid' },\n danger: { chip: 'bg-sui-danger-soft text-sui-danger', text: 'text-sui-danger', dot: 'bg-sui-danger-solid' }\n}\n\nconst tone = computed(() => tones[props.tone])\n\nconst shape = computed(() => {\n if (props.variant === 'soft') return ['h-6 gap-1.5 rounded-md px-2.5 text-xs font-medium', tone.value.chip]\n if (props.variant === 'outline')\n return 'h-5 gap-1.25 rounded-full border border-sui-line bg-sui-surface pr-1.75 pl-1.5 text-11.5 leading-none font-semibold text-sui-ink-emphasis tabular-nums'\n return ['gap-1.5 text-xs font-medium', tone.value.text]\n})\n</script>\n\n<template>\n <span class=\"inline-flex items-center whitespace-nowrap\" :class=\"shape\">\n <span v-if=\"dot\" class=\"h-1.5 w-1.5 shrink-0 rounded-full\" :class=\"tone.dot\" />\n <slot>{{ label }}</slot>\n </span>\n</template>\n"],"mappings":""}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'info' | 'danger';
|
|
2
2
|
export interface BadgeProps {
|
|
3
3
|
tone?: BadgeTone;
|
|
4
|
-
/**
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* `soft` is a tinted chip; `text` is a dot and a coloured label, lighter; `outline` is a small
|
|
6
|
+
* neutral pill (the dot carries the tone) for a count that isn't the page's own.
|
|
7
|
+
*/
|
|
8
|
+
variant?: 'soft' | 'text' | 'outline';
|
|
6
9
|
dot?: boolean;
|
|
7
10
|
label?: string;
|
|
8
11
|
}
|
|
@@ -11,7 +14,7 @@ type __VLS_Slots = {} & {
|
|
|
11
14
|
default?: (props: typeof __VLS_1) => any;
|
|
12
15
|
};
|
|
13
16
|
declare const __VLS_base: import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
|
|
14
|
-
variant: "text" | "soft";
|
|
17
|
+
variant: "text" | "soft" | "outline";
|
|
15
18
|
label: string;
|
|
16
19
|
tone: BadgeTone;
|
|
17
20
|
dot: boolean;
|
|
@@ -43,8 +43,8 @@ var l = /*@__PURE__*/ i({
|
|
|
43
43
|
text: "text-sui-danger",
|
|
44
44
|
dot: "bg-sui-danger-solid"
|
|
45
45
|
}
|
|
46
|
-
}, d = e(() => u[l.tone]);
|
|
47
|
-
return (e, l) => (o(), n("span", { class: a(["inline-flex items-center
|
|
46
|
+
}, d = e(() => u[l.tone]), f = e(() => l.variant === "soft" ? ["h-6 gap-1.5 rounded-md px-2.5 text-xs font-medium", d.value.chip] : l.variant === "outline" ? "h-5 gap-1.25 rounded-full border border-sui-line bg-sui-surface pr-1.75 pl-1.5 text-11.5 leading-none font-semibold text-sui-ink-emphasis tabular-nums" : ["gap-1.5 text-xs font-medium", d.value.text]);
|
|
47
|
+
return (e, l) => (o(), n("span", { class: a(["inline-flex items-center whitespace-nowrap", f.value]) }, [i.dot ? (o(), n("span", {
|
|
48
48
|
key: 0,
|
|
49
49
|
class: a(["h-1.5 w-1.5 shrink-0 rounded-full", d.value.dot])
|
|
50
50
|
}, null, 2)) : t("", !0), s(e.$slots, "default", {}, () => [r(c(i.label), 1)])], 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_createCommentVNode","_renderSlot","_createTextVNode","_toDisplayString","Badge_vue_vue_type_script_setup_true_lang_default","props","__props","tones","tone","computed","openBlock","createElementBlock","normalizeClass","createCommentVNode","renderSlot","_ctx","createTextVNode","toDisplayString"],"sources":["../../../src/components/Badge/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'info' | 'danger'\n\nexport interface BadgeProps {\n tone?: BadgeTone\n
|
|
1
|
+
{"version":3,"file":"Badge.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_createCommentVNode","_renderSlot","_createTextVNode","_toDisplayString","Badge_vue_vue_type_script_setup_true_lang_default","props","__props","tones","tone","computed","shape","openBlock","createElementBlock","normalizeClass","createCommentVNode","renderSlot","_ctx","createTextVNode","toDisplayString"],"sources":["../../../src/components/Badge/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'info' | 'danger'\n\nexport interface BadgeProps {\n tone?: BadgeTone\n /**\n * `soft` is a tinted chip; `text` is a dot and a coloured label, lighter; `outline` is a small\n * neutral pill (the dot carries the tone) for a count that isn't the page's own.\n */\n variant?: 'soft' | 'text' | 'outline'\n dot?: boolean\n label?: string\n}\n\nconst props = withDefaults(defineProps<BadgeProps>(), { tone: 'neutral', variant: 'soft', dot: true, label: undefined })\n\nconst tones: Record<BadgeTone, { chip: string; text: string; dot: string }> = {\n neutral: { chip: 'bg-sui-sunken text-sui-ink-subtle', text: 'text-sui-ink-muted', dot: 'bg-sui-mark-faint' },\n accent: { chip: 'bg-sui-accent-wash text-sui-accent', text: 'text-sui-accent', dot: 'bg-sui-accent-solid' },\n success: {\n chip: 'bg-sui-success-soft text-sui-success',\n text: 'text-sui-success',\n dot: 'bg-sui-success-mid'\n },\n warning: {\n chip: 'bg-sui-warning-soft text-sui-warning',\n text: 'text-sui-warning',\n dot: 'bg-sui-warning-bright'\n },\n info: { chip: 'bg-sui-info-soft text-sui-info', text: 'text-sui-info', dot: 'bg-sui-info-mid' },\n danger: { chip: 'bg-sui-danger-soft text-sui-danger', text: 'text-sui-danger', dot: 'bg-sui-danger-solid' }\n}\n\nconst tone = computed(() => tones[props.tone])\n\nconst shape = computed(() => {\n if (props.variant === 'soft') return ['h-6 gap-1.5 rounded-md px-2.5 text-xs font-medium', tone.value.chip]\n if (props.variant === 'outline')\n return 'h-5 gap-1.25 rounded-full border border-sui-line bg-sui-surface pr-1.75 pl-1.5 text-11.5 leading-none font-semibold text-sui-ink-emphasis tabular-nums'\n return ['gap-1.5 text-xs font-medium', tone.value.text]\n})\n</script>\n\n<template>\n <span class=\"inline-flex items-center whitespace-nowrap\" :class=\"shape\">\n <span v-if=\"dot\" class=\"h-1.5 w-1.5 shrink-0 rounded-full\" :class=\"tone.dot\" />\n <slot>{{ label }}</slot>\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAgBA,IAAMQ,IAAQC,GAERC,IAAwE;GAC5E,SAAS;IAAE,MAAM;IAAqC,MAAM;IAAsB,KAAK;GAAoB;GAC3G,QAAQ;IAAE,MAAM;IAAsC,MAAM;IAAmB,KAAK;GAAsB;GAC1G,SAAS;IACP,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA,SAAS;IACP,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA,MAAM;IAAE,MAAM;IAAkC,MAAM;IAAiB,KAAK;GAAkB;GAC9F,QAAQ;IAAE,MAAM;IAAsC,MAAM;IAAmB,KAAK;GAAsB;EAC5G,GAEMC,IAAOC,QAAeF,EAAMF,EAAM,KAAK,GAEvCK,IAAQD,QACRJ,EAAM,YAAY,SAAe,CAAC,qDAAqDG,EAAK,MAAM,IAAI,IACtGH,EAAM,YAAY,YACb,2JACF,CAAC,+BAA+BG,EAAK,MAAM,IAAI,CACvD;E,kBAICX,EAAA,GAAAC,EAGO,QAAA,EAHD,OAAKC,EAAA,CAAC,8CAAqDW,EAAA,KAAK,CAAA,E,IACxDJ,EAAA,OAAZT,EAAA,GAAAC,EAA+E,QAAA;;GAA9D,OAAKC,EAAA,CAAC,qCAA4CS,EAAA,MAAK,GAAG,CAAA;E,0BAC3EP,EAAwBe,EAAA,QAAA,WAAA,CAAA,SAAA,CAAfd,EAAAC,EAAAG,EAAA,KAAK,GAAA,CAAA,C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meter.js","names":["_sfc_main","Meter_vue_vue_type_script_setup_true_lang_default","Meter_default"],"sources":["../../../src/components/Meter/Meter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type MeterTone = 'neutral' | 'warning' | 'accent'\n\nexport interface MeterProps {\n /** How much is used. */\n value: number\n /** How much is held but not used yet, drawn after `value` in a lighter shade. */\n reserved?: number\n max: number\n /** `warning` when the limit is close; `accent` to tie the bar to the product's colour. */\n tone?: MeterTone\n /** Its accessible name. */\n label: string\n /** Read out instead of the number, e.g. \"204 of 250, 46 left\". */\n valueText?: string\n}\n\nconst props = withDefaults(defineProps<MeterProps>(), { reserved: 0, tone: 'neutral', valueText: undefined })\n\n// Text roles, not fills: they're the ones that hold 3:1 against the track in both modes.\nconst fills: Record<MeterTone, string> = {\n neutral: 'bg-sui-ink-muted',\n warning: 'bg-sui-warning',\n accent: 'bg-sui-accent'\n}\n\nconst max = computed(() => Math.max(props.max, 0))\nconst used = computed(() => Math.min(Math.max(props.value, 0), max.value))\nconst held = computed(() => Math.min(Math.max(props.reserved, 0), max.value - used.value))\nconst percent = (amount: number) => (max.value > 0 ? `${(amount * 100) / max.value}%` : '0%')\n</script>\n\n<template>\n <div\n :aria-label=\"label\"\n :aria-valuemax=\"max\"\n aria-valuemin=\"0\"\n :aria-valuenow=\"used + held\"\n :aria-valuetext=\"valueText\"\n class=\"flex h-1 w-full overflow-hidden rounded-full bg-sui-line-subtle\"\n role=\"meter\"\n >\n <div class=\"h-full shrink-0\" :class=\"fills[tone]\" :style=\"{ width: percent(used) }\" />\n <div class=\"h-full shrink-0 opacity-40\" :class=\"fills[tone]\" :style=\"{ width: percent(held) }\" />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type MeterTone = 'neutral' | 'warning' | 'accent';
|
|
2
|
+
export interface MeterProps {
|
|
3
|
+
/** How much is used. */
|
|
4
|
+
value: number;
|
|
5
|
+
/** How much is held but not used yet, drawn after `value` in a lighter shade. */
|
|
6
|
+
reserved?: number;
|
|
7
|
+
max: number;
|
|
8
|
+
/** `warning` when the limit is close; `accent` to tie the bar to the product's colour. */
|
|
9
|
+
tone?: MeterTone;
|
|
10
|
+
/** Its accessible name. */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Read out instead of the number, e.g. "204 of 250, 46 left". */
|
|
13
|
+
valueText?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const __VLS_export: import("vue").DefineComponent<MeterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MeterProps> & Readonly<{}>, {
|
|
16
|
+
tone: MeterTone;
|
|
17
|
+
reserved: number;
|
|
18
|
+
valueText: string;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { computed as e, createElementBlock as t, createElementVNode as n, defineComponent as r, normalizeClass as i, normalizeStyle as a, openBlock as o } from "vue";
|
|
2
|
+
//#region src/components/Meter/Meter.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var s = [
|
|
4
|
+
"aria-label",
|
|
5
|
+
"aria-valuemax",
|
|
6
|
+
"aria-valuenow",
|
|
7
|
+
"aria-valuetext"
|
|
8
|
+
], c = /*@__PURE__*/ r({
|
|
9
|
+
__name: "Meter",
|
|
10
|
+
props: {
|
|
11
|
+
value: {},
|
|
12
|
+
reserved: { default: 0 },
|
|
13
|
+
max: {},
|
|
14
|
+
tone: { default: "neutral" },
|
|
15
|
+
label: {},
|
|
16
|
+
valueText: { default: void 0 }
|
|
17
|
+
},
|
|
18
|
+
setup(r) {
|
|
19
|
+
let c = r, l = {
|
|
20
|
+
neutral: "bg-sui-ink-muted",
|
|
21
|
+
warning: "bg-sui-warning",
|
|
22
|
+
accent: "bg-sui-accent"
|
|
23
|
+
}, u = e(() => Math.max(c.max, 0)), d = e(() => Math.min(Math.max(c.value, 0), u.value)), f = e(() => Math.min(Math.max(c.reserved, 0), u.value - d.value)), p = (e) => u.value > 0 ? `${e * 100 / u.value}%` : "0%";
|
|
24
|
+
return (e, c) => (o(), t("div", {
|
|
25
|
+
"aria-label": r.label,
|
|
26
|
+
"aria-valuemax": u.value,
|
|
27
|
+
"aria-valuemin": "0",
|
|
28
|
+
"aria-valuenow": d.value + f.value,
|
|
29
|
+
"aria-valuetext": r.valueText,
|
|
30
|
+
class: "flex h-1 w-full overflow-hidden rounded-full bg-sui-line-subtle",
|
|
31
|
+
role: "meter"
|
|
32
|
+
}, [n("div", {
|
|
33
|
+
class: i(["h-full shrink-0", l[r.tone]]),
|
|
34
|
+
style: a({ width: p(d.value) })
|
|
35
|
+
}, null, 6), n("div", {
|
|
36
|
+
class: i(["h-full shrink-0 opacity-40", l[r.tone]]),
|
|
37
|
+
style: a({ width: p(f.value) })
|
|
38
|
+
}, null, 6)], 8, s));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//#endregion
|
|
42
|
+
export { c as default };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=Meter.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meter.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_normalizeStyle","_hoisted_1","Meter_vue_vue_type_script_setup_true_lang_default","props","__props","fills","max","computed","used","held","percent","amount","openBlock","createElementBlock","createElementVNode","normalizeClass","normalizeStyle"],"sources":["../../../src/components/Meter/Meter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type MeterTone = 'neutral' | 'warning' | 'accent'\n\nexport interface MeterProps {\n /** How much is used. */\n value: number\n /** How much is held but not used yet, drawn after `value` in a lighter shade. */\n reserved?: number\n max: number\n /** `warning` when the limit is close; `accent` to tie the bar to the product's colour. */\n tone?: MeterTone\n /** Its accessible name. */\n label: string\n /** Read out instead of the number, e.g. \"204 of 250, 46 left\". */\n valueText?: string\n}\n\nconst props = withDefaults(defineProps<MeterProps>(), { reserved: 0, tone: 'neutral', valueText: undefined })\n\n// Text roles, not fills: they're the ones that hold 3:1 against the track in both modes.\nconst fills: Record<MeterTone, string> = {\n neutral: 'bg-sui-ink-muted',\n warning: 'bg-sui-warning',\n accent: 'bg-sui-accent'\n}\n\nconst max = computed(() => Math.max(props.max, 0))\nconst used = computed(() => Math.min(Math.max(props.value, 0), max.value))\nconst held = computed(() => Math.min(Math.max(props.reserved, 0), max.value - used.value))\nconst percent = (amount: number) => (max.value > 0 ? `${(amount * 100) / max.value}%` : '0%')\n</script>\n\n<template>\n <div\n :aria-label=\"label\"\n :aria-valuemax=\"max\"\n aria-valuemin=\"0\"\n :aria-valuenow=\"used + held\"\n :aria-valuetext=\"valueText\"\n class=\"flex h-1 w-full overflow-hidden rounded-full bg-sui-line-subtle\"\n role=\"meter\"\n >\n <div class=\"h-full shrink-0\" :class=\"fills[tone]\" :style=\"{ width: percent(used) }\" />\n <div class=\"h-full shrink-0 opacity-40\" :class=\"fills[tone]\" :style=\"{ width: percent(held) }\" />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAmBA,IAAMO,IAAQC,GAGRC,IAAmC;GACvC,SAAS;GACT,SAAS;GACT,QAAQ;EACV,GAEMC,IAAMC,QAAe,KAAK,IAAIJ,EAAM,KAAK,CAAC,CAAC,GAC3CK,IAAOD,QAAe,KAAK,IAAI,KAAK,IAAIJ,EAAM,OAAO,CAAC,GAAGG,EAAI,KAAK,CAAC,GACnEG,IAAOF,QAAe,KAAK,IAAI,KAAK,IAAIJ,EAAM,UAAU,CAAC,GAAGG,EAAI,QAAQE,EAAK,KAAK,CAAC,GACnFE,KAAW,MAAoBJ,EAAI,QAAQ,IAAI,GAAIK,IAAS,MAAOL,EAAI,MAAM,KAAK;E,kBAItFV,EAAA,GAAAC,EAWM,OAAA;GAVH,cAAYO,EAAA;GACZ,iBAAeE,EAAA;GAChB,iBAAc;GACb,iBAAeE,EAAA,QAAOC,EAAA;GACtB,kBAAgBL,EAAA;GACjB,OAAM;GACN,MAAK;E,IAELN,EAAsF,OAAA;GAAjF,OAAKC,EAAA,CAAC,mBAA0BM,EAAMD,EAAA,KAAI,CAAA;GAAI,OAAKJ,EAAA,EAAA,OAAWU,EAAQF,EAAA,KAAI,EAAA,CAAA;E,aAC/EV,EAAiG,OAAA;GAA5F,OAAKC,EAAA,CAAC,8BAAqCM,EAAMD,EAAA,KAAI,CAAA;GAAI,OAAKJ,EAAA,EAAA,OAAWU,EAAQD,EAAA,KAAI,EAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PricingCard.js","names":["_sfc_main","PricingCard_vue_vue_type_script_setup_true_lang_default","PricingCard_default"],"sources":["../../../src/components/PricingCard/PricingCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport Badge from '../Badge/Badge.vue'\nimport Button from '../Button/Button.vue'\n\nexport interface PricingCardProps {\n /** The plan's name; it labels the card and finishes the button's accessible name. */\n name: string\n /** Already formatted, with its currency. */\n price: string\n /** What the price covers, under it: the billing period, taxes. */\n period: string\n /** One line under the period. */\n description?: string\n /** A short accent pill next to the name. */\n badge?: string\n /** The recommended option: an accent border and a primary button. */\n highlighted?: boolean\n actionLabel?: string\n /** Disables the button and shows a spinner in it while the choice is being handled. */\n loading?: boolean\n disabled?: boolean\n}\n\nwithDefaults(defineProps<PricingCardProps>(), {\n description: undefined,\n badge: undefined,\n actionLabel: 'Choose'\n})\n\ndefineEmits<{ select: [] }>()\n\nconst nameId = useId()\n</script>\n\n<template>\n <article\n :aria-labelledby=\"nameId\"\n class=\"flex flex-col rounded-xl border bg-sui-surface p-5\"\n :class=\"highlighted ? 'border-sui-accent-line' : 'border-sui-line-subtle'\"\n >\n <div class=\"flex flex-wrap items-center gap-2\">\n <p :id=\"nameId\" class=\"m-0 text-13 leading-5 text-sui-ink-muted\">{{ name }}</p>\n <Badge v-if=\"badge\" :dot=\"false\" :label=\"badge\" tone=\"accent\" />\n </div>\n <p class=\"m-0 mt-1 text-[1.75rem] leading-9 font-semibold tracking-tight text-sui-ink tabular-nums\">{{ price }}</p>\n <p class=\"m-0 text-13 leading-5 text-sui-ink-muted\">{{ period }}</p>\n <p v-if=\"description\" class=\"m-0 mt-1 text-13 leading-5 text-sui-ink-body\">{{ description }}</p>\n <div class=\"mt-4\">\n <slot name=\"action\">\n <Button\n :aria-busy=\"loading ? 'true' : undefined\"\n class=\"w-full\"\n :disabled=\"disabled || loading\"\n :variant=\"highlighted ? 'primary' : 'secondary'\"\n @click=\"$emit('select')\"\n >\n <svg\n v-if=\"loading\"\n aria-hidden=\"true\"\n class=\"size-4 shrink-0 origin-center animate-sui-spinner-rotate\"\n viewBox=\"25 25 50 50\"\n >\n <circle\n class=\"animate-sui-spinner-dash\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-dasharray=\"89, 200\"\n stroke-linecap=\"round\"\n stroke-width=\"6\"\n />\n </svg>\n {{ actionLabel }}<span class=\"sr-only\">, {{ name }}</span>\n </Button>\n </slot>\n </div>\n <div v-if=\"$slots.default\" class=\"mt-4\">\n <slot />\n </div>\n </article>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface PricingCardProps {
|
|
2
|
+
/** The plan's name; it labels the card and finishes the button's accessible name. */
|
|
3
|
+
name: string;
|
|
4
|
+
/** Already formatted, with its currency. */
|
|
5
|
+
price: string;
|
|
6
|
+
/** What the price covers, under it: the billing period, taxes. */
|
|
7
|
+
period: string;
|
|
8
|
+
/** One line under the period. */
|
|
9
|
+
description?: string;
|
|
10
|
+
/** A short accent pill next to the name. */
|
|
11
|
+
badge?: string;
|
|
12
|
+
/** The recommended option: an accent border and a primary button. */
|
|
13
|
+
highlighted?: boolean;
|
|
14
|
+
actionLabel?: string;
|
|
15
|
+
/** Disables the button and shows a spinner in it while the choice is being handled. */
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare var __VLS_6: {}, __VLS_16: {};
|
|
20
|
+
type __VLS_Slots = {} & {
|
|
21
|
+
action?: (props: typeof __VLS_6) => any;
|
|
22
|
+
} & {
|
|
23
|
+
default?: (props: typeof __VLS_16) => any;
|
|
24
|
+
};
|
|
25
|
+
declare const __VLS_base: import("vue").DefineComponent<PricingCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
26
|
+
select: () => any;
|
|
27
|
+
}, string, import("vue").PublicProps, Readonly<PricingCardProps> & Readonly<{
|
|
28
|
+
onSelect?: (() => any) | undefined;
|
|
29
|
+
}>, {
|
|
30
|
+
description: string;
|
|
31
|
+
badge: string;
|
|
32
|
+
actionLabel: string;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
35
|
+
declare const _default: typeof __VLS_export;
|
|
36
|
+
export default _default;
|
|
37
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
38
|
+
new (): {
|
|
39
|
+
$slots: S;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import e from "../Button/Button.js";
|
|
2
|
+
import t from "../Badge/Badge.js";
|
|
3
|
+
import { createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, renderSlot as d, toDisplayString as f, unref as p, useId as m, withCtx as h } from "vue";
|
|
4
|
+
//#region src/components/PricingCard/PricingCard.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var g = ["aria-labelledby"], _ = { class: "flex flex-wrap items-center gap-2" }, v = ["id"], y = { class: "m-0 mt-1 text-[1.75rem] leading-9 font-semibold tracking-tight text-sui-ink tabular-nums" }, b = { class: "m-0 text-13 leading-5 text-sui-ink-muted" }, x = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "m-0 mt-1 text-13 leading-5 text-sui-ink-body"
|
|
8
|
+
}, S = { class: "mt-4" }, C = {
|
|
9
|
+
key: 0,
|
|
10
|
+
"aria-hidden": "true",
|
|
11
|
+
class: "size-4 shrink-0 origin-center animate-sui-spinner-rotate",
|
|
12
|
+
viewBox: "25 25 50 50"
|
|
13
|
+
}, w = { class: "sr-only" }, T = {
|
|
14
|
+
key: 1,
|
|
15
|
+
class: "mt-4"
|
|
16
|
+
}, E = /*@__PURE__*/ c({
|
|
17
|
+
__name: "PricingCard",
|
|
18
|
+
props: {
|
|
19
|
+
name: {},
|
|
20
|
+
price: {},
|
|
21
|
+
period: {},
|
|
22
|
+
description: { default: void 0 },
|
|
23
|
+
badge: { default: void 0 },
|
|
24
|
+
highlighted: { type: Boolean },
|
|
25
|
+
actionLabel: { default: "Choose" },
|
|
26
|
+
loading: { type: Boolean },
|
|
27
|
+
disabled: { type: Boolean }
|
|
28
|
+
},
|
|
29
|
+
emits: ["select"],
|
|
30
|
+
setup(c) {
|
|
31
|
+
let E = m();
|
|
32
|
+
return (m, D) => (u(), i("article", {
|
|
33
|
+
"aria-labelledby": p(E),
|
|
34
|
+
class: l(["flex flex-col rounded-xl border bg-sui-surface p-5", c.highlighted ? "border-sui-accent-line" : "border-sui-line-subtle"])
|
|
35
|
+
}, [
|
|
36
|
+
a("div", _, [a("p", {
|
|
37
|
+
id: p(E),
|
|
38
|
+
class: "m-0 text-13 leading-5 text-sui-ink-muted"
|
|
39
|
+
}, f(c.name), 9, v), c.badge ? (u(), n(t, {
|
|
40
|
+
key: 0,
|
|
41
|
+
dot: !1,
|
|
42
|
+
label: c.badge,
|
|
43
|
+
tone: "accent"
|
|
44
|
+
}, null, 8, ["label"])) : r("", !0)]),
|
|
45
|
+
a("p", y, f(c.price), 1),
|
|
46
|
+
a("p", b, f(c.period), 1),
|
|
47
|
+
c.description ? (u(), i("p", x, f(c.description), 1)) : r("", !0),
|
|
48
|
+
a("div", S, [d(m.$slots, "action", {}, () => [s(e, {
|
|
49
|
+
"aria-busy": c.loading ? "true" : void 0,
|
|
50
|
+
class: "w-full",
|
|
51
|
+
disabled: c.disabled || c.loading,
|
|
52
|
+
variant: c.highlighted ? "primary" : "secondary",
|
|
53
|
+
onClick: D[0] ||= (e) => m.$emit("select")
|
|
54
|
+
}, {
|
|
55
|
+
default: h(() => [
|
|
56
|
+
c.loading ? (u(), i("svg", C, [...D[1] ||= [a("circle", {
|
|
57
|
+
class: "animate-sui-spinner-dash",
|
|
58
|
+
cx: "50",
|
|
59
|
+
cy: "50",
|
|
60
|
+
fill: "none",
|
|
61
|
+
r: "20",
|
|
62
|
+
"stroke-dasharray": "89, 200",
|
|
63
|
+
"stroke-linecap": "round",
|
|
64
|
+
"stroke-width": "6"
|
|
65
|
+
}, null, -1)]])) : r("", !0),
|
|
66
|
+
o(" " + f(c.actionLabel), 1),
|
|
67
|
+
a("span", w, ", " + f(c.name), 1)
|
|
68
|
+
]),
|
|
69
|
+
_: 1
|
|
70
|
+
}, 8, [
|
|
71
|
+
"aria-busy",
|
|
72
|
+
"disabled",
|
|
73
|
+
"variant"
|
|
74
|
+
])])]),
|
|
75
|
+
m.$slots.default ? (u(), i("div", T, [d(m.$slots, "default")])) : r("", !0)
|
|
76
|
+
], 10, g));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//#endregion
|
|
80
|
+
export { E as default };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=PricingCard.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PricingCard.vue_vue_type_script_setup_true_lang.js","names":["$emit","$slots","_openBlock","_createElementBlock","_unref","_normalizeClass","_createElementVNode","_toDisplayString","_createBlock","Badge","_createCommentVNode","_renderSlot","_createVNode","Button","_withCtx","_createTextVNode","Button_default","Badge_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PricingCard_vue_vue_type_script_setup_true_lang_default","nameId","useId","openBlock","createElementBlock","unref","normalizeClass","__props","createElementVNode","toDisplayString","createBlock","createCommentVNode","renderSlot","_ctx","createVNode","_cache","withCtx","createTextVNode"],"sources":["../../../src/components/PricingCard/PricingCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport Badge from '../Badge/Badge.vue'\nimport Button from '../Button/Button.vue'\n\nexport interface PricingCardProps {\n /** The plan's name; it labels the card and finishes the button's accessible name. */\n name: string\n /** Already formatted, with its currency. */\n price: string\n /** What the price covers, under it: the billing period, taxes. */\n period: string\n /** One line under the period. */\n description?: string\n /** A short accent pill next to the name. */\n badge?: string\n /** The recommended option: an accent border and a primary button. */\n highlighted?: boolean\n actionLabel?: string\n /** Disables the button and shows a spinner in it while the choice is being handled. */\n loading?: boolean\n disabled?: boolean\n}\n\nwithDefaults(defineProps<PricingCardProps>(), {\n description: undefined,\n badge: undefined,\n actionLabel: 'Choose'\n})\n\ndefineEmits<{ select: [] }>()\n\nconst nameId = useId()\n</script>\n\n<template>\n <article\n :aria-labelledby=\"nameId\"\n class=\"flex flex-col rounded-xl border bg-sui-surface p-5\"\n :class=\"highlighted ? 'border-sui-accent-line' : 'border-sui-line-subtle'\"\n >\n <div class=\"flex flex-wrap items-center gap-2\">\n <p :id=\"nameId\" class=\"m-0 text-13 leading-5 text-sui-ink-muted\">{{ name }}</p>\n <Badge v-if=\"badge\" :dot=\"false\" :label=\"badge\" tone=\"accent\" />\n </div>\n <p class=\"m-0 mt-1 text-[1.75rem] leading-9 font-semibold tracking-tight text-sui-ink tabular-nums\">{{ price }}</p>\n <p class=\"m-0 text-13 leading-5 text-sui-ink-muted\">{{ period }}</p>\n <p v-if=\"description\" class=\"m-0 mt-1 text-13 leading-5 text-sui-ink-body\">{{ description }}</p>\n <div class=\"mt-4\">\n <slot name=\"action\">\n <Button\n :aria-busy=\"loading ? 'true' : undefined\"\n class=\"w-full\"\n :disabled=\"disabled || loading\"\n :variant=\"highlighted ? 'primary' : 'secondary'\"\n @click=\"$emit('select')\"\n >\n <svg\n v-if=\"loading\"\n aria-hidden=\"true\"\n class=\"size-4 shrink-0 origin-center animate-sui-spinner-rotate\"\n viewBox=\"25 25 50 50\"\n >\n <circle\n class=\"animate-sui-spinner-dash\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-dasharray=\"89, 200\"\n stroke-linecap=\"round\"\n stroke-width=\"6\"\n />\n </svg>\n {{ actionLabel }}<span class=\"sr-only\">, {{ name }}</span>\n </Button>\n </slot>\n </div>\n <div v-if=\"$slots.default\" class=\"mt-4\">\n <slot />\n </div>\n </article>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCA,IAAM6B,IAASC,EAAM;E,kBAInB5B,EAAA,GAAAC,EA6CU,WAAA;GA5CP,mBAAiBC,EAAAyB,CAAA;GAClB,OAAKxB,EAAA,CAAC,sDACE8B,EAAA,cAAW,2BAAA,wBAAA,CAAA;;GAEnB7B,EAGM,OAHNa,GAGM,CAFJb,EAA+E,KAAA;IAA3E,IAAIF,EAAAyB,CAAA;IAAQ,OAAM;GAA8C,GAAAtB,EAAA4B,EAAA,IAAI,GAAA,GAAAf,CAAA,GAC3De,EAAA,SAAbjC,EAAA,GAAAM,EAAgEC,GAAA;;IAA3C,KAAK;IAAQ,OAAO0B,EAAA;IAAO,MAAK;;GAEvD7B,EAAmH,KAAnHe,GAAmHd,EAAZ4B,EAAA,KAAK,GAAA,CAAA;GAC5G7B,EAAoE,KAApEgB,GAAoEf,EAAb4B,EAAA,MAAM,GAAA,CAAA;GACpDA,EAAA,eAATjC,EAAA,GAAAC,EAAgG,KAAhGoB,GAAgGhB,EAAlB4B,EAAA,WAAW,GAAA,CAAA,K;GACzF7B,EA6BM,OA7BNkB,GA6BM,CA5BJb,EA2BO8B,EAAA,QAAA,UAAA,CAAA,SAAA,CA1BL7B,EAyBSC,GAAA;IAxBN,aAAWsB,EAAA,UAAO,SAAY,KAAA;IAC/B,OAAM;IACL,UAAUA,EAAA,YAAYA,EAAA;IACtB,SAASA,EAAA,cAAW,YAAA;IACpB,SAAK,AAAAQ,EAAA,QAAA,MAAE3C,EAAAA,MAAK,QAAA;;IAEb,SAAAc,QAgBM;KAfEqB,EAAA,WADRjC,EAAA,GAAAC,EAgBM,OAhBNsB,GAgBM,CAAA,GAAA,AAAAkB,EAAA,OAAA,CAVJrC,EASE,UAAA;MARA,OAAM;MACN,IAAG;MACH,IAAG;MACH,MAAK;MACL,GAAE;MACF,oBAAiB;MACjB,kBAAe;MACf,gBAAa;;KAEXS,EAAA,MACNR,EAAG4B,EAAA,WAAW,GAAA,CAAA;KAAG7B,EAAyC,QAAzCoB,GAAsB,OAAEnB,EAAG4B,EAAA,IAAI,GAAA,CAAA;;;;;;;;GAI3ClC,EAAAA,OAAO,WAAlBC,EAAA,GAAAC,EAEM,OAFNwB,GAEM,CADJhB,EAAQ8B,EAAA,QAAA,SAAA,C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,8 +19,10 @@ export * from './components/Icon';
|
|
|
19
19
|
export * from './components/ImageUpload';
|
|
20
20
|
export * from './components/Input';
|
|
21
21
|
export * from './components/Kbd';
|
|
22
|
+
export * from './components/Meter';
|
|
22
23
|
export * from './components/Pagination';
|
|
23
24
|
export * from './components/Popover';
|
|
25
|
+
export * from './components/PricingCard';
|
|
24
26
|
export * from './components/PropertyList';
|
|
25
27
|
export * from './components/PropertyRow';
|
|
26
28
|
export * from './components/Radio';
|
package/dist/index.js
CHANGED
|
@@ -29,23 +29,25 @@ import j from "./components/Filters/SortMenu.js";
|
|
|
29
29
|
import M from "./components/FormField/FormField.js";
|
|
30
30
|
import N from "./components/ImageUpload/ImageUpload.js";
|
|
31
31
|
import P from "./components/Kbd/Kbd.js";
|
|
32
|
-
import F from "./components/
|
|
33
|
-
import I from "./components/
|
|
34
|
-
import L from "./components/Popover/
|
|
35
|
-
import R from "./components/
|
|
36
|
-
import z from "./components/
|
|
37
|
-
import B from "./components/
|
|
38
|
-
import V from "./components/
|
|
39
|
-
import H from "./components/
|
|
40
|
-
import U from "./components/
|
|
41
|
-
import W from "./components/
|
|
42
|
-
import G from "./components/
|
|
43
|
-
import K from "./components/
|
|
44
|
-
import q from "./components/
|
|
45
|
-
import
|
|
46
|
-
import Y from "./components/
|
|
47
|
-
import X from "./
|
|
48
|
-
import Z from "./components/
|
|
49
|
-
import
|
|
50
|
-
import
|
|
51
|
-
|
|
32
|
+
import F from "./components/Meter/Meter.js";
|
|
33
|
+
import I from "./components/Pagination/Pagination.js";
|
|
34
|
+
import L from "./components/Popover/Popover.js";
|
|
35
|
+
import R from "./components/Popover/PopoverDialog.js";
|
|
36
|
+
import z from "./components/PricingCard/PricingCard.js";
|
|
37
|
+
import B from "./components/Spinner/Spinner.js";
|
|
38
|
+
import V from "./components/Tag/Tag.js";
|
|
39
|
+
import H from "./components/Select/Select.js";
|
|
40
|
+
import U from "./components/Textarea/Textarea.js";
|
|
41
|
+
import W from "./components/PropertyList/Editable.js";
|
|
42
|
+
import G from "./components/PropertyList/PropertyList.js";
|
|
43
|
+
import K from "./components/PropertyRow/Collapsible.js";
|
|
44
|
+
import q from "./components/PropertyRow/PropertyRow.js";
|
|
45
|
+
import J from "./components/Radio/Radio.js";
|
|
46
|
+
import Y from "./components/Table/Table.js";
|
|
47
|
+
import { toast as X } from "./composables/toast.js";
|
|
48
|
+
import Z from "./components/Toast/Toaster.js";
|
|
49
|
+
import Q from "./components/Toolbar/Toolbar.js";
|
|
50
|
+
import $ from "./components/TypingIndicator/TypingIndicator.js";
|
|
51
|
+
import { initColorMode as ee, useColorMode as te, useForceLightMode as ne } from "./composables/useColorMode.js";
|
|
52
|
+
import { Banner as re, BulkActions as ie, CalendarMonth as ae, Chip as oe, ConfirmDialog as se, Field as ce, FilterFieldPicker as le, FormErrors as ue, ImageInput as de, InlineField as fe, InlineForm as pe, LedgerMore as me, LedgerRow as he, List as ge, Modal as _e, OptionsMenu as ve, Pill as ye, SortControl as be, TextInput as xe, TypingDots as Se } from "./aliases.js";
|
|
53
|
+
export { a as ActionBar, o as Alert, c as AlertDialog, u as Avatar, d as Badge, re as Banner, p as Board, ie as BulkActions, e as Button, m as Calendar, ae as CalendarMonth, h as Checkbox, oe as Chip, K as Collapsible, se as ConfirmDialog, g as ContextMenu, _ as DataList, y as Dialog, b as DropdownMenu, W as Editable, x as EmptyState, S as ErrorSummary, ce as Field, k as FilterChip, le as FilterFieldPicker, A as FilterMenu, ue as FormErrors, M as FormField, r as Icon, de as ImageInput, N as ImageUpload, fe as InlineField, pe as InlineForm, C as Input, P as Kbd, me as LedgerMore, he as LedgerRow, ge as List, F as Meter, _e as Modal, ve as OptionsMenu, I as Pagination, ye as Pill, L as Popover, R as PopoverDialog, z as PricingCard, G as PropertyList, q as PropertyRow, J as Radio, w as SegmentedControl, H as Select, f as Skeleton, be as SortControl, j as SortMenu, B as Spinner, Y as Table, V as Tag, xe as TextInput, U as Textarea, Z as Toaster, Q as Toolbar, i as Tooltip, Se as TypingDots, $ as TypingIndicator, T as datePresets, E as describeFilter, D as filterOperators, l as hueFor, t as iconNames, ee as initColorMode, v as saveHint, n as setIconResolver, O as sortDirections, X as toast, te as useColorMode, s as useConfirm, ne as useForceLightMode };
|