@thl-ui/vue 0.0.0-stage → 0.1.1

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.
@@ -0,0 +1,303 @@
1
+ import { defineComponent as r, ref as B, h as l, computed as $ } from "vue";
2
+ import { bem as d, cx as S } from "@thl-ui/core";
3
+ import { usePrefix as v, useI18n as y, useDefaults as z } from "../context.js";
4
+ import { icon as f, any as g, str as p, bool as x } from "./util.js";
5
+ const R = /* @__PURE__ */ r({
6
+ name: "ThlIcon",
7
+ props: { name: { type: String, required: !0 }, size: g(), label: String, strokeWidth: Number },
8
+ setup(e) {
9
+ return () => f(e.name, { size: e.size, label: e.label, strokeWidth: e.strokeWidth });
10
+ }
11
+ }), W = /* @__PURE__ */ r({
12
+ name: "ThlButton",
13
+ inheritAttrs: !1,
14
+ props: {
15
+ variant: String,
16
+ size: String,
17
+ outline: { type: Boolean, default: void 0 },
18
+ rounded: { type: Boolean, default: void 0 },
19
+ circle: Boolean,
20
+ block: Boolean,
21
+ loading: Boolean,
22
+ disabled: Boolean,
23
+ icon: String,
24
+ iconRight: String,
25
+ label: String,
26
+ href: String,
27
+ type: p("button"),
28
+ ripple: x(!0)
29
+ },
30
+ emits: ["click"],
31
+ setup(e, { slots: t, attrs: a, emit: o }) {
32
+ const n = v(), i = z("Button", e), c = (s) => {
33
+ if (e.ripple && !e.disabled) {
34
+ const b = s.currentTarget, u = b.getBoundingClientRect(), m = document.createElement("span"), h = Math.max(u.width, u.height);
35
+ m.className = `${n.value}-btn__ripple`, Object.assign(m.style, { width: `${h}px`, height: `${h}px`, left: `${s.clientX - u.left - h / 2}px`, top: `${s.clientY - u.top - h / 2}px` }), b.appendChild(m), setTimeout(() => m.remove(), 600);
36
+ }
37
+ o("click", s);
38
+ };
39
+ return () => {
40
+ const s = d("btn", n.value), b = i.value.variant ?? "default", u = S(
41
+ s({
42
+ [b]: !0,
43
+ outline: i.value.outline,
44
+ rounded: i.value.rounded,
45
+ circle: e.circle,
46
+ block: e.block,
47
+ size: i.value.size && i.value.size !== "md" ? i.value.size : void 0
48
+ }),
49
+ { "is-loading": e.loading },
50
+ a.class
51
+ ), m = [
52
+ e.label ? l("span", { class: s("label") }, e.label) : null,
53
+ e.loading ? l("span", { class: s("spinner"), "aria-hidden": "true" }) : t.icon ? t.icon() : f(e.icon, { class: s("icon") }),
54
+ t.default?.(),
55
+ f(e.iconRight, { class: s("icon") })
56
+ ], { class: h, ...T } = a;
57
+ return e.href ? l("a", { ...T, href: e.disabled ? void 0 : e.href, class: u, "aria-disabled": e.disabled || void 0, onClick: c }, m) : l("button", { ...T, type: e.type, class: u, disabled: e.disabled || e.loading, "aria-busy": e.loading || void 0, onClick: c }, m);
58
+ };
59
+ }
60
+ }), I = /* @__PURE__ */ r({
61
+ name: "ThlButtonGroup",
62
+ props: { vertical: Boolean, justified: Boolean },
63
+ setup(e, { slots: t }) {
64
+ const a = v();
65
+ return () => l("div", { role: "group", class: d("btn-group", a.value)({ vertical: e.vertical, justified: e.justified }) }, t.default?.());
66
+ }
67
+ }), D = /* @__PURE__ */ r({
68
+ name: "ThlBadge",
69
+ props: { color: String, size: String, dot: Boolean, pill: x(!0) },
70
+ setup(e, { slots: t }) {
71
+ const a = v();
72
+ return () => l(
73
+ "span",
74
+ { class: d("badge", a.value)({ [e.color ?? "default"]: !0, size: e.size && e.size !== "md" ? e.size : void 0, dot: e.dot, square: !e.pill }) },
75
+ e.dot ? void 0 : t.default?.()
76
+ );
77
+ }
78
+ }), N = /* @__PURE__ */ r({
79
+ name: "ThlLabel",
80
+ props: { color: String, rounded: Boolean, outline: Boolean, closable: Boolean },
81
+ emits: ["close"],
82
+ setup(e, { slots: t, emit: a }) {
83
+ const o = v(), { t: n } = y();
84
+ return () => {
85
+ const i = d("label", o.value);
86
+ return l("span", { class: i({ [e.color ?? "default"]: !0, rounded: e.rounded, outline: e.outline }) }, [
87
+ t.default?.(),
88
+ e.closable ? l("button", { type: "button", class: i("close"), "aria-label": n("common.remove"), onClick: () => a("close") }, "×") : null
89
+ ]);
90
+ };
91
+ }
92
+ }), G = /* @__PURE__ */ r({
93
+ name: "ThlAvatar",
94
+ props: { src: String, name: String, size: g(), status: String, shape: p("circle") },
95
+ setup(e) {
96
+ const t = v(), { t: a } = y();
97
+ return () => {
98
+ const o = d("avatar", t.value), n = e.size ?? "md", i = e.name?.split(/\s+/).map((c) => c[0]).slice(0, 2).join("");
99
+ return l(
100
+ "span",
101
+ {
102
+ class: o({ size: typeof n == "string" && n !== "md" ? n : void 0, rounded: e.shape === "rounded", square: e.shape === "square" }),
103
+ style: typeof n == "number" ? { "--_size": `${n}px` } : void 0,
104
+ title: e.name
105
+ },
106
+ [
107
+ e.src ? l("img", { src: e.src, alt: e.name ?? "" }) : i,
108
+ e.status ? l("span", { class: o("status", { [e.status]: !0 }), role: "img", "aria-label": a(`layout.${e.status}`) }) : null
109
+ ]
110
+ );
111
+ };
112
+ }
113
+ }), k = /* @__PURE__ */ r({
114
+ name: "ThlSpinner",
115
+ props: { size: String, label: String },
116
+ setup(e) {
117
+ const t = v(), { t: a } = y();
118
+ return () => l("span", {
119
+ role: "status",
120
+ "aria-label": e.label ?? a("common.loading"),
121
+ class: d("spinner", t.value)({ [e.size ?? ""]: !!e.size && e.size !== "md" })
122
+ });
123
+ }
124
+ }), L = /* @__PURE__ */ r({
125
+ name: "ThlPreloader",
126
+ props: { hidden: Boolean },
127
+ setup(e) {
128
+ const t = v();
129
+ return () => l("div", { class: S(`${t.value}-preloader`, { "is-hidden": e.hidden }) }, l(k, { size: "lg" }));
130
+ }
131
+ }), E = /* @__PURE__ */ r({
132
+ name: "ThlSkeleton",
133
+ props: { width: g(), height: g(), circle: Boolean, count: { type: Number, default: 1 } },
134
+ setup(e) {
135
+ const t = v();
136
+ return () => Array.from(
137
+ { length: e.count },
138
+ () => l("span", {
139
+ "aria-hidden": "true",
140
+ class: d("skeleton", t.value)({ circle: e.circle }),
141
+ style: { display: "block", width: e.width, height: e.height }
142
+ })
143
+ );
144
+ }
145
+ }), H = /* @__PURE__ */ r({
146
+ name: "ThlDivider",
147
+ props: { vertical: Boolean },
148
+ setup(e, { slots: t }) {
149
+ const a = v();
150
+ return () => {
151
+ const o = d("divider", a.value);
152
+ return t.default ? l("div", { role: "separator", class: o({ text: !0 }) }, t.default()) : e.vertical ? l("span", { role: "separator", class: o({ vertical: !0 }) }) : l("hr", { class: o() });
153
+ };
154
+ }
155
+ }), M = /* @__PURE__ */ r({
156
+ name: "ThlCard",
157
+ props: { title: String, subtitle: String, bordered: { type: Boolean, default: void 0 }, shadow: { type: Boolean, default: void 0 }, flush: Boolean },
158
+ setup(e, { slots: t }) {
159
+ const a = v(), o = z("Card", e);
160
+ return () => {
161
+ const n = d("card", a.value), i = e.title || t.title || t.actions;
162
+ return l("div", { class: n({ shadow: o.value.shadow, borderless: o.value.bordered === !1, flush: e.flush }) }, [
163
+ t.media ? l("div", { class: n("media") }, t.media()) : null,
164
+ i ? l("div", { class: n("header") }, [
165
+ l("div", [
166
+ l("h2", { class: n("title") }, t.title ? t.title() : e.title),
167
+ e.subtitle ? l("p", { class: n("subtitle") }, e.subtitle) : null
168
+ ]),
169
+ t.actions ? l("div", { class: n("actions") }, t.actions()) : null
170
+ ]) : null,
171
+ l("div", { class: n("body") }, t.default?.()),
172
+ t.footer ? l("div", { class: n("footer") }, t.footer()) : null
173
+ ]);
174
+ };
175
+ }
176
+ }), O = /* @__PURE__ */ r({
177
+ name: "ThlPanel",
178
+ props: {
179
+ title: String,
180
+ color: String,
181
+ collapsible: Boolean,
182
+ collapsed: { type: Boolean, default: void 0 },
183
+ dismissible: Boolean,
184
+ loading: Boolean,
185
+ expandable: Boolean,
186
+ loadingText: String
187
+ },
188
+ emits: ["update:collapsed", "dismiss"],
189
+ setup(e, { slots: t, emit: a }) {
190
+ const o = v(), { t: n } = y(), i = B(!!e.collapsed), c = B(!1), s = B(!1), b = $(() => e.collapsed ?? i.value);
191
+ return () => {
192
+ if (c.value) return null;
193
+ const u = d("panel", o.value), m = (h, T, w, C = {}) => l("button", { type: "button", "aria-label": h, onClick: w, ...C }, f(T));
194
+ return l("div", { class: S(u({ [e.color ?? "default"]: !0 }), { "is-collapsed": b.value, "is-fullscreen": s.value }) }, [
195
+ e.title || t.title || e.collapsible || e.dismissible ? l("div", { class: u("heading") }, [
196
+ l("span", t.title ? t.title() : e.title),
197
+ l("div", { class: u("actions") }, [
198
+ t.actions?.(),
199
+ e.expandable ? m(s.value ? n("common.collapse") : n("common.expand"), s.value ? "minimize-2" : "maximize-2", () => s.value = !s.value) : null,
200
+ e.collapsible ? m(
201
+ b.value ? n("common.expand") : n("common.collapse"),
202
+ b.value ? "plus" : "minus",
203
+ () => {
204
+ i.value = !b.value, a("update:collapsed", i.value);
205
+ },
206
+ { "aria-expanded": !b.value }
207
+ ) : null,
208
+ e.dismissible ? m(n("common.close"), "x", () => {
209
+ c.value = !0, a("dismiss");
210
+ }) : null
211
+ ])
212
+ ]) : null,
213
+ l(
214
+ "div",
215
+ { class: u("wrapper") },
216
+ l("div", [l("div", { class: u("body") }, t.default?.()), t.footer ? l("div", { class: u("footer") }, t.footer()) : null])
217
+ ),
218
+ e.loading ? l("div", { class: `${o.value}-block-overlay`, "aria-busy": "true" }, [l(k), e.loadingText ? l("span", e.loadingText) : null]) : null
219
+ ]);
220
+ };
221
+ }
222
+ }), X = /* @__PURE__ */ r({
223
+ name: "ThlWell",
224
+ props: { size: String },
225
+ setup(e, { slots: t }) {
226
+ const a = v();
227
+ return () => l("div", { class: d("well", a.value)({ [e.size ?? ""]: !!e.size }) }, t.default?.());
228
+ }
229
+ }), Y = /* @__PURE__ */ r({
230
+ name: "ThlRibbon",
231
+ props: { text: { type: String, required: !0 }, color: p("primary"), variant: p("default"), position: p("left"), placement: p("top") },
232
+ setup(e, { slots: t }) {
233
+ const a = v();
234
+ return () => {
235
+ const o = e.variant === "vertical-left" || e.variant === "vertical-right";
236
+ return l("div", { class: d("ribbon-wrapper", a.value)({ reverse: e.position === "right", bottom: e.placement === "bottom", vertical: o }) }, [
237
+ l(
238
+ "div",
239
+ {
240
+ class: d(
241
+ "ribbon",
242
+ a.value
243
+ )({
244
+ [e.color]: !0,
245
+ [e.variant]: e.variant !== "default",
246
+ right: e.position === "right" && !o,
247
+ left: e.position === "left" && e.variant === "badge",
248
+ bottom: e.placement === "bottom"
249
+ })
250
+ },
251
+ e.text
252
+ ),
253
+ l("div", { class: `${a.value}-ribbon__content` }, t.default?.())
254
+ ]);
255
+ };
256
+ }
257
+ }), A = { success: "circle-check", danger: "circle-x", warning: "triangle-alert", info: "info", primary: "info" }, F = /* @__PURE__ */ r({
258
+ name: "ThlAlert",
259
+ props: { type: p("info"), title: String, icon: g(), dismissible: Boolean, soft: Boolean, image: String },
260
+ emits: ["close"],
261
+ setup(e, { slots: t, emit: a }) {
262
+ const o = v(), { t: n } = y(), i = B(!0);
263
+ return () => {
264
+ if (!i.value) return null;
265
+ const c = d("alert", o.value), s = e.icon === !0 ? A[e.type] ?? "info" : typeof e.icon == "string" ? e.icon : void 0;
266
+ return l("div", { role: e.type === "danger" || e.type === "warning" ? "alert" : "status", class: c({ [e.type]: !0, soft: e.soft }) }, [
267
+ e.image ? l("img", { class: c("img"), src: e.image, alt: "" }) : null,
268
+ s ? l("span", { class: c("icon") }, f(s)) : null,
269
+ l("div", { class: c("content") }, [e.title ? l("h2", { class: c("title") }, e.title) : null, t.default?.()]),
270
+ e.dismissible ? l(
271
+ "button",
272
+ {
273
+ type: "button",
274
+ class: c("close"),
275
+ "aria-label": n("common.close"),
276
+ onClick: () => {
277
+ i.value = !1, a("close");
278
+ }
279
+ },
280
+ "×"
281
+ ) : null
282
+ ]);
283
+ };
284
+ }
285
+ });
286
+ export {
287
+ F as ThlAlert,
288
+ G as ThlAvatar,
289
+ D as ThlBadge,
290
+ W as ThlButton,
291
+ I as ThlButtonGroup,
292
+ M as ThlCard,
293
+ H as ThlDivider,
294
+ R as ThlIcon,
295
+ N as ThlLabel,
296
+ O as ThlPanel,
297
+ L as ThlPreloader,
298
+ Y as ThlRibbon,
299
+ E as ThlSkeleton,
300
+ k as ThlSpinner,
301
+ X as ThlWell
302
+ };
303
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sources":["../../src/components/basic.ts"],"sourcesContent":["import { defineComponent, h, ref, computed, type PropType } from 'vue';\nimport { bem, cx, type ThlSemanticColor } from '@thl-ui/core';\nimport { useDefaults, usePrefix, useI18n } from '../context';\nimport { icon, str, bool, any } from './util';\n\nexport const ThlIcon = /*#__PURE__*/ defineComponent({\n name: 'ThlIcon',\n props: { name: { type: String, required: true }, size: any<number | string>(), label: String, strokeWidth: Number },\n setup(p) {\n return () => icon(p.name, { size: p.size, label: p.label, strokeWidth: p.strokeWidth });\n },\n});\n\nexport const ThlButton = /*#__PURE__*/ defineComponent({\n name: 'ThlButton',\n inheritAttrs: false,\n props: {\n variant: String,\n size: String as PropType<'xs' | 'sm' | 'md' | 'lg' | 'xl'>,\n outline: { type: Boolean, default: undefined },\n rounded: { type: Boolean, default: undefined },\n circle: Boolean,\n block: Boolean,\n loading: Boolean,\n disabled: Boolean,\n icon: String,\n iconRight: String,\n label: String,\n href: String,\n type: str<'button' | 'submit' | 'reset'>('button'),\n ripple: bool(true),\n },\n emits: ['click'],\n setup(p, { slots, attrs, emit }) {\n const pre = usePrefix();\n const d = useDefaults('Button', p as any);\n const onClick = (e: MouseEvent) => {\n if (p.ripple && !p.disabled) {\n const el = e.currentTarget as HTMLElement,\n r = el.getBoundingClientRect(),\n s = document.createElement('span'),\n dd = Math.max(r.width, r.height);\n s.className = `${pre.value}-btn__ripple`;\n Object.assign(s.style, { width: `${dd}px`, height: `${dd}px`, left: `${e.clientX - r.left - dd / 2}px`, top: `${e.clientY - r.top - dd / 2}px` });\n el.appendChild(s);\n setTimeout(() => s.remove(), 600);\n }\n emit('click', e);\n };\n return () => {\n const b = bem('btn', pre.value);\n const v = (d.value.variant ?? 'default') as string;\n const cls = cx(\n b({\n [v]: true,\n outline: d.value.outline,\n rounded: d.value.rounded,\n circle: p.circle,\n block: p.block,\n size: d.value.size && d.value.size !== 'md' ? d.value.size : undefined,\n }),\n { 'is-loading': p.loading },\n attrs.class as string,\n );\n const kids = [\n p.label ? h('span', { class: b('label') }, p.label) : null,\n p.loading ? h('span', { class: b('spinner'), 'aria-hidden': 'true' }) : slots.icon ? slots.icon() : icon(p.icon, { class: b('icon') }),\n slots.default?.(),\n icon(p.iconRight, { class: b('icon') }),\n ];\n const { class: _c, ...rest } = attrs;\n if (p.href) return h('a', { ...rest, href: p.disabled ? undefined : p.href, class: cls, 'aria-disabled': p.disabled || undefined, onClick }, kids);\n return h('button', { ...rest, type: p.type, class: cls, disabled: p.disabled || p.loading, 'aria-busy': p.loading || undefined, onClick }, kids);\n };\n },\n});\n\nexport const ThlButtonGroup = /*#__PURE__*/ defineComponent({\n name: 'ThlButtonGroup',\n props: { vertical: Boolean, justified: Boolean },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () => h('div', { role: 'group', class: bem('btn-group', pre.value)({ vertical: p.vertical, justified: p.justified }) }, slots.default?.());\n },\n});\n\nexport const ThlBadge = /*#__PURE__*/ defineComponent({\n name: 'ThlBadge',\n props: { color: String as PropType<ThlSemanticColor>, size: String, dot: Boolean, pill: bool(true) },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () =>\n h(\n 'span',\n { class: bem('badge', pre.value)({ [p.color ?? 'default']: true, size: p.size && p.size !== 'md' ? p.size : undefined, dot: p.dot, square: !p.pill }) },\n p.dot ? undefined : slots.default?.(),\n );\n },\n});\n\nexport const ThlLabel = /*#__PURE__*/ defineComponent({\n name: 'ThlLabel',\n props: { color: String, rounded: Boolean, outline: Boolean, closable: Boolean },\n emits: ['close'],\n setup(p, { slots, emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n return () => {\n const b = bem('label', pre.value);\n return h('span', { class: b({ [p.color ?? 'default']: true, rounded: p.rounded, outline: p.outline }) }, [\n slots.default?.(),\n p.closable ? h('button', { type: 'button', class: b('close'), 'aria-label': t('common.remove'), onClick: () => emit('close') }, '×') : null,\n ]);\n };\n },\n});\n\nexport const ThlAvatar = /*#__PURE__*/ defineComponent({\n name: 'ThlAvatar',\n props: { src: String, name: String, size: any<string | number>(), status: String, shape: str('circle') },\n setup(p) {\n const pre = usePrefix();\n const { t } = useI18n();\n return () => {\n const b = bem('avatar', pre.value);\n const size = p.size ?? 'md';\n const initials = p.name\n ?.split(/\\s+/)\n .map((w) => w[0])\n .slice(0, 2)\n .join('');\n return h(\n 'span',\n {\n class: b({ size: typeof size === 'string' && size !== 'md' ? size : undefined, rounded: p.shape === 'rounded', square: p.shape === 'square' }),\n style: typeof size === 'number' ? { '--_size': `${size}px` } : undefined,\n title: p.name,\n },\n [\n p.src ? h('img', { src: p.src, alt: p.name ?? '' }) : initials,\n p.status ? h('span', { class: b('status', { [p.status]: true }), role: 'img', 'aria-label': t(`layout.${p.status}`) }) : null,\n ],\n );\n };\n },\n});\n\nexport const ThlSpinner = /*#__PURE__*/ defineComponent({\n name: 'ThlSpinner',\n props: { size: String, label: String },\n setup(p) {\n const pre = usePrefix();\n const { t } = useI18n();\n return () =>\n h('span', {\n role: 'status',\n 'aria-label': p.label ?? t('common.loading'),\n class: bem('spinner', pre.value)({ [p.size ?? '']: !!p.size && p.size !== 'md' }),\n });\n },\n});\nexport const ThlPreloader = /*#__PURE__*/ defineComponent({\n name: 'ThlPreloader',\n props: { hidden: Boolean },\n setup(p) {\n const pre = usePrefix();\n return () => h('div', { class: cx(`${pre.value}-preloader`, { 'is-hidden': p.hidden }) }, h(ThlSpinner, { size: 'lg' }));\n },\n});\nexport const ThlSkeleton = /*#__PURE__*/ defineComponent({\n name: 'ThlSkeleton',\n props: { width: any<string | number>(), height: any<string | number>(), circle: Boolean, count: { type: Number, default: 1 } },\n setup(p) {\n const pre = usePrefix();\n return () =>\n Array.from({ length: p.count }, () =>\n h('span', {\n 'aria-hidden': 'true',\n class: bem('skeleton', pre.value)({ circle: p.circle }),\n style: { display: 'block', width: p.width, height: p.height },\n }),\n );\n },\n});\nexport const ThlDivider = /*#__PURE__*/ defineComponent({\n name: 'ThlDivider',\n props: { vertical: Boolean },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () => {\n const b = bem('divider', pre.value);\n if (slots.default) return h('div', { role: 'separator', class: b({ text: true }) }, slots.default());\n return p.vertical ? h('span', { role: 'separator', class: b({ vertical: true }) }) : h('hr', { class: b() });\n };\n },\n});\n\n/* ---------------- Card / Panel / Well / Ribbon / Alert ---------------- */\nexport const ThlCard = /*#__PURE__*/ defineComponent({\n name: 'ThlCard',\n props: { title: String, subtitle: String, bordered: { type: Boolean, default: undefined }, shadow: { type: Boolean, default: undefined }, flush: Boolean },\n setup(p, { slots }) {\n const pre = usePrefix();\n const d = useDefaults('Card', p as any);\n return () => {\n const b = bem('card', pre.value);\n const hasHead = p.title || slots.title || slots.actions;\n return h('div', { class: b({ shadow: d.value.shadow, borderless: d.value.bordered === false, flush: p.flush }) }, [\n slots.media ? h('div', { class: b('media') }, slots.media()) : null,\n hasHead\n ? h('div', { class: b('header') }, [\n h('div', [\n h('h2', { class: b('title') }, slots.title ? slots.title() : p.title),\n p.subtitle ? h('p', { class: b('subtitle') }, p.subtitle) : null,\n ]),\n slots.actions ? h('div', { class: b('actions') }, slots.actions()) : null,\n ])\n : null,\n h('div', { class: b('body') }, slots.default?.()),\n slots.footer ? h('div', { class: b('footer') }, slots.footer()) : null,\n ]);\n };\n },\n});\n\nexport const ThlPanel = /*#__PURE__*/ defineComponent({\n name: 'ThlPanel',\n props: {\n title: String,\n color: String,\n collapsible: Boolean,\n collapsed: { type: Boolean, default: undefined },\n dismissible: Boolean,\n loading: Boolean,\n expandable: Boolean,\n loadingText: String,\n },\n emits: ['update:collapsed', 'dismiss'],\n setup(p, { slots, emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const inner = ref(!!p.collapsed);\n const gone = ref(false);\n const full = ref(false);\n const isCollapsed = computed(() => p.collapsed ?? inner.value);\n return () => {\n if (gone.value) return null;\n const b = bem('panel', pre.value);\n const btn = (label: string, ic: string, on: () => void, extra: object = {}) =>\n h('button', { type: 'button', 'aria-label': label, onClick: on, ...extra }, icon(ic));\n return h('div', { class: cx(b({ [p.color ?? 'default']: true }), { 'is-collapsed': isCollapsed.value, 'is-fullscreen': full.value }) }, [\n p.title || slots.title || p.collapsible || p.dismissible\n ? h('div', { class: b('heading') }, [\n h('span', slots.title ? slots.title() : p.title),\n h('div', { class: b('actions') }, [\n slots.actions?.(),\n p.expandable\n ? btn(full.value ? t('common.collapse') : t('common.expand'), full.value ? 'minimize-2' : 'maximize-2', () => (full.value = !full.value))\n : null,\n p.collapsible\n ? btn(\n isCollapsed.value ? t('common.expand') : t('common.collapse'),\n isCollapsed.value ? 'plus' : 'minus',\n () => {\n inner.value = !isCollapsed.value;\n emit('update:collapsed', inner.value);\n },\n { 'aria-expanded': !isCollapsed.value },\n )\n : null,\n p.dismissible\n ? btn(t('common.close'), 'x', () => {\n gone.value = true;\n emit('dismiss');\n })\n : null,\n ]),\n ])\n : null,\n h(\n 'div',\n { class: b('wrapper') },\n h('div', [h('div', { class: b('body') }, slots.default?.()), slots.footer ? h('div', { class: b('footer') }, slots.footer()) : null]),\n ),\n p.loading\n ? h('div', { class: `${pre.value}-block-overlay`, 'aria-busy': 'true' }, [h(ThlSpinner), p.loadingText ? h('span', p.loadingText) : null])\n : null,\n ]);\n };\n },\n});\n\nexport const ThlWell = /*#__PURE__*/ defineComponent({\n name: 'ThlWell',\n props: { size: String },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () => h('div', { class: bem('well', pre.value)({ [p.size ?? '']: !!p.size }) }, slots.default?.());\n },\n});\n\nexport const ThlRibbon = /*#__PURE__*/ defineComponent({\n name: 'ThlRibbon',\n props: { text: { type: String, required: true }, color: str('primary'), variant: str('default'), position: str('left'), placement: str('top') },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () => {\n const v = p.variant === 'vertical-left' || p.variant === 'vertical-right';\n return h('div', { class: bem('ribbon-wrapper', pre.value)({ reverse: p.position === 'right', bottom: p.placement === 'bottom', vertical: v }) }, [\n h(\n 'div',\n {\n class: bem(\n 'ribbon',\n pre.value,\n )({\n [p.color]: true,\n [p.variant]: p.variant !== 'default',\n right: p.position === 'right' && !v,\n left: p.position === 'left' && p.variant === 'badge',\n bottom: p.placement === 'bottom',\n }),\n },\n p.text,\n ),\n h('div', { class: `${pre.value}-ribbon__content` }, slots.default?.()),\n ]);\n };\n },\n});\n\nconst alertIcons: Record<string, string> = { success: 'circle-check', danger: 'circle-x', warning: 'triangle-alert', info: 'info', primary: 'info' };\nexport const ThlAlert = /*#__PURE__*/ defineComponent({\n name: 'ThlAlert',\n props: { type: str<ThlSemanticColor>('info'), title: String, icon: any<string | boolean>(), dismissible: Boolean, soft: Boolean, image: String },\n emits: ['close'],\n setup(p, { slots, emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const open = ref(true);\n return () => {\n if (!open.value) return null;\n const b = bem('alert', pre.value);\n const ic = p.icon === true ? (alertIcons[p.type] ?? 'info') : typeof p.icon === 'string' ? p.icon : undefined;\n return h('div', { role: p.type === 'danger' || p.type === 'warning' ? 'alert' : 'status', class: b({ [p.type]: true, soft: p.soft }) }, [\n p.image ? h('img', { class: b('img'), src: p.image, alt: '' }) : null,\n ic ? h('span', { class: b('icon') }, icon(ic)) : null,\n h('div', { class: b('content') }, [p.title ? h('h2', { class: b('title') }, p.title) : null, slots.default?.()]),\n p.dismissible\n ? h(\n 'button',\n {\n type: 'button',\n class: b('close'),\n 'aria-label': t('common.close'),\n onClick: () => {\n open.value = false;\n emit('close');\n },\n },\n '×',\n )\n : null,\n ]);\n };\n },\n});\n"],"names":["ThlIcon","defineComponent","any","p","icon","ThlButton","str","bool","slots","attrs","emit","pre","usePrefix","d","useDefaults","onClick","e","el","r","s","dd","b","bem","v","cls","cx","kids","h","_c","rest","ThlButtonGroup","ThlBadge","ThlLabel","t","useI18n","ThlAvatar","size","initials","w","ThlSpinner","ThlPreloader","ThlSkeleton","ThlDivider","ThlCard","hasHead","ThlPanel","inner","ref","gone","full","isCollapsed","computed","btn","label","ic","on","extra","ThlWell","ThlRibbon","alertIcons","ThlAlert","open"],"mappings":"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"}