@thl-ui/vue 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +58 -2
- package/dist/components/basic.d.ts +397 -0
- package/dist/components/basic.js +303 -0
- package/dist/components/basic.js.map +1 -0
- package/dist/components/data.d.ts +690 -0
- package/dist/components/data.js +911 -0
- package/dist/components/data.js.map +1 -0
- package/dist/components/form.d.ts +764 -0
- package/dist/components/form.js +1212 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/layout.d.ts +219 -0
- package/dist/components/layout.js +480 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/nav.d.ts +295 -0
- package/dist/components/nav.js +398 -0
- package/dist/components/nav.js.map +1 -0
- package/dist/components/overlay.d.ts +303 -0
- package/dist/components/overlay.js +437 -0
- package/dist/components/overlay.js.map +1 -0
- package/dist/components/util.d.ts +26 -0
- package/dist/components/util.js +35 -0
- package/dist/components/util.js.map +1 -0
- package/dist/context.d.ts +47 -0
- package/dist/context.js +81 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/package.json +56 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../src/components/form.ts"],"sourcesContent":["import {\n defineComponent,\n h,\n ref,\n watch,\n computed,\n provide,\n inject,\n onMounted,\n onUpdated,\n onBeforeUnmount,\n nextTick,\n type PropType,\n type InjectionKey,\n type Ref,\n} from 'vue';\nimport {\n bem,\n cx,\n uid,\n clickOutside,\n createSelect,\n createUpload,\n formatBytes,\n clamp,\n stepValue,\n valueFromPosition,\n percentOf,\n roundToStep,\n monthGrid,\n weekdayNames,\n isSameDay,\n isBetween,\n addMonths,\n presetRanges,\n toISODate,\n parseISODate,\n validate,\n linkFieldLabel,\n type Rule,\n type RuleResult,\n type SelectOption,\n} from '@thl-ui/core';\nimport { useDefaults, usePrefix, useI18n, useStore, useThlContext } from '../context';\nimport { icon, str, any } from './util';\nimport { ThlButton } from './basic';\n\n/* ================= Form + Field ================= */\ninterface FormCtx {\n register(name: string, f: { validate: () => RuleResult; reset: () => void }): () => void;\n values: Ref<Record<string, unknown>>;\n submitted: Ref<boolean>;\n}\nconst FORM_KEY: InjectionKey<FormCtx> = Symbol('thl-form');\n\nexport const ThlForm = /*#__PURE__*/ defineComponent({\n name: 'ThlForm',\n props: {\n layout: str<'vertical' | 'horizontal'>('vertical'),\n bordered: Boolean,\n values: { type: Object as PropType<Record<string, unknown>>, default: () => ({}) },\n },\n emits: ['submit'],\n setup(p, { slots, emit, expose }) {\n const pre = usePrefix();\n const fields = new Map<string, { validate: () => RuleResult; reset: () => void }>();\n const submitted = ref(false);\n provide(FORM_KEY, {\n register: (n, f) => {\n fields.set(n, f);\n return () => fields.delete(n);\n },\n values: computed(() => p.values),\n submitted,\n });\n const validateAll = () => {\n let ok = true;\n fields.forEach((f) => {\n if (f.validate()) ok = false;\n });\n return ok;\n };\n expose({\n validate: validateAll,\n reset: () => {\n submitted.value = false;\n fields.forEach((f) => f.reset());\n },\n });\n return () =>\n h(\n 'form',\n {\n novalidate: true,\n class: bem('form', pre.value)({ horizontal: p.layout === 'horizontal', bordered: p.bordered }),\n onSubmit: (e: Event) => {\n e.preventDefault();\n submitted.value = true;\n emit('submit', validateAll(), e);\n },\n onReset: () => {\n submitted.value = false;\n fields.forEach((f) => f.reset());\n },\n },\n slots.default?.(),\n );\n },\n});\n\nexport const ThlField = /*#__PURE__*/ defineComponent({\n name: 'ThlField',\n props: {\n label: String,\n help: String,\n error: String,\n required: Boolean,\n name: String,\n value: any<unknown>(),\n rules: Array as PropType<Rule[]>,\n status: String,\n for: String,\n },\n setup(p, { slots }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const form = inject(FORM_KEY, null);\n const id = uid('field');\n const res = ref<RuleResult>(null);\n const run = () => (res.value = validate(p.value, p.rules ?? [], form?.values.value));\n let off: (() => void) | undefined;\n onMounted(() => {\n if (form && p.name) off = form.register(p.name, { validate: run, reset: () => (res.value = null) });\n });\n onBeforeUnmount(() => off?.());\n watch(\n () => p.value,\n () => {\n if (form?.submitted.value && p.name) run();\n },\n );\n const box = ref<HTMLElement>();\n const lab = ref<HTMLElement>();\n let link = { describedBy: undefined as string | undefined, invalid: false };\n const wire = () => linkFieldLabel(box.value, lab.value, { id: p.for ?? `${id}-input`, ...link });\n onMounted(wire);\n onUpdated(wire);\n return () => {\n const b = bem('field', pre.value);\n const err = p.error ?? (res.value ? t(res.value.key, res.value.params as any) : undefined);\n const inputId = p.for ?? `${id}-input`;\n const describedBy = err ? `${id}-err` : p.help ? `${id}-help` : undefined;\n link = { describedBy, invalid: !!err };\n return h(\n 'div',\n { class: cx(b(), { 'has-error': !!err || p.status === 'error', 'has-success': p.status === 'success', 'has-warning': p.status === 'warning' }) },\n [\n p.label ? h('label', { ref: lab, class: cx(b('label'), p.required && `${b('label')}--required`), for: inputId }, p.label) : null,\n h('div', { ref: box }, [\n slots.default?.({ id: inputId, describedBy, invalid: !!err }),\n err\n ? h('div', { id: `${id}-err`, class: b('error'), role: 'alert' }, err)\n : p.help\n ? h('div', { id: `${id}-help`, class: b('help') }, p.help)\n : null,\n ]),\n ],\n );\n };\n },\n});\nexport const ThlFormActions = /*#__PURE__*/ defineComponent({\n name: 'ThlFormActions',\n setup(_, { slots }) {\n const pre = usePrefix();\n return () => h('div', { class: `${pre.value}-form__actions` }, slots.default?.());\n },\n});\n\n/* ================= Input / Textarea / Select (native) / InputGroup ================= */\nexport const ThlInput = /*#__PURE__*/ defineComponent({\n name: 'ThlInput',\n inheritAttrs: false,\n props: { modelValue: any<string | number | null>(), size: String, variant: String, rounded: Boolean, invalid: Boolean },\n emits: ['update:modelValue'],\n setup(p, { attrs, emit, expose }) {\n const pre = usePrefix();\n const d = useDefaults('Input', p as any);\n const el = ref<HTMLInputElement>();\n expose({ focus: () => el.value?.focus(), el });\n return () =>\n h('input', {\n ...attrs,\n ref: el,\n value: p.modelValue ?? '',\n 'aria-invalid': p.invalid || undefined,\n class: cx(\n bem(\n 'input',\n pre.value,\n )({\n size: d.value.size !== 'md' ? d.value.size : undefined,\n [(d.value.variant as string) ?? '']: !!d.value.variant && d.value.variant !== 'default',\n rounded: p.rounded,\n }),\n attrs.class as string,\n ),\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLInputElement).value),\n });\n },\n});\nexport const ThlTextarea = /*#__PURE__*/ defineComponent({\n name: 'ThlTextarea',\n inheritAttrs: false,\n props: { modelValue: String, variant: String },\n emits: ['update:modelValue'],\n setup(p, { attrs, emit }) {\n const pre = usePrefix();\n return () =>\n h('textarea', {\n ...attrs,\n value: p.modelValue ?? '',\n class: cx(bem('input', pre.value)({ textarea: true, [p.variant ?? '']: !!p.variant && p.variant !== 'default' }), attrs.class as string),\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLTextAreaElement).value),\n });\n },\n});\nexport const ThlNativeSelect = /*#__PURE__*/ defineComponent({\n name: 'ThlNativeSelect',\n inheritAttrs: false,\n props: { modelValue: any<string | number>(), options: Array as PropType<Array<{ label: string; value: string | number }>>, size: String },\n emits: ['update:modelValue'],\n setup(p, { attrs, emit, slots }) {\n const pre = usePrefix();\n return () =>\n h(\n 'select',\n {\n ...attrs,\n value: p.modelValue,\n class: cx(bem('input', pre.value)({ size: p.size && p.size !== 'md' ? p.size : undefined }), attrs.class as string),\n onChange: (e: Event) => emit('update:modelValue', (e.target as HTMLSelectElement).value),\n },\n [...(p.options ?? []).map((o) => h('option', { key: o.value, value: o.value, selected: o.value === p.modelValue }, o.label)), slots.default?.()],\n );\n },\n});\nexport const ThlInputGroup = /*#__PURE__*/ defineComponent({\n name: 'ThlInputGroup',\n props: { prepend: String, append: String },\n setup(p, { slots }) {\n const pre = usePrefix();\n const add = (t?: string) => (t ? h('span', { class: `${pre.value}-input-group__addon` }, t) : null);\n return () =>\n h('div', { class: `${pre.value}-input-group` }, [\n slots.prepend ? slots.prepend() : add(p.prepend),\n slots.default?.(),\n slots.append ? slots.append() : add(p.append),\n ]);\n },\n});\nexport const ThlFloatingLabel = /*#__PURE__*/ defineComponent({\n name: 'ThlFloatingLabel',\n props: { label: { type: String, required: true }, for: { type: String, required: true } },\n setup(p, { slots }) {\n const pre = usePrefix();\n return () => h('div', { class: `${pre.value}-float` }, [slots.default?.(), h('label', { for: p.for, class: `${pre.value}-float__label` }, p.label)]);\n },\n});\n\n/* ================= Checkbox / Radio / Switch ================= */\nexport const ThlCheckbox = /*#__PURE__*/ defineComponent({\n name: 'ThlCheckbox',\n inheritAttrs: false,\n props: {\n modelValue: any<boolean | unknown[]>(),\n value: any<unknown>(),\n color: String,\n label: String,\n indeterminate: Boolean,\n skin: String,\n disabled: Boolean,\n },\n emits: ['update:modelValue', 'change'],\n setup(p, { attrs, slots, emit }) {\n const pre = usePrefix();\n const el = ref<HTMLInputElement>();\n watch(\n () => p.indeterminate,\n (v) => {\n if (el.value) el.value.indeterminate = v;\n },\n { flush: 'post' },\n );\n onMounted(() => {\n if (el.value) el.value.indeterminate = p.indeterminate;\n });\n const checked = computed(() => (Array.isArray(p.modelValue) ? p.modelValue.includes(p.value) : !!p.modelValue));\n const toggle = (e: Event) => {\n const c = (e.target as HTMLInputElement).checked;\n const next = Array.isArray(p.modelValue) ? (c ? [...p.modelValue, p.value] : p.modelValue.filter((x) => x !== p.value)) : c;\n emit('update:modelValue', next);\n emit('change', c);\n };\n return () => {\n const b = bem('check', pre.value);\n return h(\n 'label',\n {\n class: cx(b({ [p.color ?? '']: !!p.color, [p.skin ?? '']: !!p.skin && p.skin !== 'default' }), { 'is-disabled': p.disabled }, attrs.class as string),\n },\n [\n h('input', {\n ...attrs,\n class: b('input'),\n ref: el,\n type: 'checkbox',\n checked: checked.value,\n disabled: p.disabled,\n 'aria-checked': p.indeterminate ? 'mixed' : undefined,\n onChange: toggle,\n }),\n h('span', { class: b('box'), 'aria-hidden': 'true' }),\n p.label || slots.default ? h('span', slots.default ? slots.default() : p.label) : null,\n ],\n );\n };\n },\n});\nexport const ThlRadio = /*#__PURE__*/ defineComponent({\n name: 'ThlRadio',\n inheritAttrs: false,\n props: { modelValue: any<unknown>(), value: any<unknown>(), color: String, label: String, skin: String, disabled: Boolean, name: String },\n emits: ['update:modelValue'],\n setup(p, { attrs, slots, emit }) {\n const pre = usePrefix();\n return () => {\n const b = bem('check', pre.value);\n return h(\n 'label',\n { class: cx(b({ radio: true, [p.color ?? '']: !!p.color, [p.skin ?? '']: !!p.skin && p.skin !== 'default' }), { 'is-disabled': p.disabled }) },\n [\n h('input', {\n ...attrs,\n type: 'radio',\n name: p.name,\n class: b('input'),\n checked: p.modelValue === p.value,\n disabled: p.disabled,\n onChange: () => emit('update:modelValue', p.value),\n }),\n h('span', { class: b('box'), 'aria-hidden': 'true' }),\n p.label || slots.default ? h('span', slots.default ? slots.default() : p.label) : null,\n ],\n );\n };\n },\n});\nexport const ThlCheckboxGroup = /*#__PURE__*/ defineComponent({\n name: 'ThlCheckboxGroup',\n props: {\n modelValue: { type: Array as PropType<unknown[]>, default: () => [] },\n options: { type: Array as PropType<Array<{ label: string; value: unknown; disabled?: boolean }>>, required: true },\n color: String,\n vertical: Boolean,\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n return () =>\n h(\n 'div',\n { role: 'group', class: bem('check-group', pre.value)({ vertical: p.vertical }) },\n p.options.map((o) =>\n h(ThlCheckbox, {\n key: String(o.value),\n modelValue: p.modelValue,\n value: o.value,\n label: o.label,\n color: p.color,\n disabled: o.disabled,\n 'onUpdate:modelValue': (v: unknown) => emit('update:modelValue', v),\n }),\n ),\n );\n },\n});\nexport const ThlRadioGroup = /*#__PURE__*/ defineComponent({\n name: 'ThlRadioGroup',\n props: {\n modelValue: any<unknown>(),\n options: { type: Array as PropType<Array<{ label: string; value: unknown; disabled?: boolean }>>, required: true },\n color: String,\n vertical: Boolean,\n name: String,\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const auto = uid('radio');\n return () =>\n h(\n 'div',\n { role: 'radiogroup', class: bem('check-group', pre.value)({ vertical: p.vertical }) },\n p.options.map((o) =>\n h(ThlRadio, {\n key: String(o.value),\n name: p.name ?? auto,\n modelValue: p.modelValue,\n value: o.value,\n label: o.label,\n color: p.color,\n disabled: o.disabled,\n 'onUpdate:modelValue': (v: unknown) => emit('update:modelValue', v),\n }),\n ),\n );\n },\n});\nexport const ThlSwitch = /*#__PURE__*/ defineComponent({\n name: 'ThlSwitch',\n inheritAttrs: false,\n props: { modelValue: Boolean, color: String, size: String, label: String, disabled: Boolean },\n emits: ['update:modelValue'],\n setup(p, { attrs, emit }) {\n const pre = usePrefix();\n return () => {\n const b = bem('switch', pre.value);\n return h('label', { class: b({ [p.color ?? '']: !!p.color, size: p.size && p.size !== 'md' ? p.size : undefined }) }, [\n h('input', {\n ...attrs,\n type: 'checkbox',\n role: 'switch',\n class: b('input'),\n checked: p.modelValue,\n disabled: p.disabled,\n onChange: (e: Event) => emit('update:modelValue', (e.target as HTMLInputElement).checked),\n }),\n h('span', { class: b('track'), 'aria-hidden': 'true' }),\n p.label ? h('span', p.label) : null,\n ]);\n };\n },\n});\n\n/* ================= NumberInput / Slider ================= */\nexport const ThlNumberInput = /*#__PURE__*/ defineComponent({\n name: 'ThlNumberInput',\n props: {\n modelValue: any<number | null>(),\n min: Number,\n max: Number,\n step: { type: Number, default: 1 },\n prefix: String,\n suffix: String,\n disabled: Boolean,\n id: String,\n size: String,\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const set = (n: number) => emit('update:modelValue', clamp(n, p.min, p.max));\n return () => {\n const b = bem('number', pre.value);\n const v = p.modelValue ?? 0;\n const o = { step: p.step, min: p.min, max: p.max };\n return h('div', { class: b() }, [\n p.prefix ? h('span', { class: `${pre.value}-input-group__addon` }, p.prefix) : null,\n h(\n 'button',\n {\n type: 'button',\n class: b('btn'),\n tabindex: -1,\n 'aria-label': '-',\n disabled: p.disabled || (p.min !== undefined && v <= p.min),\n onClick: () => set(stepValue(v, -1, o)),\n },\n icon('minus'),\n ),\n h('input', {\n id: p.id,\n type: 'number',\n inputmode: 'decimal',\n class: bem('input', pre.value)({ size: p.size && p.size !== 'md' ? p.size : undefined }),\n value: p.modelValue ?? '',\n min: p.min,\n max: p.max,\n step: p.step,\n disabled: p.disabled,\n 'aria-label': t('validation.number'),\n onInput: (e: Event) => {\n const s = (e.target as HTMLInputElement).value;\n emit('update:modelValue', s === '' ? null : Number(s));\n },\n onBlur: () => p.modelValue != null && set(roundToStep(p.modelValue, p.step, p.min ?? 0)),\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n set(stepValue(v, 1, o));\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n set(stepValue(v, -1, o));\n }\n },\n }),\n h(\n 'button',\n {\n type: 'button',\n class: b('btn'),\n tabindex: -1,\n 'aria-label': '+',\n disabled: p.disabled || (p.max !== undefined && v >= p.max),\n onClick: () => set(stepValue(v, 1, o)),\n },\n icon('plus'),\n ),\n p.suffix ? h('span', { class: `${pre.value}-input-group__addon` }, p.suffix) : null,\n ]);\n };\n },\n});\n\nexport const ThlSlider = /*#__PURE__*/ defineComponent({\n name: 'ThlSlider',\n props: {\n modelValue: { type: [Number, Array] as PropType<number | [number, number]>, required: true },\n min: { type: Number, default: 0 },\n max: { type: Number, default: 100 },\n step: { type: Number, default: 1 },\n color: String,\n disabled: Boolean,\n showTip: { type: Boolean, default: true },\n showScale: Boolean,\n format: { type: Function as PropType<(n: number) => string>, default: String },\n ariaLabel: String,\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const rail = ref<HTMLElement>();\n const fromX = (x: number) => {\n const el = rail.value!;\n const r = el.getBoundingClientRect();\n const ratio = (x - r.left) / r.width;\n return valueFromPosition(getComputedStyle(el).direction === 'rtl' ? 1 - ratio : ratio, { min: p.min, max: p.max, step: p.step });\n };\n const update = (i: number, v: number) => {\n if (!Array.isArray(p.modelValue)) return emit('update:modelValue', v);\n const n: [number, number] = [...p.modelValue];\n n[i] = v;\n if (n[0] > n[1]) n.reverse();\n emit('update:modelValue', n);\n };\n const drag = (i: number) => (e: PointerEvent) => {\n if (p.disabled) return;\n (e.target as HTMLElement).setPointerCapture?.(e.pointerId);\n const move = (ev: PointerEvent) => update(i, fromX(ev.clientX));\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n };\n return () => {\n const b = bem('slider', pre.value);\n const vals = Array.isArray(p.modelValue) ? p.modelValue : [p.modelValue];\n const range = Array.isArray(p.modelValue);\n const lo = range ? percentOf(vals[0], p.min, p.max) : 0,\n hi = percentOf(vals[vals.length - 1], p.min, p.max);\n return h('div', { class: cx(b({ [p.color ?? '']: !!p.color }), { 'is-disabled': p.disabled }) }, [\n h(\n 'div',\n {\n ref: rail,\n class: b('rail'),\n onPointerdown: (e: PointerEvent) => {\n if (p.disabled || e.target !== e.currentTarget) return;\n const v = fromX(e.clientX);\n update(range ? (Math.abs(v - vals[0]) <= Math.abs(v - vals[1]) ? 0 : 1) : 0, v);\n },\n },\n [\n h('div', { class: b('fill'), style: { insetInlineStart: `${lo}%`, width: `${hi - lo}%` } }),\n ...vals.map((v, i) =>\n h(\n 'div',\n {\n key: i,\n role: 'slider',\n tabindex: p.disabled ? -1 : 0,\n 'aria-valuemin': p.min,\n 'aria-valuemax': p.max,\n 'aria-valuenow': v,\n 'aria-valuetext': p.format(v),\n 'aria-label': p.ariaLabel ?? (vals.length > 1 ? (i === 0 ? t('common.min') : t('common.max')) : t('common.value')),\n class: b('thumb'),\n style: { insetInlineStart: `${percentOf(v, p.min, p.max)}%` },\n onPointerdown: drag(i),\n onKeydown: (e: KeyboardEvent) => {\n const k = e.key;\n let n = v;\n if (k === 'ArrowRight' || k === 'ArrowUp') n = v + p.step;\n else if (k === 'ArrowLeft' || k === 'ArrowDown') n = v - p.step;\n else if (k === 'Home') n = p.min;\n else if (k === 'End') n = p.max;\n else if (k === 'PageUp') n = v + p.step * 10;\n else if (k === 'PageDown') n = v - p.step * 10;\n else return;\n e.preventDefault();\n update(i, clamp(n, p.min, p.max));\n },\n },\n p.showTip ? h('span', { class: b('tip') }, p.format(v)) : undefined,\n ),\n ),\n ],\n ),\n p.showScale\n ? h('div', { class: b('scale') }, [h('span', p.format(p.min)), h('span', p.format(Math.round((p.min + p.max) / 2))), h('span', p.format(p.max))])\n : null,\n ]);\n };\n },\n});\n\n/* ================= Select (combobox) ================= */\nexport const ThlSelect = /*#__PURE__*/ defineComponent({\n name: 'ThlSelect',\n props: {\n modelValue: any<unknown>(),\n options: { type: Array as PropType<SelectOption<any>[]>, required: true },\n multiple: Boolean,\n searchable: { type: Boolean, default: undefined },\n clearable: { type: Boolean, default: undefined },\n creatable: Boolean,\n placeholder: String,\n disabled: Boolean,\n id: String,\n max: Number,\n },\n emits: ['update:modelValue', 'change'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const d = useDefaults('Select', p as any);\n const api = createSelect<any>({\n options: p.options,\n value: p.modelValue as any,\n multiple: p.multiple,\n creatable: p.creatable,\n max: p.max,\n onChange: (v) => {\n emit('update:modelValue', v);\n emit('change', v);\n },\n });\n watch(\n () => p.options,\n (o) => api.setOptions(o),\n );\n watch(\n () => p.modelValue,\n (v) => api.setValue(v as any),\n );\n const s = useStore(api.state);\n const root = ref<HTMLElement>();\n const input = ref<HTMLInputElement>();\n const listId = uid('listbox');\n let off: (() => void) | null = null;\n watch(\n () => s.value.open,\n (o) => {\n off?.();\n off = o ? clickOutside([root.value], api.close) : null;\n },\n );\n onBeforeUnmount(() => off?.());\n return () => {\n const b = bem('select', pre.value);\n const selected = api.selectedOptions();\n const list = api.filtered();\n const st = s.value;\n const canType = d.value.searchable || p.multiple || p.creatable;\n const ph = p.placeholder ?? t('select.placeholder');\n let lastGroup: string | undefined;\n const opts: any[] = [];\n list.forEach((o, i) => {\n if (o.group && o.group !== lastGroup) opts.push(h('li', { key: `g-${o.group}`, class: b('group'), role: 'presentation' }, o.group));\n lastGroup = o.group;\n const sel = api.isSelected(o.value);\n opts.push(\n h(\n 'li',\n {\n key: String(o.value),\n id: `${listId}-${i}`,\n role: 'option',\n 'aria-selected': sel,\n 'aria-disabled': o.disabled,\n class: cx(b('option'), { 'is-highlighted': i === st.highlighted, 'is-selected': sel, 'is-disabled': o.disabled }),\n onMousedown: (e: Event) => e.preventDefault(),\n onClick: () => api.select(o.value),\n },\n [o.label, sel ? icon('check') : null],\n ),\n );\n });\n return h('div', { ref: root, class: cx(b(), { 'is-disabled': p.disabled }) }, [\n h(\n 'div',\n {\n class: cx(b('control'), { 'is-focused': st.open }),\n onClick: () => {\n if (!p.disabled) {\n api.open();\n input.value?.focus();\n }\n },\n },\n [\n ...(p.multiple\n ? selected.map((o) =>\n h('span', { key: String(o.value), class: b('tag') }, [\n o.label,\n h(\n 'button',\n {\n type: 'button',\n 'aria-label': `${t('common.remove')} ${o.label}`,\n onClick: (e: Event) => {\n e.stopPropagation();\n api.remove(o.value);\n },\n },\n '×',\n ),\n ]),\n )\n : []),\n !p.multiple && selected[0] && !st.query ? h('span', { class: b('value') }, selected[0].label) : null,\n !selected.length && !st.query && !canType ? h('span', { class: b('placeholder') }, ph) : null,\n canType\n ? h('input', {\n ref: input,\n id: p.id,\n class: b('search'),\n value: st.query,\n disabled: p.disabled,\n role: 'combobox',\n 'aria-expanded': st.open,\n 'aria-controls': listId,\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': st.open && st.highlighted >= 0 ? `${listId}-${st.highlighted}` : undefined,\n placeholder: selected.length ? '' : ph,\n onInput: (e: Event) => api.setQuery((e.target as HTMLInputElement).value),\n onKeydown: (e: KeyboardEvent) => api.onKeyDown(e),\n })\n : h(\n 'button',\n {\n type: 'button',\n id: p.id,\n class: `${pre.value}-sr-only`,\n role: 'combobox',\n 'aria-expanded': st.open,\n 'aria-controls': listId,\n 'aria-label': selected[0]?.label ?? ph,\n 'data-thl-auto-label': '',\n onKeydown: (e: KeyboardEvent) => api.onKeyDown(e),\n },\n selected[0]?.label ?? ph,\n ),\n h('span', { class: b('indicators') }, [\n d.value.clearable && selected.length\n ? h(\n 'button',\n {\n type: 'button',\n 'aria-label': t('common.clear'),\n onClick: (e: Event) => {\n e.stopPropagation();\n api.clear();\n },\n },\n icon('x'),\n )\n : null,\n icon('chevron-down'),\n ]),\n ],\n ),\n st.open\n ? h(\n 'ul',\n { id: listId, role: 'listbox', 'aria-multiselectable': p.multiple || undefined, class: b('menu') },\n list.length === 0\n ? [\n p.creatable && st.query\n ? h('li', { class: b('option'), onClick: () => api.create() }, `${t('select.addTag')}: “${st.query}”`)\n : h('li', { class: b('empty') }, t('select.noOptions')),\n ]\n : opts,\n )\n : null,\n ]);\n };\n },\n});\nexport const ThlTagsInput = /*#__PURE__*/ defineComponent({\n name: 'ThlTagsInput',\n props: { modelValue: { type: Array as PropType<string[]>, default: () => [] }, placeholder: String, id: String },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n return () =>\n h(ThlSelect, {\n id: p.id,\n options: p.modelValue.map((v) => ({ label: v, value: v })),\n modelValue: p.modelValue,\n multiple: true,\n creatable: true,\n placeholder: p.placeholder,\n 'onUpdate:modelValue': (v: unknown) => emit('update:modelValue', v),\n });\n },\n});\n\n/* ================= Pickers ================= */\nfunction usePop() {\n const open = ref(false);\n const root = ref<HTMLElement>();\n let off: (() => void) | null = null;\n const onKey = (e: KeyboardEvent) => e.key === 'Escape' && (open.value = false);\n watch(open, async (o) => {\n off?.();\n off = null;\n document.removeEventListener('keydown', onKey);\n if (o) {\n await nextTick();\n off = clickOutside([root.value], () => (open.value = false));\n document.addEventListener('keydown', onKey);\n }\n });\n onBeforeUnmount(() => {\n off?.();\n document.removeEventListener('keydown', onKey);\n });\n return { open, root };\n}\nexport const ThlCalendarGrid = /*#__PURE__*/ defineComponent({\n name: 'ThlCalendarGrid',\n props: {\n month: { type: Date, required: true },\n selected: any<Date | null>(),\n rangeStart: any<Date | null>(),\n rangeEnd: any<Date | null>(),\n hover: any<Date | null>(),\n min: any<Date>(),\n max: any<Date>(),\n },\n emits: ['update:month', 'select', 'hover'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t, d, intlLocale } = useI18n();\n const ctx = useThlContext();\n return () => {\n const ws = ((ctx.config.value.components.DatePicker?.weekStartsOn as number) ?? 1) as 0 | 1;\n const loc = intlLocale();\n const b = bem('calendar-grid', pre.value);\n const end = p.rangeEnd ?? p.hover;\n return h('div', { class: b() }, [\n h('div', { class: b('head') }, [\n h(\n 'button',\n { type: 'button', onClick: () => emit('update:month', addMonths(p.month, -1)), 'aria-label': t('common.previous') },\n icon('chevron-left'),\n ),\n h('span', { 'aria-live': 'polite' }, new Intl.DateTimeFormat(loc, { month: 'long', year: 'numeric' }).format(p.month)),\n h('button', { type: 'button', onClick: () => emit('update:month', addMonths(p.month, 1)), 'aria-label': t('common.next') }, icon('chevron-right')),\n ]),\n h('table', { role: 'grid' }, [\n h(\n 'thead',\n h(\n 'tr',\n weekdayNames(loc, ws, 'short').map((n) => h('th', { key: n, scope: 'col' }, n)),\n ),\n ),\n h(\n 'tbody',\n monthGrid(p.month.getFullYear(), p.month.getMonth(), ws).map((w, i) =>\n h(\n 'tr',\n { key: i },\n w.map((c) => {\n const dis = (p.min && c.date < p.min) || (p.max && c.date > p.max);\n const sel = isSameDay(c.date, p.selected) || isSameDay(c.date, p.rangeStart) || isSameDay(c.date, p.rangeEnd);\n return h(\n 'td',\n { key: c.key },\n h(\n 'button',\n {\n type: 'button',\n disabled: !!dis,\n 'aria-pressed': sel,\n 'aria-label': d(c.date, { dateStyle: 'full' }),\n class: cx(b('day'), {\n 'is-outside': !c.inMonth,\n 'is-today': c.today,\n 'is-selected': sel,\n 'is-in-range': !sel && !!p.rangeStart && isBetween(c.date, p.rangeStart, end),\n }),\n onClick: () => emit('select', c.date),\n onMouseenter: () => emit('hover', c.date),\n },\n c.date.getDate(),\n ),\n );\n }),\n ),\n ),\n ),\n ]),\n ]);\n };\n },\n});\nexport const ThlDatePicker = /*#__PURE__*/ defineComponent({\n name: 'ThlDatePicker',\n props: {\n modelValue: any<string | null>(),\n placeholder: String,\n min: String,\n max: String,\n id: String,\n disabled: Boolean,\n clearable: { type: Boolean, default: true },\n inline: Boolean,\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t, d } = useI18n();\n const { open, root } = usePop();\n const month = ref(parseISODate(p.modelValue) ?? new Date());\n watch(\n () => p.modelValue,\n (v) => {\n const x = parseISODate(v);\n if (x) month.value = x;\n },\n );\n return () => {\n const date = parseISODate(p.modelValue);\n const grid = h(ThlCalendarGrid, {\n month: month.value,\n selected: date,\n min: parseISODate(p.min) ?? undefined,\n max: parseISODate(p.max) ?? undefined,\n 'onUpdate:month': (m: Date) => (month.value = m),\n onSelect: (x: Date) => {\n emit('update:modelValue', toISODate(x));\n open.value = false;\n },\n });\n if (p.inline) return h('div', { class: `${pre.value}-card ${pre.value}-p-3`, style: { display: 'inline-block' } }, grid);\n return h('div', { ref: root, class: `${pre.value}-picker` }, [\n h('div', { class: `${pre.value}-input-group` }, [\n h('input', {\n id: p.id,\n readonly: true,\n class: `${pre.value}-input`,\n value: date ? d(date) : '',\n placeholder: p.placeholder ?? t('datepicker.selectDate'),\n disabled: p.disabled,\n role: 'combobox',\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(open.value),\n 'aria-label': p.placeholder ?? t('datepicker.selectDate'),\n onClick: () => !p.disabled && (open.value = true),\n }),\n h(ThlButton, { 'aria-label': t('datepicker.selectDate'), disabled: p.disabled, onClick: () => (open.value = !open.value) }, () => icon('calendar')),\n ]),\n open.value\n ? h('div', { class: `${pre.value}-picker__panel`, role: 'dialog', style: { flexDirection: 'column' } }, [\n grid,\n h('div', { class: `${pre.value}-picker__footer` }, [\n h(\n ThlButton,\n {\n size: 'sm',\n onClick: () => {\n emit('update:modelValue', toISODate(new Date()));\n open.value = false;\n },\n },\n () => t('datepicker.today'),\n ),\n p.clearable\n ? h(\n ThlButton,\n {\n size: 'sm',\n variant: 'link',\n onClick: () => {\n emit('update:modelValue', null);\n open.value = false;\n },\n },\n () => t('datepicker.clear'),\n )\n : null,\n ]),\n ])\n : null,\n ]);\n };\n },\n});\nexport const ThlDateRangePicker = /*#__PURE__*/ defineComponent({\n name: 'ThlDateRangePicker',\n props: {\n modelValue: { type: Array as unknown as PropType<[string | null, string | null]>, default: () => [null, null] },\n id: String,\n presets: { type: Boolean, default: true },\n },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t, d } = useI18n();\n const { open, root } = usePop();\n const month = ref(parseISODate(p.modelValue[0]) ?? new Date());\n const pending = ref<Date | null>(null);\n const hover = ref<Date | null>(null);\n const pick = (x: Date) => {\n if (!pending.value) {\n pending.value = x;\n return;\n }\n const [a, b2] = x < pending.value ? [x, pending.value] : [pending.value, x];\n emit('update:modelValue', [toISODate(a), toISODate(b2)]);\n pending.value = null;\n open.value = false;\n };\n return () => {\n const [start, end] = [parseISODate(p.modelValue[0]), parseISODate(p.modelValue[1])];\n const gridProps = {\n rangeStart: pending.value ?? start,\n rangeEnd: pending.value ? null : end,\n hover: pending.value ? hover.value : null,\n onSelect: pick,\n onHover: (x: Date) => (hover.value = x),\n };\n return h('div', { ref: root, class: `${pre.value}-picker` }, [\n h('div', { class: `${pre.value}-input-group` }, [\n h('span', { class: `${pre.value}-input-group__addon` }, icon('calendar')),\n h('input', {\n id: p.id,\n readonly: true,\n class: `${pre.value}-input`,\n value: start && end ? `${d(start)} – ${d(end)}` : '',\n placeholder: `${t('datepicker.startDate')} – ${t('datepicker.endDate')}`,\n onClick: () => (open.value = true),\n role: 'combobox',\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(open.value),\n 'aria-label': `${t('datepicker.startDate')} – ${t('datepicker.endDate')}`,\n }),\n ]),\n open.value\n ? h('div', { class: `${pre.value}-picker__panel`, role: 'dialog' }, [\n p.presets\n ? h(\n 'ul',\n { class: `${pre.value}-picker__ranges` },\n Object.entries(presetRanges()).map(([k, [a, b2]]) =>\n h(\n 'li',\n { key: k },\n h(\n 'button',\n {\n type: 'button',\n class: cx({ 'is-active': isSameDay(a, start) && isSameDay(b2, end) }),\n onClick: () => {\n emit('update:modelValue', [toISODate(a), toISODate(b2)]);\n open.value = false;\n },\n },\n t(`datepicker.ranges.${k}`),\n ),\n ),\n ),\n )\n : null,\n h('div', { style: { display: 'flex', gap: '16px', flexWrap: 'wrap' } }, [\n h(ThlCalendarGrid, { month: month.value, 'onUpdate:month': (m: Date) => (month.value = m), ...gridProps }),\n h(ThlCalendarGrid, { month: addMonths(month.value, 1), 'onUpdate:month': (m: Date) => (month.value = addMonths(m, -1)), ...gridProps }),\n ]),\n ])\n : null,\n ]);\n };\n },\n});\nexport const ThlTimePicker = /*#__PURE__*/ defineComponent({\n name: 'ThlTimePicker',\n props: { modelValue: any<string | null>(), step: { type: Number, default: 5 }, id: String, placeholder: String },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t, d } = useI18n();\n const { open, root } = usePop();\n const set = (hh: number, mm: number) => emit('update:modelValue', `${String(hh).padStart(2, '0')}:${String(mm).padStart(2, '0')}`);\n return () => {\n const [hh, mm] = (p.modelValue ?? '').split(':').map(Number);\n return h('div', { ref: root, class: `${pre.value}-picker` }, [\n h('div', { class: `${pre.value}-input-group` }, [\n h('input', {\n id: p.id,\n readonly: true,\n class: `${pre.value}-input`,\n value: p.modelValue ? d(new Date(2000, 0, 1, hh, mm), { hour: 'numeric', minute: '2-digit' }) : '',\n placeholder: p.placeholder ?? t('datepicker.selectTime'),\n role: 'combobox',\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(open.value),\n 'aria-label': p.placeholder ?? t('datepicker.selectTime'),\n onClick: () => (open.value = true),\n }),\n h(ThlButton, { 'aria-label': t('datepicker.selectTime'), onClick: () => (open.value = !open.value) }, () => icon('clock')),\n ]),\n open.value\n ? h('div', { class: `${pre.value}-picker__panel`, style: { minWidth: 0, flexDirection: 'column' } }, [\n h('div', { class: `${pre.value}-time-list` }, [\n h(\n 'ul',\n { 'aria-label': 'hours' },\n Array.from({ length: 24 }, (_, i) =>\n h(\n 'li',\n { key: i },\n h(\n 'button',\n { type: 'button', class: cx({ 'is-selected': i === hh }), onClick: () => set(i, Number.isNaN(mm) ? 0 : mm) },\n String(i).padStart(2, '0'),\n ),\n ),\n ),\n ),\n h(\n 'ul',\n { 'aria-label': 'minutes' },\n Array.from({ length: 60 / p.step }, (_, i) => i * p.step).map((m) =>\n h(\n 'li',\n { key: m },\n h(\n 'button',\n {\n type: 'button',\n class: cx({ 'is-selected': m === mm }),\n onClick: () => {\n set(Number.isNaN(hh) ? 0 : hh, m);\n open.value = false;\n },\n },\n String(m).padStart(2, '0'),\n ),\n ),\n ),\n ),\n ]),\n h(\n 'div',\n { class: `${pre.value}-picker__footer` },\n h(\n ThlButton,\n {\n size: 'sm',\n onClick: () => {\n const n = new Date();\n set(n.getHours(), n.getMinutes());\n open.value = false;\n },\n },\n () => t('datepicker.now'),\n ),\n ),\n ])\n : null,\n ]);\n };\n },\n});\nconst PALETTE = [\n '#0283cc',\n '#00bbd9',\n '#2ecc71',\n '#ffb136',\n '#e74a25',\n '#4a23ad',\n '#282f32',\n '#8d9498',\n '#0078bc',\n '#25bf67',\n '#f2a225',\n '#d93c17',\n '#693fd5',\n '#4b555b',\n '#e5ebec',\n '#ffffff',\n];\nexport const ThlColorPicker = /*#__PURE__*/ defineComponent({\n name: 'ThlColorPicker',\n props: { modelValue: { type: String, default: '#0283cc' }, id: String, palette: { type: Array as PropType<string[]>, default: () => PALETTE } },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const { open, root } = usePop();\n return () =>\n h('div', { ref: root, class: `${pre.value}-picker` }, [\n h('div', { class: `${pre.value}-input-group` }, [\n h('span', { class: `${pre.value}-input-group__addon` }, h('span', { class: `${pre.value}-color-swatch`, style: { background: p.modelValue } })),\n h('input', {\n id: p.id,\n class: `${pre.value}-input`,\n value: p.modelValue,\n 'aria-label': t('common.color'),\n spellcheck: false,\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLInputElement).value),\n onFocus: () => (open.value = true),\n }),\n h('input', {\n type: 'color',\n value: p.modelValue,\n 'aria-label': t('common.color'),\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLInputElement).value),\n style: { width: '44px', height: 'auto', border: '1px solid var(--thl-border-color)', padding: '2px', background: 'var(--thl-surface)' },\n }),\n ]),\n open.value\n ? h(\n 'div',\n { class: `${pre.value}-picker__panel`, style: { minWidth: 0 } },\n h(\n 'div',\n { class: `${pre.value}-color-palette` },\n p.palette.map((c) =>\n h('button', {\n key: c,\n type: 'button',\n 'aria-label': c,\n class: cx({ 'is-selected': c.toLowerCase() === p.modelValue.toLowerCase() }),\n style: { background: c },\n onClick: () => {\n emit('update:modelValue', c);\n open.value = false;\n },\n }),\n ),\n ),\n )\n : null,\n ]);\n },\n});\n\n/* ================= Upload ================= */\nexport const ThlUpload = /*#__PURE__*/ defineComponent({\n name: 'ThlUpload',\n props: {\n accept: String,\n maxSize: Number,\n multiple: { type: Boolean, default: undefined },\n maxFiles: Number,\n request: Function as PropType<(file: File, onProgress: (p: number) => void) => Promise<unknown>>,\n variant: str<'list' | 'single'>('list'),\n hint: String,\n },\n emits: ['change'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const d = useDefaults('Upload', p as any);\n const multi = computed(() => (d.value.multiple as boolean | undefined) ?? p.variant === 'list');\n const api = createUpload({\n accept: d.value.accept as string,\n maxSize: d.value.maxSize as number,\n multiple: multi.value,\n maxFiles: p.maxFiles,\n request: p.request,\n onChange: (f) => emit('change', f),\n });\n const s = useStore(api.state);\n const input = ref<HTMLInputElement>();\n return () => {\n const b = bem('upload', pre.value);\n const st = s.value;\n const single = p.variant === 'single' ? st.files[0] : undefined;\n return h('div', { class: b() }, [\n h(\n 'div',\n {\n role: 'button',\n tabindex: 0,\n class: cx(b('zone'), { 'is-dragging': st.dragging }),\n onClick: () => input.value?.click(),\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n input.value?.click();\n }\n },\n onDragenter: api.dragHandlers.onDragEnter,\n onDragover: api.dragHandlers.onDragOver,\n onDragleave: api.dragHandlers.onDragLeave,\n onDrop: api.dragHandlers.onDrop,\n },\n [\n ...(single\n ? [\n h('div', { class: b('preview') }, [\n single.preview ? h('img', { src: single.preview, alt: single.name }) : icon('file', { class: b('icon') }),\n h('div', { class: b('name') }, single.name),\n h('small', t('upload.replace')),\n ]),\n ]\n : [\n icon('cloud-upload', { class: b('icon') }),\n h('div', p.variant === 'single' ? t('upload.dropHere') : t('upload.dropMultiple')),\n p.hint ? h('small', p.hint) : null,\n ]),\n h('input', {\n ref: input,\n type: 'file',\n class: b('input'),\n accept: d.value.accept,\n multiple: multi.value,\n tabindex: -1,\n 'aria-hidden': 'true',\n onChange: (e: Event) => {\n const el = e.target as HTMLInputElement;\n if (el.files) api.add(el.files);\n el.value = '';\n },\n }),\n ],\n ),\n st.errors.length\n ? h(\n 'div',\n { class: b('errors'), role: 'alert' },\n st.errors.map((er, i) => h('div', { key: i }, t(er.key, er.params))),\n )\n : null,\n p.variant === 'list' && st.files.length\n ? h(\n 'ul',\n { class: b('list') },\n st.files.map((f) =>\n h('li', { key: f.id, class: cx(b('file'), { 'is-error': f.status === 'error' }) }, [\n f.preview ? h('img', { src: f.preview, alt: '' }) : icon('file-text', { size: 40 }),\n h('div', { class: b('name'), title: f.name }, f.name),\n h(\n 'div',\n { class: b('meta') },\n `${formatBytes(f.size)} · ${f.status === 'uploading' ? `${f.progress}%` : f.status === 'done' ? t('upload.uploaded') : f.status === 'error' ? t('upload.failed') : ''}`,\n ),\n f.status === 'uploading'\n ? h(\n 'div',\n { class: `${pre.value}-progress ${pre.value}-progress--size-xs`, style: { margin: '6px 0 0' } },\n h('div', { class: `${pre.value}-progress__bar`, style: { width: `${f.progress}%` } }),\n )\n : null,\n h('button', { type: 'button', class: b('remove'), onClick: () => api.remove(f.id), 'aria-label': `${t('upload.remove')} ${f.name}` }, '×'),\n ]),\n ),\n )\n : null,\n single\n ? h(\n 'div',\n { class: `${pre.value}-mt-2` },\n h(ThlButton, { size: 'sm', variant: 'danger', outline: true, onClick: () => api.clear() }, () => t('upload.remove')),\n )\n : null,\n ]);\n };\n },\n});\n\n/* ================= Editor ================= */\nexport const ThlEditor = /*#__PURE__*/ defineComponent({\n name: 'ThlEditor',\n props: { modelValue: { type: String, default: '' }, placeholder: String, minHeight: Number, ariaLabel: String },\n emits: ['update:modelValue'],\n setup(p, { emit }) {\n const pre = usePrefix();\n const { t } = useI18n();\n const el = ref<HTMLElement>();\n onMounted(() => {\n if (el.value) el.value.innerHTML = p.modelValue;\n });\n watch(\n () => p.modelValue,\n (v) => {\n if (el.value && el.value.innerHTML !== v) el.value.innerHTML = v;\n },\n );\n const cmd = (c: string, arg?: string) => {\n document.execCommand(c, false, arg);\n el.value?.focus();\n emit('update:modelValue', el.value?.innerHTML ?? '');\n };\n const tools: Array<[string, string, string?]> = [\n ['bold', 'bold'],\n ['italic', 'italic'],\n ['underline', 'underline'],\n ['list', 'insertUnorderedList'],\n ['list-ordered', 'insertOrderedList'],\n ['quote', 'formatBlock', 'blockquote'],\n ['link', 'createLink'],\n ['undo-2', 'undo'],\n ['redo-2', 'redo'],\n ];\n return () => {\n const b = bem('editor', pre.value);\n return h('div', { class: b() }, [\n h(\n 'div',\n { class: b('toolbar'), role: 'toolbar', 'aria-label': t('common.editor') },\n tools.map(([ic, c, arg]) =>\n h(\n 'button',\n {\n key: c + (arg ?? ''),\n type: 'button',\n 'aria-label': c,\n onMousedown: (e: Event) => e.preventDefault(),\n onClick: () => cmd(c, c === 'createLink' ? (window.prompt('URL') ?? undefined) : arg),\n },\n icon(ic),\n ),\n ),\n ),\n h('div', {\n ref: el,\n class: b('content'),\n contenteditable: 'true',\n role: 'textbox',\n 'aria-multiline': 'true',\n 'aria-label': p.ariaLabel ?? p.placeholder ?? t('common.editor'),\n 'data-placeholder': p.placeholder,\n style: { minHeight: p.minHeight ? `${p.minHeight}px` : undefined },\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLElement).innerHTML),\n }),\n ]);\n };\n },\n});\n"],"names":["FORM_KEY","ThlForm","defineComponent","str","p","slots","emit","expose","pre","usePrefix","fields","submitted","ref","provide","f","computed","validateAll","ok","h","bem","e","ThlField","any","t","useI18n","form","inject","id","uid","res","run","validate","off","onMounted","onBeforeUnmount","watch","box","lab","link","wire","linkFieldLabel","onUpdated","b","err","inputId","describedBy","cx","ThlFormActions","_","ThlInput","attrs","d","useDefaults","el","ThlTextarea","ThlNativeSelect","o","ThlInputGroup","add","ThlFloatingLabel","ThlCheckbox","v","checked","toggle","c","next","x","ThlRadio","ThlCheckboxGroup","ThlRadioGroup","auto","ThlSwitch","ThlNumberInput","set","n","clamp","stepValue","icon","s","roundToStep","ThlSlider","rail","fromX","r","ratio","valueFromPosition","update","i","drag","move","ev","up","vals","range","lo","percentOf","hi","k","ThlSelect","api","createSelect","useStore","root","input","listId","clickOutside","selected","list","st","canType","ph","lastGroup","opts","sel","ThlTagsInput","usePop","open","onKey","nextTick","ThlCalendarGrid","intlLocale","ctx","useThlContext","ws","loc","end","addMonths","weekdayNames","monthGrid","w","dis","isSameDay","isBetween","ThlDatePicker","month","parseISODate","date","grid","m","toISODate","ThlButton","ThlDateRangePicker","pending","hover","pick","a","b2","start","gridProps","presetRanges","ThlTimePicker","hh","mm","PALETTE","ThlColorPicker","ThlUpload","multi","createUpload","single","er","formatBytes","ThlEditor","cmd","arg","tools","ic"],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { MenuItem } from '@thl-ui/core';
|
|
3
|
+
export declare const ThlSideMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
|
+
items: {
|
|
5
|
+
type: PropType<MenuItem[]>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
currentPath: StringConstructor;
|
|
9
|
+
accordion: {
|
|
10
|
+
type: BooleanConstructor;
|
|
11
|
+
default: boolean;
|
|
12
|
+
};
|
|
13
|
+
/** One-row menu: top-level items that do not fit move into a "More" dropdown. */
|
|
14
|
+
horizontal: BooleanConstructor;
|
|
15
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
18
|
+
items: {
|
|
19
|
+
type: PropType<MenuItem[]>;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
currentPath: StringConstructor;
|
|
23
|
+
accordion: {
|
|
24
|
+
type: BooleanConstructor;
|
|
25
|
+
default: boolean;
|
|
26
|
+
};
|
|
27
|
+
/** One-row menu: top-level items that do not fit move into a "More" dropdown. */
|
|
28
|
+
horizontal: BooleanConstructor;
|
|
29
|
+
}>> & Readonly<{}>, {
|
|
30
|
+
horizontal: boolean;
|
|
31
|
+
accordion: boolean;
|
|
32
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
33
|
+
export declare const ThlSettingsPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
34
|
+
open: BooleanConstructor;
|
|
35
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "update:open"[], "update:open", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
38
|
+
open: BooleanConstructor;
|
|
39
|
+
}>> & Readonly<{
|
|
40
|
+
"onUpdate:open"?: ((...args: any[]) => any) | undefined;
|
|
41
|
+
}>, {
|
|
42
|
+
open: boolean;
|
|
43
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
44
|
+
export declare const ThlTopbarMessages: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
45
|
+
items: {
|
|
46
|
+
type: PropType<Array<{
|
|
47
|
+
id: string | number;
|
|
48
|
+
title: string;
|
|
49
|
+
text?: string;
|
|
50
|
+
time?: string;
|
|
51
|
+
avatar?: string;
|
|
52
|
+
icon?: string;
|
|
53
|
+
status?: string;
|
|
54
|
+
}>>;
|
|
55
|
+
required: true;
|
|
56
|
+
};
|
|
57
|
+
icon: {
|
|
58
|
+
type: StringConstructor;
|
|
59
|
+
default: string;
|
|
60
|
+
};
|
|
61
|
+
title: StringConstructor;
|
|
62
|
+
footer: StringConstructor;
|
|
63
|
+
footerHref: StringConstructor;
|
|
64
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
65
|
+
[key: string]: any;
|
|
66
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
67
|
+
items: {
|
|
68
|
+
type: PropType<Array<{
|
|
69
|
+
id: string | number;
|
|
70
|
+
title: string;
|
|
71
|
+
text?: string;
|
|
72
|
+
time?: string;
|
|
73
|
+
avatar?: string;
|
|
74
|
+
icon?: string;
|
|
75
|
+
status?: string;
|
|
76
|
+
}>>;
|
|
77
|
+
required: true;
|
|
78
|
+
};
|
|
79
|
+
icon: {
|
|
80
|
+
type: StringConstructor;
|
|
81
|
+
default: string;
|
|
82
|
+
};
|
|
83
|
+
title: StringConstructor;
|
|
84
|
+
footer: StringConstructor;
|
|
85
|
+
footerHref: StringConstructor;
|
|
86
|
+
}>> & Readonly<{}>, {
|
|
87
|
+
icon: string;
|
|
88
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
89
|
+
export declare const ThlAppLayout: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
90
|
+
menu: {
|
|
91
|
+
type: PropType<MenuItem[]>;
|
|
92
|
+
required: true;
|
|
93
|
+
};
|
|
94
|
+
currentPath: StringConstructor;
|
|
95
|
+
brand: {
|
|
96
|
+
type: StringConstructor;
|
|
97
|
+
default: string;
|
|
98
|
+
};
|
|
99
|
+
brandHref: {
|
|
100
|
+
type: StringConstructor;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
user: PropType<{
|
|
104
|
+
name: string;
|
|
105
|
+
avatar?: string;
|
|
106
|
+
role?: string;
|
|
107
|
+
menu?: Array<{
|
|
108
|
+
key: string;
|
|
109
|
+
label?: string;
|
|
110
|
+
icon?: string;
|
|
111
|
+
divider?: boolean;
|
|
112
|
+
}>;
|
|
113
|
+
}>;
|
|
114
|
+
searchable: BooleanConstructor;
|
|
115
|
+
settings: {
|
|
116
|
+
type: BooleanConstructor;
|
|
117
|
+
default: boolean;
|
|
118
|
+
};
|
|
119
|
+
footer: {
|
|
120
|
+
type: (BooleanConstructor | StringConstructor)[];
|
|
121
|
+
default: undefined;
|
|
122
|
+
};
|
|
123
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("search" | "user-select")[], "search" | "user-select", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
126
|
+
menu: {
|
|
127
|
+
type: PropType<MenuItem[]>;
|
|
128
|
+
required: true;
|
|
129
|
+
};
|
|
130
|
+
currentPath: StringConstructor;
|
|
131
|
+
brand: {
|
|
132
|
+
type: StringConstructor;
|
|
133
|
+
default: string;
|
|
134
|
+
};
|
|
135
|
+
brandHref: {
|
|
136
|
+
type: StringConstructor;
|
|
137
|
+
default: string;
|
|
138
|
+
};
|
|
139
|
+
user: PropType<{
|
|
140
|
+
name: string;
|
|
141
|
+
avatar?: string;
|
|
142
|
+
role?: string;
|
|
143
|
+
menu?: Array<{
|
|
144
|
+
key: string;
|
|
145
|
+
label?: string;
|
|
146
|
+
icon?: string;
|
|
147
|
+
divider?: boolean;
|
|
148
|
+
}>;
|
|
149
|
+
}>;
|
|
150
|
+
searchable: BooleanConstructor;
|
|
151
|
+
settings: {
|
|
152
|
+
type: BooleanConstructor;
|
|
153
|
+
default: boolean;
|
|
154
|
+
};
|
|
155
|
+
footer: {
|
|
156
|
+
type: (BooleanConstructor | StringConstructor)[];
|
|
157
|
+
default: undefined;
|
|
158
|
+
};
|
|
159
|
+
}>> & Readonly<{
|
|
160
|
+
onSearch?: ((...args: any[]) => any) | undefined;
|
|
161
|
+
"onUser-select"?: ((...args: any[]) => any) | undefined;
|
|
162
|
+
}>, {
|
|
163
|
+
footer: string | boolean;
|
|
164
|
+
searchable: boolean;
|
|
165
|
+
brand: string;
|
|
166
|
+
brandHref: string;
|
|
167
|
+
settings: boolean;
|
|
168
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
169
|
+
export declare const ThlPage: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
170
|
+
title: StringConstructor;
|
|
171
|
+
breadcrumb: PropType<Array<{
|
|
172
|
+
label: string;
|
|
173
|
+
href?: string;
|
|
174
|
+
}>>;
|
|
175
|
+
}>, () => (import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
176
|
+
[key: string]: any;
|
|
177
|
+
}> | null)[], {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
178
|
+
title: StringConstructor;
|
|
179
|
+
breadcrumb: PropType<Array<{
|
|
180
|
+
label: string;
|
|
181
|
+
href?: string;
|
|
182
|
+
}>>;
|
|
183
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
184
|
+
export declare const ThlAuthLayout: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
185
|
+
title: StringConstructor;
|
|
186
|
+
avatar: StringConstructor;
|
|
187
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
188
|
+
[key: string]: any;
|
|
189
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
190
|
+
title: StringConstructor;
|
|
191
|
+
avatar: StringConstructor;
|
|
192
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
193
|
+
export declare const ThlErrorLayout: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
194
|
+
code: {
|
|
195
|
+
type: NumberConstructor;
|
|
196
|
+
required: true;
|
|
197
|
+
};
|
|
198
|
+
title: StringConstructor;
|
|
199
|
+
text: StringConstructor;
|
|
200
|
+
homeHref: {
|
|
201
|
+
type: StringConstructor;
|
|
202
|
+
default: string;
|
|
203
|
+
};
|
|
204
|
+
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
205
|
+
[key: string]: any;
|
|
206
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
207
|
+
code: {
|
|
208
|
+
type: NumberConstructor;
|
|
209
|
+
required: true;
|
|
210
|
+
};
|
|
211
|
+
title: StringConstructor;
|
|
212
|
+
text: StringConstructor;
|
|
213
|
+
homeHref: {
|
|
214
|
+
type: StringConstructor;
|
|
215
|
+
default: string;
|
|
216
|
+
};
|
|
217
|
+
}>> & Readonly<{}>, {
|
|
218
|
+
homeHref: string;
|
|
219
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|