diff --git a/admin/openapi/admin.json b/admin/openapi/admin.json index 5ce7759..3bb0cbd 100644 --- a/admin/openapi/admin.json +++ b/admin/openapi/admin.json @@ -1310,6 +1310,14 @@ "context": { "$ref": "#/components/schemas/cabana.fieldContext" }, + "currency": { + "description": "Currency is the ISO 4217 code a `type: money` field shows as its\nsuffix; exactly one of Currency and CurrencyFrom is set.", + "type": "string" + }, + "currencyFrom": { + "description": "CurrencyFrom names the sibling column of the model whose value is the\nmoney field's currency code; the admin follows that field's value.", + "type": "string" + }, "default": { "$ref": "#/components/schemas/cabana.jsonScalar" }, @@ -1375,6 +1383,10 @@ "label": { "type": "string" }, + "max": { + "description": "Max is a money field's column ceiling as a decimal string; a value\nabove it in absolute magnitude is a 422 money.too_large.", + "type": "string" + }, "maxDate": { "type": "string" }, @@ -1459,6 +1471,10 @@ "required": { "type": "boolean" }, + "scale": { + "description": "Scale is the most fraction digits a money value may carry, 2 to 4\n(default 4). A value with more digits is refused, never rounded.", + "type": "integer" + }, "size": { "type": "string" }, diff --git a/admin/src/api/schema.d.ts b/admin/src/api/schema.d.ts index 69a9574..ecec282 100644 --- a/admin/src/api/schema.d.ts +++ b/admin/src/api/schema.d.ts @@ -5592,6 +5592,16 @@ export interface components { }; comment?: string; context?: components["schemas"]["cabana.fieldContext"]; + /** + * @description Currency is the ISO 4217 code a `type: money` field shows as its + * suffix; exactly one of Currency and CurrencyFrom is set. + */ + currency?: string; + /** + * @description CurrencyFrom names the sibling column of the model whose value is the + * money field's currency code; the admin follows that field's value. + */ + currencyFrom?: string; default?: components["schemas"]["cabana.jsonScalar"]; /** * @description Deferrable is true on a relation-manager field whose relation can be @@ -5634,6 +5644,11 @@ export interface components { /** @description ImageWidth and ImageHeight are the preview size of an image upload. */ imageWidth?: number; label?: string; + /** + * @description Max is a money field's column ceiling as a decimal string; a value + * above it in absolute magnitude is a 422 money.too_large. + */ + max?: string; maxDate?: string; /** @description MaxFiles caps the number of files of an attachMany field. */ maxFiles?: number; @@ -5690,6 +5705,11 @@ export interface components { readOnly?: boolean; relation?: string; required?: boolean; + /** + * @description Scale is the most fraction digits a money value may carry, 2 to 4 + * (default 4). A value with more digits is refused, never rounded. + */ + scale?: number; size?: string; span?: string; tab?: string; diff --git a/admin/src/app/money.ts b/admin/src/app/money.ts new file mode 100644 index 0000000..9fb7b40 --- /dev/null +++ b/admin/src/app/money.ts @@ -0,0 +1,98 @@ +// Exact-decimal money helpers of the `money` field and list column (Phase 18 +// D-07, amended D-09, D-10). A money value is the decimal string the server +// stores ("39.8400", "85.4193"); it is never turned into a JS number here: +// parsing is text work on digits and separators, and formatting hands the +// string itself to Intl.NumberFormat, which accepts decimal strings without +// going through a float. + +export type MoneyParseError = 'invalid' | 'too_precise' + +export interface MoneyParseResult { + /** The canonical dot-separated string, or null for empty text. */ + value: string | null + /** Why the text was refused, or null when value holds the result. */ + error: MoneyParseError | null +} + +const digitsOnly = /^[0-9]+$/ + +/** + * Turns typed text into the canonical money string: spaces and U+00A0 are + * stripped, one comma or dot is the decimal separator, an optional leading + * minus is kept, digits only otherwise. Empty text is null. More than + * `scale` fraction digits is `too_precise`: the value is never rounded or + * truncated. Anything else (letters, two separators, grouping) is `invalid`. + */ +export function parseMoneyInput(text: string, scale: number): MoneyParseResult { + const compact = text.replace(/[\s ]/g, '') + if (compact === '') { + return { value: null, error: null } + } + let body = compact + let negative = false + if (body.startsWith('-')) { + negative = true + body = body.slice(1) + } + const separators = body.match(/[.,]/g) ?? [] + if (separators.length > 1) { + return { value: null, error: 'invalid' } + } + const [whole, fraction = ''] = body.split(/[.,]/) + if (!digitsOnly.test(whole ?? '') || (separators.length === 1 && !digitsOnly.test(fraction))) { + return { value: null, error: 'invalid' } + } + if (fraction.length > scale) { + return { value: null, error: 'too_precise' } + } + const canonical = fraction === '' ? whole : `${whole}.${fraction}` + return { value: `${negative ? '-' : ''}${canonical}`, error: null } +} + +/** + * The stored string for display in the input: trailing fraction zeros are + * trimmed down to two decimals ("39.8400" → "39.84", "85.4193" unchanged, + * "5.0000" → "5.00", "7" → "7"). The separator stays a dot; the field swaps + * it for the locale's own. + */ +export function trimMoneyDisplay(stored: string): string { + const [whole, fraction] = stored.split('.') + if (fraction === undefined || fraction.length <= 2) { + return stored + } + let end = fraction.length + while (end > 2 && fraction.charAt(end - 1) === '0') { + end -= 1 + } + return `${whole}.${fraction.slice(0, end)}` +} + +/** The decimal separator Intl uses for a locale ("," for pl, "." for en). */ +export function decimalSeparator(locale: string): string { + const parts = new Intl.NumberFormat(locale).formatToParts(1.1) + return parts.find((part) => part.type === 'decimal')?.value ?? '.' +} + +/** + * Formats a money string for reading: Intl.NumberFormat with the ISO code + * (`currencyDisplay: 'code'`), at least two and at most `scale` fraction + * digits, so "99999999.9999" keeps all four decimals and "39.8400" shows two. + * Without a currency the amount alone is formatted (`style: 'decimal'`). The + * string is passed to format() as is; it is never converted to a number. + */ +export function formatMoney(value: string, currency: string, locale: string, scale = 4): string { + const digits = { minimumFractionDigits: 2, maximumFractionDigits: Math.max(2, scale) } + const options: Intl.NumberFormatOptions = + currency === '' ? { style: 'decimal', ...digits } : { style: 'currency', currency, currencyDisplay: 'code', ...digits } + let formatter: Intl.NumberFormat + try { + formatter = new Intl.NumberFormat(locale, options) + } catch { + // An unknown ISO code: show the amount with the code appended. + const plain = new Intl.NumberFormat(locale, { style: 'decimal', ...digits }) + return `${plain.format(value as unknown as number)} ${currency}`.trim() + } + // Intl accepts decimal strings (ECMA-402 "intl mathematical value"); the + // cast only satisfies the lib typings that predate it. + return formatter.format(value as unknown as number) +} diff --git a/admin/src/components/form/PreviewField.vue b/admin/src/components/form/PreviewField.vue index ea6246b..4b56e39 100644 --- a/admin/src/components/form/PreviewField.vue +++ b/admin/src/components/form/PreviewField.vue @@ -8,8 +8,8 @@ import { isPluginField, rendererForField } from './registry' // One field of the preview screen (UI-SPEC S3, D-11): a label and its value // as a dt/dd pair. Values are text, never disabled inputs, so they keep full // contrast and are read in order. Controls that already have a read-only -// mode (datepicker, fileupload, permissioneditor), partials and plugin field -// types (their element gets `disabled`) are rendered through their own +// mode (datepicker, fileupload, permissioneditor, money), partials and plugin +// field types (their element gets `disabled`) are rendered through their own // component with the field marked read-only. const props = defineProps<{ field: FormField @@ -21,7 +21,7 @@ const props = defineProps<{ }>() /** Types rendered by their own control in its read-only mode. */ -const ownControl = new Set(['datepicker', 'fileupload', 'partial', 'permissioneditor', 'richeditor', 'repeater']) +const ownControl = new Set(['datepicker', 'fileupload', 'partial', 'permissioneditor', 'richeditor', 'repeater', 'money']) const controlId = computed(() => `${props.idPrefix ?? 'preview'}-${props.field.name}`) const labelId = computed(() => `${controlId.value}-label`) diff --git a/admin/src/components/form/fields/MoneyField.vue b/admin/src/components/form/fields/MoneyField.vue new file mode 100644 index 0000000..d47328f --- /dev/null +++ b/admin/src/components/form/fields/MoneyField.vue @@ -0,0 +1,157 @@ + + + diff --git a/admin/src/components/form/registry.ts b/admin/src/components/form/registry.ts index 1817460..1b933d4 100644 --- a/admin/src/components/form/registry.ts +++ b/admin/src/components/form/registry.ts @@ -28,6 +28,8 @@ // a nested FormGrid, labelled as a group. It renders FormGrid, so it sits on // an import cycle with this module; only this module imports it, so this // module always evaluates first and the binding is complete here. +// Phase 18 adds the money control (D-07): an exact decimal string value +// with a currency suffix, formatted by locale only for reading. import type { Component } from 'vue' import type { FormField } from '../../api/types' import CheckboxField from './fields/CheckboxField.vue' @@ -48,6 +50,7 @@ import SwitchField from './fields/SwitchField.vue' import TextField from './fields/TextField.vue' import TextareaField from './fields/TextareaField.vue' import MarkdownField from './fields/MarkdownField.vue' +import MoneyField from './fields/MoneyField.vue' import MLTextField from './fields/MLTextField.vue' import MLTextareaField from './fields/MLTextareaField.vue' import MLMarkdownField from './fields/MLMarkdownField.vue' @@ -89,6 +92,7 @@ const renderers = new Map([ ['mlmarkdown', MLMarkdownField], ['richeditor', RichEditorField], ['repeater', RepeaterField], + ['money', MoneyField], ]) /** Types whose control shows the label itself (toggle cards, relation manager). */ diff --git a/admin/src/views/PreviewView.vue b/admin/src/views/PreviewView.vue index df31194..6ebe2ef 100644 --- a/admin/src/views/PreviewView.vue +++ b/admin/src/views/PreviewView.vue @@ -9,7 +9,7 @@ import { controllerIdFromParams, controllerPath } from '../app/controllerRoutes' import { message, t } from '../app/i18n' import { loadControllerAssets } from '../app/pluginAssets' import { newSessionKey } from '../app/sessionKey' -import { FORM_SESSION, createUploadGate } from '../components/form/formContext' +import { FIELD_SCOPE, FORM_SESSION, createUploadGate } from '../components/form/formContext' import FormTabs from '../components/form/FormTabs.vue' import PreviewField from '../components/form/PreviewField.vue' import RecordActions from '../components/form/RecordActions.vue' @@ -193,6 +193,13 @@ function onGone(): void { // never uploads or saves, so the session only carries the routes. const { activeUploads, beginUpload } = createUploadGate() const sessionKey = newSessionKey() +// A money field reads its currencyFrom sibling through the field scope, as +// on a form. +provide(FIELD_SCOPE, { + fields: computed(() => fields.value), + values: computed(() => values.value), + path: (name: string) => name, +}) provide(FORM_SESSION, { key: sessionKey, recordId, diff --git a/admin/tests/form/MoneyField.test.ts b/admin/tests/form/MoneyField.test.ts new file mode 100644 index 0000000..ee65a5d --- /dev/null +++ b/admin/tests/form/MoneyField.test.ts @@ -0,0 +1,192 @@ +// Money control (UI-SPEC F1, D-07 with the amended D-09 and D-10), the +// component on its own and the money helpers. No application names appear +// in framework tests. +import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { enableAutoUnmount, mount, type VueWrapper } from '@vue/test-utils' +import { computed, nextTick, ref } from 'vue' +import type { FormField } from '../../src/api/types' +import { setBundle } from '../../src/app/i18n' +import { formatMoney, parseMoneyInput, trimMoneyDisplay } from '../../src/app/money' +import MoneyField from '../../src/components/form/fields/MoneyField.vue' +import { FIELD_SCOPE, type FieldScope } from '../../src/components/form/formContext' +import { langFixture } from '../fixtures/typed' +import { resetState } from '../helpers' + +const strings = { + 'backend::lang.money.invalid': { other: 'This is not an amount.' }, + 'backend::lang.money.too_precise': { other: 'Use at most :scale decimal places.' }, + 'backend::lang.money.currency': { other: 'Currency: :code' }, +} + +function moneyField(extra: Partial = {}): FormField { + return { name: 'total', type: 'money', label: 'Total', currency: 'PLN', scale: 4, ...extra } as FormField +} + +function mountField(props: Record = {}, values: Record = {}) { + const field = { ...moneyField(), ...((props.field as Partial) ?? {}) } as FormField + const scopeValues = ref(values) + const scope: FieldScope = { + fields: computed(() => [field]), + values: computed(() => scopeValues.value), + path: (name: string) => name, + } + const wrapper = mount(MoneyField, { + props: { modelValue: null, controlId: 'f-total', ...props, field }, + global: { provide: { [FIELD_SCOPE as symbol]: scope } }, + attachTo: document.body, + }) + return { wrapper, scopeValues } +} + +const input = (wrapper: VueWrapper) => wrapper.find('input') +const emitted = (wrapper: VueWrapper) => (wrapper.emitted('update:modelValue') ?? []).map((args) => args[0]) + +async function type(wrapper: VueWrapper, text: string): Promise { + input(wrapper).element.value = text + await input(wrapper).trigger('input') +} + +beforeEach(() => { + resetState() + setBundle({ ...langFixture.data, ...strings }, 'en') +}) + +afterEach(() => { + document.body.innerHTML = '' +}) + +enableAutoUnmount(afterEach) + +describe('money helpers', () => { + it('parses typed text into the canonical dot string without a number', () => { + expect(parseMoneyInput('1 234,56', 4)).toEqual({ value: '1234.56', error: null }) + expect(parseMoneyInput('1 234.5', 4)).toEqual({ value: '1234.5', error: null }) + expect(parseMoneyInput('-12', 2)).toEqual({ value: '-12', error: null }) + expect(parseMoneyInput('', 4)).toEqual({ value: null, error: null }) + expect(parseMoneyInput(' ', 4)).toEqual({ value: null, error: null }) + expect(parseMoneyInput('12.34567', 4)).toEqual({ value: null, error: 'too_precise' }) + expect(parseMoneyInput('1.234,56', 4)).toEqual({ value: null, error: 'invalid' }) + expect(parseMoneyInput('12a', 4)).toEqual({ value: null, error: 'invalid' }) + expect(parseMoneyInput('1e3', 4)).toEqual({ value: null, error: 'invalid' }) + expect(parseMoneyInput('.5', 4)).toEqual({ value: null, error: 'invalid' }) + // A 20-digit amount survives: no float is involved. + expect(parseMoneyInput('12345678901234567890.1234', 4)).toEqual({ value: '12345678901234567890.1234', error: null }) + }) + + it('trims trailing zeros down to two decimals for display', () => { + expect(trimMoneyDisplay('39.8400')).toBe('39.84') + expect(trimMoneyDisplay('85.4193')).toBe('85.4193') + expect(trimMoneyDisplay('5.0000')).toBe('5.00') + expect(trimMoneyDisplay('5.0100')).toBe('5.01') + expect(trimMoneyDisplay('7')).toBe('7') + expect(trimMoneyDisplay('7.5')).toBe('7.5') + }) + + it('formats through Intl with the string itself, keeping four decimals', () => { + expect(formatMoney('99999999.9999', 'PLN', 'en', 4)).toBe('PLN 99,999,999.9999') + expect(formatMoney('99999999.9999', 'PLN', 'pl', 4).replace(/\s/g, ' ')).toBe('99 999 999,9999 PLN') + expect(formatMoney('39.8400', 'PLN', 'en', 4)).toBe('PLN 39.84') + expect(formatMoney('39.8400', 'EUR', 'pl', 2).replace(/\s/g, ' ')).toBe('39,84 EUR') + expect(formatMoney('12.5', '', 'en', 4)).toBe('12.50') + }) +}) + +describe('money field component (UI-SPEC F1)', () => { + it('is a text input in decimal mode with the currency suffix', () => { + const { wrapper } = mountField() + const el = input(wrapper) + expect(el.attributes('type')).toBe('text') + expect(el.attributes('inputmode')).toBe('decimal') + expect(el.attributes('autocomplete')).toBe('off') + expect(el.attributes('spellcheck')).toBe('false') + expect(el.classes()).toContain('pr-16') + expect(el.classes()).toContain('text-right') + expect(el.classes()).toContain('tabular-nums') + const suffix = wrapper.find('[data-money-currency]') + expect(suffix.text()).toBe('PLN') + expect(suffix.attributes('aria-hidden')).toBe('true') + expect(wrapper.find('#f-total-currency').text()).toBe('Currency: PLN') + expect(el.attributes('aria-describedby')).toContain('f-total-currency') + }) + + it('shows a loaded value trimmed, with the locale separator, and does not emit', async () => { + const { wrapper } = mountField({ modelValue: '39.8400' }) + expect(input(wrapper).element.value).toBe('39.84') + expect(emitted(wrapper)).toEqual([]) + setBundle({ ...langFixture.data, ...strings }, 'pl') + const { wrapper: polish } = mountField({ modelValue: '85.4193' }) + expect(input(polish).element.value).toBe('85,4193') + expect(emitted(polish)).toEqual([]) + }) + + it('submits an untouched 85.4193 byte-identical: no emit on load or blur', async () => { + const { wrapper } = mountField({ modelValue: '85.4193' }) + await input(wrapper).trigger('focus') + await input(wrapper).trigger('blur') + expect(emitted(wrapper)).toEqual([]) + expect(wrapper.find('[data-money-error]').exists()).toBe(false) + }) + + it('emits the canonical dot string for "1 234,56" and null for empty', async () => { + const { wrapper } = mountField({ modelValue: '1.00' }) + await type(wrapper, '1 234,56') + expect(emitted(wrapper)).toEqual(['1234.56']) + await type(wrapper, '') + expect(emitted(wrapper)).toEqual(['1234.56', null]) + }) + + it('refuses 12.34567 at scale 4 on blur, neither rounded nor truncated', async () => { + const { wrapper } = mountField({ modelValue: null }) + await type(wrapper, '12.34567') + // Nothing is shown before blur, and no rounded value was emitted. + expect(wrapper.find('[data-money-error]').exists()).toBe(false) + expect(emitted(wrapper)).toEqual(['12.34567']) + await input(wrapper).trigger('blur') + const line = wrapper.find('[data-money-error]') + expect(line.text()).toBe('Use at most 4 decimal places.') + expect(input(wrapper).attributes('aria-invalid')).toBe('true') + expect(input(wrapper).classes()).toContain('border-danger') + expect(input(wrapper).attributes('aria-describedby')).toContain('f-total-money-error') + expect(emitted(wrapper)).toEqual(['12.34567']) + // Fixing the text clears the line while typing. + await type(wrapper, '12.3456') + expect(wrapper.find('[data-money-error]').exists()).toBe(false) + expect(emitted(wrapper)).toEqual(['12.34567', '12.3456']) + }) + + it('shows money.invalid for a second separator', async () => { + const { wrapper } = mountField() + await type(wrapper, '1.234,56') + await input(wrapper).trigger('blur') + expect(wrapper.find('[data-money-error]').text()).toBe('This is not an amount.') + }) + + it('follows the currencyFrom sibling and omits the suffix without a code', async () => { + const { wrapper, scopeValues } = mountField({ field: { currency: undefined, currencyFrom: 'currency' } }, { currency: '' }) + expect(wrapper.find('[data-money-currency]').exists()).toBe(false) + expect(input(wrapper).classes()).toContain('pr-3.5') + expect(input(wrapper).attributes('aria-describedby')).toBeUndefined() + scopeValues.value = { currency: 'EUR' } + await nextTick() + expect(wrapper.find('[data-money-currency]').text()).toBe('EUR') + expect(input(wrapper).classes()).toContain('pr-16') + }) + + it('renders a read-only box with the formatted amount or an em dash', () => { + const { wrapper } = mountField({ modelValue: '39.8400', field: { readOnly: true } }) + const box = wrapper.find('[data-money-readonly]') + expect(box.exists()).toBe(true) + expect(box.text()).toBe('PLN 39.84') + expect(box.classes()).toContain('tabular-nums') + expect(wrapper.find('input').exists()).toBe(false) + const { wrapper: empty } = mountField({ modelValue: null, field: { attributes: { readonly: true } } }) + expect(empty.find('[data-money-readonly] [data-empty]').text()).toBe('—') + }) + + it('replaces the draft when the value is set from outside', async () => { + const { wrapper } = mountField({ modelValue: '1.00' }) + await type(wrapper, '2') + await wrapper.setProps({ modelValue: '5.0000' }) + expect(input(wrapper).element.value).toBe('5.00') + }) +}) diff --git a/docs/backend/forms.md b/docs/backend/forms.md index af8973e..b2cd899 100644 --- a/docs/backend/forms.md +++ b/docs/backend/forms.md @@ -103,12 +103,13 @@ for _, f := range form.Fields { | `mlmarkdown` | A markdown field with one editor per locale; see [Markdown and multilingual fields](#markdown-and-multilingual-fields). | | `richeditor` | A WYSIWYG HTML editor for a host text column, sanitized on every save; see [Rich text](#rich-text). | | `repeater` | A list of rows, each with its own small form, stored as JSON in one column; see [Repeater](#repeater). | +| `money` | An exact decimal amount with a currency suffix, never a float and never rounded; see [Money](#money). | The WinterCMS widgets that are not in this list (the code editor, the color picker, the media finder, the tag list and the others) are not provided. A field with one of those types stops the start-up, unless a plugin registers that alias as its own field type: plugins add field types with a custom element and Go code that decides what is stored; see [Plugin field types](field-types.md). ### Field options -A field takes `label`, `comment`, `type`, `required`, `default`, `tab`, `span` (`left`, `right`, `full`, `auto`, `row`), `size` (`tiny`, `small`, `large`, `huge`, `giant`), `context`, `attributes` (scalar HTML attributes for the input), `options` and `emptyOption`, plus `nameFrom` and `relation` on relation fields, `preset` on text and mltext fields and `dependsOn` on dropdowns (see [Dependent dropdowns](#dependent-dropdowns)). WinterCMS keys outside this set, such as `readOnly`, `disabled` or `trigger`, are refused. +A field takes `label`, `comment`, `type`, `required`, `default`, `tab`, `span` (`left`, `right`, `full`, `auto`, `row`), `size` (`tiny`, `small`, `large`, `huge`, `giant`), `context`, `attributes` (scalar HTML attributes for the input), `options` and `emptyOption`, plus `nameFrom` and `relation` on relation fields, `preset` on text and mltext fields, `dependsOn` on dropdowns (see [Dependent dropdowns](#dependent-dropdowns)) and `currency`, `currencyFrom`, `scale` and `max` on money fields (see [Money](#money)). WinterCMS keys outside this set, such as `readOnly`, `disabled` or `trigger`, are refused. `context: update` shows a field only on the update form, and `context: create` only on the create form; a list of contexts is also accepted, and `context: preview` shows a field only on the [preview screen](#preview-screen). The context is enforced on the server too: a field that is hidden on a form is never written by that form's save, whatever the request body holds. @@ -458,6 +459,51 @@ In the admin SPA the field is a TipTap editor with a toolbar for bold, italic, u - **After a save** the notices appear under the field and the editor shows the sanitized value the server stored. - If the editor code cannot be loaded, the field falls back to the HTML view, so the record can still be edited and saved. +## Money + +`type: money` edits an exact decimal amount. The value travels as a decimal string with a dot and at most `scale` fraction digits (`"39.8400"`, `"85.4193"`, `"-12.5"`), or `null`. Neither the server nor the admin SPA ever parses it into a float: the string is checked as text, handed to the model column unchanged, and formatted for reading with `Intl.NumberFormat` from the string itself. A value is never rounded or truncated: one with too many decimals is refused. + +The column is a `string` (or `*string`), or a struct type whose pointer implements `sql.Scanner` and that implements `driver.Valuer`, such as a plugin's scale-4 amount type over a `numeric(12,4)` column. Any other column type stops the start-up naming the field. + +```yaml +fields: + currency: + label: acme.shop::lang.orders.currency + type: text + total: + label: acme.shop::lang.orders.total + type: money + currencyFrom: currency + max: "99999999.9999" + fee: + label: acme.shop::lang.orders.fee + type: money + currency: EUR + scale: 2 +``` + +The field takes the generic keys plus: + +| Key | Meaning | +|-----|---------| +| `currency` | A literal three-letter upper-case ISO 4217 code shown as the input's suffix. | +| `currencyFrom` | The name of a string column of the same model that holds the code; the suffix follows that field's current value on the form. Exactly one of `currency` and `currencyFrom` is required: both, or neither, stop the start-up naming the field. | +| `scale` | The most fraction digits a value may carry: 2, 3 or 4 (the default). | +| `max` | The column ceiling as a decimal string with at most `scale` places, for example `"999999.9999"` for a `numeric(10,4)` column. Optional. | + +`options`, `emptyOption`, `nameFrom`, `dependsOn` and `preset` are refused on a money field, and the four money keys are refused on every other type. + +A save checks every submitted money value before the transaction and answers a 422 on the field with one of three `backend::lang.money` messages: + +| Value | Answer | +|-------|--------| +| Not a string, or a string that is not an optional minus, digits and at most one dot followed by digits (`"1,5"`, `"1e3"`, `"1 000"`, a JSON number) | `money.invalid` | +| More fraction digits than `scale` (`"12.34567"` at scale 4) | `money.too_precise`, with `:scale` | +| Above `max` in absolute magnitude, compared as scaled digit strings | `money.too_large`, with `:max` | + +`null` is accepted and stored as NULL (or the column type's empty value); `required: true` refuses it through the usual rule. A value the administrator did not edit is sent back as it was loaded, so opening and saving a form with a stored `85.4193` writes `85.4193` again, never `85.42`. The same checks run on settings forms and relation forms. + +In the admin SPA the field is a text input in decimal mode, right-aligned in tabular numerals, with the ISO code as a suffix (omitted while a `currencyFrom` sibling is still empty). A loaded value is shown with its trailing zeros trimmed down to two decimals and the locale's decimal separator; typing accepts a comma or a dot and ignores spaces, and emits the canonical dot string. The error line shows on blur for a malformed or too-precise text, and the text is still sent as typed so the server's answer is the gate. Read-only and preview show the locale-formatted amount with the code (`PLN 39.84`, `39,84 PLN`) or an em dash when empty. ## What a save may write The form's writable fields are bound to model columns at boot. A save passes only those fields that are also in the model's `Fillable` list, drops unknown keys, case variants and nested objects, and fills the model with `lagoon.Fill` (see [Models](../database/models.md)). Declared `mltext`, `mltextarea` and `mlmarkdown` locale maps are the exception: they are lifted first, as [Markdown and multilingual fields](#markdown-and-multilingual-fields). A [repeater](#repeater)'s list of rows is the other exception: it is decoded row by row before the projection. The model's validation rules (a `Rules` method returning `lagoon.Validate` rule strings) and the form's `required` flags are checked in the save's transaction, and a failure is a 422 with messages per field. A value that does not fit its column is also a 422 on that field. A controller implementing `pact.FormRules` supplies its own rule set per operation, which replaces the model's rules for admin saves. diff --git a/modules/boardwalk/dist/assets/editor-uegcluyM.js b/modules/boardwalk/dist/assets/editor-q6O2bPl6.js similarity index 99% rename from modules/boardwalk/dist/assets/editor-uegcluyM.js rename to modules/boardwalk/dist/assets/editor-q6O2bPl6.js index b5b2fb2..e406bad 100644 --- a/modules/boardwalk/dist/assets/editor-uegcluyM.js +++ b/modules/boardwalk/dist/assets/editor-q6O2bPl6.js @@ -1,4 +1,4 @@ -import{L as mu,i as gu}from"./index-DzfknjJw.js";var Vs=Object.defineProperty,yu=(n,e)=>{let t={};for(var r in n)Vs(t,r,{get:n[r],enumerable:!0});return Vs(t,Symbol.toStringTag,{value:"Module"}),t};function Q(n){this.content=n}Q.prototype={constructor:Q,find:function(n){for(var e=0;e>1}};Q.from=function(n){if(n instanceof Q)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Q(e)};function Cl(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let i=n.child(r),s=e.child(r);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){let o=i.text,l=s.text,a=0;for(;o[a]==l[a];a++)t++;return a&&a0&&f>0&&c[d-1]==u[f-1];)d--,f--,t--,r--;return d&&f&&d=56320&&n<57344}function El(n){return n>=55296&&n<56320}class k{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;re&&r(a,i+l,s||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,t-u),r,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,i){let s="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(i[i.length-1]=t.withText(t.text+r.text),s=1);se)for(let s=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),i+=l.nodeSize),o=a}return new k(r,i)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return i[e]=t,new k(i,s)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let i=this.child(t),s=r+i.nodeSize;if(s>=e)return s==e?Rn(t+1,s):Rn(t,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return k.fromArray(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let i=0;ithis.type.rank&&(t||(t=e.slice(0,i)),t.push(this),r=!0),t&&t.push(s)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;tr.type.rank-i.type.rank),t}};B.none=[];class gn extends Error{}class w{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Al(this.content,e+this.openStart,t,this.openStart+1,this.openEnd+1);return r&&new w(r,this.openStart,this.openEnd)}removeBetween(e,t){return new w(vl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return w.empty;let r=t.openStart||0,i=t.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new w(k.fromJSON(e,t.content),r,i)}static maxOpen(e,t=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new w(e,r,i)}}w.empty=new w(k.empty,0,0);function vl(n,e,t){let{index:r,offset:i}=n.findIndex(e),s=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(i==e||s.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,s.copy(vl(s.content,e-i-1,t-i-1)))}function Al(n,e,t,r,i,s){let{index:o,offset:l}=n.findIndex(e),a=n.maybeChild(o);if(l==e||a.isText)return s&&r<=0&&i<=0&&!s.canReplace(o,o,t)?null:n.cut(0,e).append(t).append(n.cut(e));let c=Al(a.content,e-l-1,t,o==0?r-1:0,o==n.childCount-1?i-1:0,a);return c&&n.replaceChild(o,a.copy(c))}function ku(n,e,t){if(t.openStart>n.depth)throw new gn("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new gn("Inconsistent open depths");return Ol(n,e,t,0)}function Ol(n,e,t,r){let i=n.index(r),s=n.node(r);if(i==e.index(r)&&r=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function nn(n,e,t,r){let i=(e||n).node(t),s=0,o=e?e.index(t):i.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(mt(n.nodeAfter,r),s++));for(let l=s;li&&Ai(n,e,i+1),o=r.depth>i&&Ai(t,r,i+1),l=[];return nn(null,n,i,l),s&&o&&e.index(i)==t.index(i)?(Nl(s,o),mt(gt(s,Dl(n,e,t,r,i+1)),l)):(s&&mt(gt(s,Qn(n,e,i+1)),l),nn(e,t,i,l),o&&mt(gt(o,Qn(t,r,i+1)),l)),nn(r,null,i,l),new k(l)}function Qn(n,e,t){let r=[];if(nn(null,n,t,r),n.depth>t){let i=Ai(n,e,t+1);mt(gt(i,Qn(n,e,t+1)),r)}return nn(e,null,t,r),new k(r)}function bu(n,e){let t=e.depth-n.openStart,i=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(k.from(i));return{start:i.resolveNoCache(n.openStart+t),end:i.resolveNoCache(i.content.size-n.openEnd-t)}}class yn{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=e.child(t);return r?e.child(t).cut(r):i}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new Zn(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new yn(t,r,s)}static resolveCached(e,t){let r=Hs.get(e);if(r)for(let s=0;se&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),Il(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;at.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let i=k.fromJSON(e,t.content);return e.nodeType(t.type).create(t.attrs,i,r)}};yt.prototype.text=void 0;class er extends yt{constructor(e,t,r,i){if(super(e,t,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Il(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new er(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new er(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function Il(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}function js(n,e,t,r){for(let i in e)if(!(i in n))throw new RangeError(`Unsupported attribute ${i} for ${t} of type ${r}`);for(let i in n)n[i].validate&&n[i].validate(e[i])}class xt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new Cu(e,t);if(r.next==null)return xt.empty;let i=Rl(r);r.next&&r.err("Unexpected trailing text");let s=Nu(Ou(i));return Du(s,r),s}matchType(e){for(let t=0;tc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let i=0;i{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return s}).join(` +import{L as mu,i as gu}from"./index-BPd1k6k8.js";var Vs=Object.defineProperty,yu=(n,e)=>{let t={};for(var r in n)Vs(t,r,{get:n[r],enumerable:!0});return Vs(t,Symbol.toStringTag,{value:"Module"}),t};function Q(n){this.content=n}Q.prototype={constructor:Q,find:function(n){for(var e=0;e>1}};Q.from=function(n){if(n instanceof Q)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Q(e)};function Cl(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let i=n.child(r),s=e.child(r);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){let o=i.text,l=s.text,a=0;for(;o[a]==l[a];a++)t++;return a&&a0&&f>0&&c[d-1]==u[f-1];)d--,f--,t--,r--;return d&&f&&d=56320&&n<57344}function El(n){return n>=55296&&n<56320}class k{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;re&&r(a,i+l,s||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,t-u),r,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,i){let s="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(i[i.length-1]=t.withText(t.text+r.text),s=1);se)for(let s=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),i+=l.nodeSize),o=a}return new k(r,i)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return i[e]=t,new k(i,s)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let i=this.child(t),s=r+i.nodeSize;if(s>=e)return s==e?Rn(t+1,s):Rn(t,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return k.fromArray(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let i=0;ithis.type.rank&&(t||(t=e.slice(0,i)),t.push(this),r=!0),t&&t.push(s)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;tr.type.rank-i.type.rank),t}};B.none=[];class gn extends Error{}class w{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Al(this.content,e+this.openStart,t,this.openStart+1,this.openEnd+1);return r&&new w(r,this.openStart,this.openEnd)}removeBetween(e,t){return new w(vl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return w.empty;let r=t.openStart||0,i=t.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new w(k.fromJSON(e,t.content),r,i)}static maxOpen(e,t=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new w(e,r,i)}}w.empty=new w(k.empty,0,0);function vl(n,e,t){let{index:r,offset:i}=n.findIndex(e),s=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(i==e||s.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,s.copy(vl(s.content,e-i-1,t-i-1)))}function Al(n,e,t,r,i,s){let{index:o,offset:l}=n.findIndex(e),a=n.maybeChild(o);if(l==e||a.isText)return s&&r<=0&&i<=0&&!s.canReplace(o,o,t)?null:n.cut(0,e).append(t).append(n.cut(e));let c=Al(a.content,e-l-1,t,o==0?r-1:0,o==n.childCount-1?i-1:0,a);return c&&n.replaceChild(o,a.copy(c))}function ku(n,e,t){if(t.openStart>n.depth)throw new gn("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new gn("Inconsistent open depths");return Ol(n,e,t,0)}function Ol(n,e,t,r){let i=n.index(r),s=n.node(r);if(i==e.index(r)&&r=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function nn(n,e,t,r){let i=(e||n).node(t),s=0,o=e?e.index(t):i.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(mt(n.nodeAfter,r),s++));for(let l=s;li&&Ai(n,e,i+1),o=r.depth>i&&Ai(t,r,i+1),l=[];return nn(null,n,i,l),s&&o&&e.index(i)==t.index(i)?(Nl(s,o),mt(gt(s,Dl(n,e,t,r,i+1)),l)):(s&&mt(gt(s,Qn(n,e,i+1)),l),nn(e,t,i,l),o&&mt(gt(o,Qn(t,r,i+1)),l)),nn(r,null,i,l),new k(l)}function Qn(n,e,t){let r=[];if(nn(null,n,t,r),n.depth>t){let i=Ai(n,e,t+1);mt(gt(i,Qn(n,e,t+1)),r)}return nn(e,null,t,r),new k(r)}function bu(n,e){let t=e.depth-n.openStart,i=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(k.from(i));return{start:i.resolveNoCache(n.openStart+t),end:i.resolveNoCache(i.content.size-n.openEnd-t)}}class yn{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=e.child(t);return r?e.child(t).cut(r):i}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new Zn(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new yn(t,r,s)}static resolveCached(e,t){let r=Hs.get(e);if(r)for(let s=0;se&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),Il(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;at.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let i=k.fromJSON(e,t.content);return e.nodeType(t.type).create(t.attrs,i,r)}};yt.prototype.text=void 0;class er extends yt{constructor(e,t,r,i){if(super(e,t,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Il(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new er(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new er(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function Il(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}function js(n,e,t,r){for(let i in e)if(!(i in n))throw new RangeError(`Unsupported attribute ${i} for ${t} of type ${r}`);for(let i in n)n[i].validate&&n[i].validate(e[i])}class xt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new Cu(e,t);if(r.next==null)return xt.empty;let i=Rl(r);r.next&&r.err("Unexpected trailing text");let s=Nu(Ou(i));return Du(s,r),s}matchType(e){for(let t=0;tc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let i=0;i{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return s}).join(` `)}}xt.empty=new xt(!0);class Cu{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function Rl(n){let e=[];do e.push(Mu(n));while(n.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function Mu(n){let e=[];do e.push(Tu(n));while(n.next&&n.next!=")"&&n.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function Tu(n){let e=Au(n);for(;;)if(n.eat("+"))e={type:"plus",expr:e};else if(n.eat("*"))e={type:"star",expr:e};else if(n.eat("?"))e={type:"opt",expr:e};else if(n.eat("{"))e=Eu(n,e);else break;return e}function Ws(n){/\D/.test(n.next)&&n.err("Expected number, got '"+n.next+"'");let e=Number(n.next);return n.pos++,e}function Eu(n,e){let t=Ws(n),r=t;return n.eat(",")&&(n.next!="}"?r=Ws(n):r=-1),n.eat("}")||n.err("Unclosed braced range"),{type:"range",min:t,max:r,expr:e}}function vu(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let i=[];for(let s in t){let o=t[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&n.err("No node type or group '"+e+"' found"),i}function Au(n){if(n.eat("(")){let e=Rl(n);return n.eat(")")||n.err("Missing closing paren"),e}else if(/\W/.test(n.next))n.err("Unexpected token '"+n.next+"'");else{let e=vu(n,n.next).map(t=>(n.inline==null?n.inline=t.isInline:n.inline!=t.isInline&&n.err("Mixing inline and block content"),{type:"name",value:t}));return n.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function Ou(n){let e=[[]];return i(s(n,0),t()),e;function t(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(s(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=s(o.exprs[a],l);if(a==o.exprs.length-1)return c;i(c,l=t())}else if(o.type=="star"){let a=t();return r(l,a),i(s(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=t();return i(s(o.expr,l),a),i(s(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(s(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c{n[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let u=0;u{c||i.push([l,c=[]]),c.indexOf(u)==-1&&c.push(u)})})});let s=e[r.join(",")]=new xt(r.indexOf(n.length-1)>-1);for(let o=0;o-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Bl(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new yt(this,this.computeAttrs(e),k.from(t),B.setFrom(r))}createChecked(e=null,t,r){return t=k.from(t),this.checkContent(t),new yt(this,this.computeAttrs(e),t,B.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=k.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let i=this.contentMatch.matchFragment(t),s=i&&i.fillBefore(k.empty,!0);return s?new yt(this,e,t.append(s),B.setFrom(r)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let r=0;r-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tr[s]=new $l(s,t,o));let i=t.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let s in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function Iu(n,e,t){let r=t.split("|");return i=>{let s=i===null?"null":typeof i;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${s}`)}}class Ru{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?Iu(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class Fr{constructor(e,t,r,i){this.name=e,this.rank=t,this.schema=r,this.spec=i,this.attrs=zl(e,i.attrs),this.excluded=null;let s=Pl(this.attrs);this.instance=s?new B(this,s):null}create(e=null){return!e&&this.instance?this.instance:new B(this,Bl(this.attrs,e))}static compile(e,t){let r=Object.create(null),i=0;return e.forEach((s,o)=>r[s]=new Fr(s,i++,t,o)),r}removeFromSet(e){for(var t=0;t-1}}class Fl{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let i in e)t[i]=e[i];t.nodes=Q.from(e.nodes),t.marks=Q.from(e.marks||{}),this.nodes=Us.compile(this.spec.nodes,this),this.marks=Fr.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let s=this.nodes[i],o=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=r[o]||(r[o]=xt.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?_s(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==""?[]:_s(this,o.split(" "))}this.nodeFromJSON=i=>yt.fromJSON(this,i),this.markFromJSON=i=>B.fromJSON(this,i),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,i){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof Us){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(t,r,i)}text(e,t){let r=this.nodes.text;return new er(r,r.defaultAttrs,e,B.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function _s(n,e){let t=[];for(let r=0;r-1)&&t.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return t}function Lu(n){return n.tag!=null}function Pu(n){return n.style!=null}class Xe{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(i=>{if(Lu(i))this.tags.push(i);else if(Pu(i)){let s=/[^=]*/.exec(i.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,t={}){let r=new Js(this,t,!1);return r.addAll(e,B.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new Js(this,t,!0);return r.addAll(e,B.none,t.from,t.to),w.maxOpen(r.finish())}matchTag(e,t,r){for(let i=r?this.tags.indexOf(r)+1:0;ie.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(o.getAttrs){let a=o.getAttrs(t);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let t=[];function r(i){let s=i.priority==null?50:i.priority,o=0;for(;o{r(o=Gs(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{r(o=Gs(o)),o.node||o.ignore||o.mark||(o.node=i)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new Xe(e,Xe.schemaRules(e)))}}const Vl={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Bu={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Hl={ol:!0,ul:!0},kn=1,Ni=2,rn=4;function qs(n,e,t){return e!=null?(e?kn:0)|(e==="full"?Ni:0):n&&n.whitespace=="pre"?kn|Ni:t&~rn}class Ln{constructor(e,t,r,i,s,o){this.type=e,this.attrs=t,this.marks=r,this.solid=i,this.options=o,this.content=[],this.activeMarks=B.none,this.match=s||(o&rn?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(k.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(e.type))?(this.match=r,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&kn)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \t\r\n\u000c]+$/.exec(r.text))){let s=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let t=k.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(k.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Vl.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class Js{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let i=t.topNode,s,o=qs(null,t.preserveWhitespace,0)|(r?rn:0);i?s=new Ln(i.type,i.attrs,B.none,!0,t.topMatch||i.type.contentMatch,o):r?s=new Ln(null,null,B.none,!0,null,o):s=new Ln(e.schema.topNodeType,null,B.none,!0,null,o),this.nodes=[s],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let r=e.nodeValue,i=this.top,s=i.options&Ni?"full":this.localPreserveWS||(i.options&kn)>0,{schema:o}=this.parser;if(s==="full"||i.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(s)if(s==="full")r=r.replace(/\r\n?/g,` `);else if(o.linebreakReplacement&&/[\r\n]/.test(r)&&this.top.findWrapping(o.linebreakReplacement.create())){let l=r.split(/\r?\n|\r/);for(let a=0;a!a.clearMark(c)):t=t.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return t}addElementByRule(e,t,r,i){let s,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let a=this.enter(o,t.attrs||null,r,t.preserveWhitespace);a&&(s=!0,r=a)}else{let a=this.parser.schema.marks[t.mark];r=r.concat(a.create(t.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(i)this.addElement(e,r,i);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof t.contentElement=="string"?a=e.querySelector(t.contentElement):typeof t.contentElement=="function"?a=t.contentElement(e):t.contentElement&&(a=t.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}s&&this.sync(l)&&this.open--}addAll(e,t,r,i){let s=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,t);this.findAtPoint(e,s)}findPlace(e,t,r){let i,s;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!i||i.length>c.length+l)&&(i=c,s=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!i)return null;this.sync(s);for(let o=0;o(o.type?o.type.allowsMarkType(c.type):Ys(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new Ln(e,t,a,i,null,l)),this.open++,r}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=kn)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let r=this.nodes[t].content;for(let i=r.length-1;i>=0;i--)e+=r[i].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let r=0;r-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(i?0:1),o=(l,a)=>{for(;l>=0;l--){let c=t[l];if(c==""){if(l==t.length-1||l==0)continue;for(;a>=s;a--)if(o(l-1,a))return!0;return!1}else{let u=a>0||a==0&&i?this.nodes[a].type:r&&a>=s?r.node(a-s).type:null;if(!u||u.name!=c&&!u.isInGroup(c))return!1;a--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let r=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let t in this.parser.schema.nodes){let r=this.parser.schema.nodes[t];if(r.isTextblock&&r.defaultAttrs)return r}}}function zu(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&Hl.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r=="li"?t=e:r&&(t=null)}}function $u(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function Gs(n){let e={};for(let t in n)e[t]=n[t];return e}function Ys(n,e){let t=e.schema.nodes;for(let r in t){let i=t[r];if(!i.allowsMarkType(n))continue;let s=[],o=l=>{s.push(l);for(let a=0;a{if(s.length||o.marks.length){let l=0,a=0;for(;l=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,t);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,t,r={}){let i=this.marks[e.type.name];return i&&_n(Pn(r),i(e,t),null,e.attrs)}static renderSpec(e,t,r=null,i){return typeof t=="string"?{dom:e.createTextNode(t)}:_n(e,t,r,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new Tt(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=Xs(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return Xs(e.marks)}}function Xs(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function Pn(n){return n.document||window.document}const Qs=new WeakMap;function Fu(n){let e=Qs.get(n);return e===void 0&&Qs.set(n,e=Vu(n)),e}function Vu(n){let e=null;function t(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let i=0;i-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=i.indexOf(" ");o>0&&(t=i.slice(0,o),i=i.slice(o+1));let l,a=t?n.createElementNS(t,i):n.createElement(i),c=e[1],u=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){u=2;for(let d in c)if(c[d]!=null){let f=d.indexOf(" ");f>0?a.setAttributeNS(d.slice(0,f),d.slice(f+1),c[d]):d=="style"&&a.style?a.style.cssText=c[d]:a.setAttribute(d,c[d])}}for(let d=u;du)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else if(typeof f=="string")a.appendChild(n.createTextNode(f));else{let{dom:h,contentDOM:p}=_n(n,f,t,r);if(a.appendChild(h),p){if(l)throw new RangeError("Multiple content holes");l=p}}}return{dom:a,contentDOM:l}}const jl=65535,Wl=Math.pow(2,16);function Hu(n,e){return n+e*Wl}function Zs(n){return n&jl}function ju(n){return(n-(n&jl))/Wl}const Kl=1,Ul=2,qn=4,_l=8;class Di{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&_l)>0}get deletedBefore(){return(this.delInfo&(Kl|qn))>0}get deletedAfter(){return(this.delInfo&(Ul|qn))>0}get deletedAcross(){return(this.delInfo&qn)>0}}class de{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&de.empty)return de.empty}recover(e){let t=0,r=Zs(e);if(!this.inverted)for(let i=0;ie)break;let c=this.ranges[l+s],u=this.ranges[l+o],d=a+c;if(e<=d){let f=c?e==a?-1:e==d?1:t:t,h=a+i+(f<0?0:u);if(r)return h;let p=e==(t<0?a:d)?null:Hu(l/3,e-a),m=0;return c&&(m|=e==a?Ul:e==d?Kl:qn,(t<0?e!=a:e!=d)&&(m|=_l)),new Di(h,m,p)}i+=u-c}return r?e+i:new Di(e+i,0,null)}touches(e,t){let r=0,i=Zs(t),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let c=this.ranges[l+s],u=a+c;if(e<=u&&l==i*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let t=this.inverted?2:1,r=this.inverted?1:2;for(let i=0,s=0;i=0;t--){let i=e.getMirror(t);this.appendMap(e._maps[t].invert(),i!=null&&i>t?r-i-1:void 0)}}invert(){let e=new bn;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let r=this.from;rs&&a!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),t.openStart,t.openEnd);return K.fromReplace(e,this.from,this.to,s)}invert(){return new Ce(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Ge(t.pos,r.pos,this.mark)}merge(e){return e instanceof Ge&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ge(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Ge(t.from,t.to,e.markFromJSON(t.mark))}}se.jsonID("addMark",Ge);class Ce extends se{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=new w(ss(t.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),t.openStart,t.openEnd);return K.fromReplace(e,this.from,this.to,r)}invert(){return new Ge(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Ce(t.pos,r.pos,this.mark)}merge(e){return e instanceof Ce&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ce(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Ce(t.from,t.to,e.markFromJSON(t.mark))}}se.jsonID("removeMark",Ce);class Ye extends se{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return K.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return K.fromReplace(e,this.pos,this.pos+1,new w(k.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let r=this.mark.addToSet(t.marks);if(r.length==t.marks.length){for(let i=0;ir.pos?null:new G(t.pos,r.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new G(t.from,t.to,t.gapFrom,t.gapTo,w.fromJSON(e,t.slice),t.insert,!!t.structure)}}se.jsonID("replaceAround",G);function Ii(n,e,t){let r=n.resolve(e),i=t-e,s=r.depth;for(;i>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,i--;if(i>0){let o=r.node(s).maybeChild(r.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function Wu(n,e,t,r){let i=[],s=[],o,l;n.doc.nodesBetween(e,t,(a,c,u)=>{if(!a.isInline)return;let d=a.marks;if(!r.isInSet(d)&&u.type.allowsMarkType(r.type)){let f=Math.max(c,e),h=Math.min(c+a.nodeSize,t),p=r.addToSet(d);for(let m=0;mn.step(a)),s.forEach(a=>n.step(a))}function Ku(n,e,t,r){let i=[],s=0;n.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(r instanceof Fr){let c=o.marks,u;for(;u=r.isInSet(c);)(a||(a=[])).push(u),c=u.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,t);for(let u=0;un.step(new Ce(o.from,o.to,o.style)))}function ls(n,e,t,r=t.contentMatch,i=!0){let s=n.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a=0;a--)n.step(o[a])}function Uu(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function _t(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth,i=0,s=0;;--r){let o=n.$from.node(r),l=n.$from.index(r)+i,a=n.$to.indexAfter(r)-s;if(rt;p--)m||r.index(p)>0?(m=!0,u=k.from(r.node(p).copy(u)),d++):a--;let f=k.empty,h=0;for(let p=s,m=!1;p>t;p--)m||i.after(p+1)=0;o--){if(r.size){let l=t[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=k.from(t[o].type.create(t[o].attrs,r))}let i=e.start,s=e.end;n.step(new G(i,s,i,s,new w(r,0,0),t.length,!0))}function Yu(n,e,t,r,i){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=n.steps.length;n.doc.nodesBetween(e,t,(o,l)=>{let a=typeof i=="function"?i(o):i;if(o.isTextblock&&!o.hasMarkup(r,a)&&Xu(n.doc,n.mapping.slice(s).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let h=r.whitespace=="pre",p=!!r.contentMatch.matchType(r.schema.linebreakReplacement);h&&!p?c=!1:!h&&p&&(c=!0)}c===!1&&Jl(n,o,l,s),ls(n,n.mapping.slice(s).map(l,1),r,void 0,c===null);let u=n.mapping.slice(s),d=u.map(l,1),f=u.map(l+o.nodeSize,1);return n.step(new G(d,f,d+1,f-1,new w(k.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&ql(n,o,l,s),!1}})}function ql(n,e,t,r){e.forEach((i,s)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let a=n.mapping.slice(r).map(t+1+s+o.index);n.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function Jl(n,e,t,r){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=n.mapping.slice(r).map(t+1+s);n.replaceWith(o,o+1,e.type.schema.text(` diff --git a/modules/boardwalk/dist/assets/index-BPd1k6k8.js b/modules/boardwalk/dist/assets/index-BPd1k6k8.js new file mode 100644 index 0000000..1db6aab --- /dev/null +++ b/modules/boardwalk/dist/assets/index-BPd1k6k8.js @@ -0,0 +1,11 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))a(r);new MutationObserver(r=>{for(const l of r)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const l={};return r.integrity&&(l.integrity=r.integrity),r.referrerPolicy&&(l.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?l.credentials="include":r.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function a(r){if(r.ep)return;r.ep=!0;const l=n(r);fetch(r.href,l)}})();function bd(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ht={},xl=[],Xn=()=>{},Jm=()=>!1,Ss=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Es=e=>e.startsWith("onUpdate:"),Et=Object.assign,_d=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},e0=Object.prototype.hasOwnProperty,pt=(e,t)=>e0.call(e,t),Ye=Array.isArray,kl=e=>ti(e)==="[object Map]",Zm=e=>ti(e)==="[object Set]",tp=e=>ti(e)==="[object Date]",Qe=e=>typeof e=="function",bt=e=>typeof e=="string",yn=e=>typeof e=="symbol",dt=e=>e!==null&&typeof e=="object",Xm=e=>(dt(e)||Qe(e))&&Qe(e.then)&&Qe(e.catch),Qm=Object.prototype.toString,ti=e=>Qm.call(e),t0=e=>ti(e).slice(8,-1),eh=e=>ti(e)==="[object Object]",As=e=>bt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,$o=bd(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ts=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},n0=/-\w/g,Vt=Ts(e=>e.replace(n0,t=>t.slice(1).toUpperCase())),a0=/\B([A-Z])/g,fr=Ts(e=>e.replace(a0,"-$1").toLowerCase()),Ds=Ts(e=>e.charAt(0).toUpperCase()+e.slice(1)),Co=Ts(e=>e?`on${Ds(e)}`:""),Kn=(e,t)=>!Object.is(e,t),Ui=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},xd=e=>{const t=parseFloat(e);return isNaN(t)?e:t},r0=e=>{const t=bt(e)?Number(e):NaN;return isNaN(t)?e:t};let np;const Os=()=>np||(np=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Tn(e){if(Ye(e)){const t={};for(let n=0;n{if(n){const a=n.split(o0);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function ge(e){let t="";if(bt(e))t=e;else if(Ye(e))for(let n=0;n!!(e&&e.__v_isRef===!0),T=e=>bt(e)?e:e==null?"":Ye(e)||dt(e)&&(e.toString===Qm||!Qe(e.toString))?ah(e)?T(e.value):JSON.stringify(e,rh,2):String(e),rh=(e,t)=>ah(t)?rh(e,t.value):kl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,r],l)=>(n[$u(a,l)+" =>"]=r,n),{})}:Zm(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$u(n))}:yn(t)?$u(t):dt(t)&&!Ye(t)&&!eh(t)?String(t):t,$u=(e,t="")=>{var n;return yn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Dt;class lh{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Dt&&(Dt.active?(this.parent=Dt,this.index=(Dt.scopes||(Dt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Dt===this)Dt=this.prevScope;else{let t=Dt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,a;for(n=0,a=this.effects.length;n0)return;if(Eo){let t=Eo;for(Eo=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;So;){let t=So;for(So=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(a){e||(e=a)}t=n}}if(e)throw e}function dh(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fh(e){let t,n=e.depsTail,a=n;for(;a;){const r=a.prevDep;a.version===-1?(a===n&&(n=r),Sd(a),f0(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=r}e.deps=t,e.depsTail=n}function Ec(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ph(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ph(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===No)||(e.globalVersion=No,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ec(e))))return;e.flags|=2;const t=e.dep,n=yt,a=Dn;yt=e,Dn=!0;try{dh(e);const r=e.fn(e._value);(t.version===0||Kn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{yt=n,Dn=a,fh(e),e.flags&=-3}}function Sd(e,t=!1){const{dep:n,prevSub:a,nextSub:r}=e;if(a&&(a.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=a,e.nextSub=void 0),n.subs===e&&(n.subs=a,!a&&n.computed)){n.computed.flags&=-5;for(let l=n.computed.deps;l;l=l.nextDep)Sd(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function f0(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Dn=!0;const vh=[];function xa(){vh.push(Dn),Dn=!1}function ka(){const e=vh.pop();Dn=e===void 0?!0:e}function ap(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=yt;yt=void 0;try{t()}finally{yt=n}}}let No=0,p0=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class Ms{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!yt||!Dn||yt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==yt)n=this.activeLink=new p0(yt,this),yt.deps?(n.prevDep=yt.depsTail,yt.depsTail.nextDep=n,yt.depsTail=n):yt.deps=yt.depsTail=n,mh(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const a=n.nextDep;a.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=a),n.prevDep=yt.depsTail,n.nextDep=void 0,yt.depsTail.nextDep=n,yt.depsTail=n,yt.deps===n&&(yt.deps=a)}return n}trigger(t){this.version++,No++,this.notify(t)}notify(t){$d();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Cd()}}}function mh(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let a=t.deps;a;a=a.nextDep)mh(a)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Zi=new WeakMap,Mr=Symbol(""),Ac=Symbol(""),Lo=Symbol("");function Wt(e,t,n){if(Dn&&yt){let a=Zi.get(e);a||Zi.set(e,a=new Map);let r=a.get(n);r||(a.set(n,r=new Ms),r.map=a,r.key=n),r.track()}}function fa(e,t,n,a,r,l){const o=Zi.get(e);if(!o){No++;return}const i=s=>{s&&s.trigger()};if($d(),t==="clear")o.forEach(i);else{const s=Ye(e),c=s&&As(n);if(s&&n==="length"){const d=Number(a);o.forEach((f,m)=>{(m==="length"||m===Lo||!yn(m)&&m>=d)&&i(f)})}else switch((n!==void 0||o.has(void 0))&&i(o.get(n)),c&&i(o.get(Lo)),t){case"add":s?c&&i(o.get("length")):(i(o.get(Mr)),kl(e)&&i(o.get(Ac)));break;case"delete":s||(i(o.get(Mr)),kl(e)&&i(o.get(Ac)));break;case"set":kl(e)&&i(o.get(Mr));break}}Cd()}function v0(e,t){const n=Zi.get(e);return n&&n.get(t)}function nl(e){const t=ut(e);return t===e?t:(Wt(t,"iterate",Lo),mn(e)?t:t.map(Mn))}function Ps(e){return Wt(e=ut(e),"iterate",Lo),e}function Hn(e,t){return wa(e)?Rl(Pr(e)?Mn(t):t):Mn(t)}const m0={__proto__:null,[Symbol.iterator](){return Su(this,Symbol.iterator,e=>Hn(this,e))},concat(...e){return nl(this).concat(...e.map(t=>Ye(t)?nl(t):t))},entries(){return Su(this,"entries",e=>(e[1]=Hn(this,e[1]),e))},every(e,t){return ia(this,"every",e,t,void 0,arguments)},filter(e,t){return ia(this,"filter",e,t,n=>n.map(a=>Hn(this,a)),arguments)},find(e,t){return ia(this,"find",e,t,n=>Hn(this,n),arguments)},findIndex(e,t){return ia(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ia(this,"findLast",e,t,n=>Hn(this,n),arguments)},findLastIndex(e,t){return ia(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ia(this,"forEach",e,t,void 0,arguments)},includes(...e){return Eu(this,"includes",e)},indexOf(...e){return Eu(this,"indexOf",e)},join(e){return nl(this).join(e)},lastIndexOf(...e){return Eu(this,"lastIndexOf",e)},map(e,t){return ia(this,"map",e,t,void 0,arguments)},pop(){return ao(this,"pop")},push(...e){return ao(this,"push",e)},reduce(e,...t){return rp(this,"reduce",e,t)},reduceRight(e,...t){return rp(this,"reduceRight",e,t)},shift(){return ao(this,"shift")},some(e,t){return ia(this,"some",e,t,void 0,arguments)},splice(...e){return ao(this,"splice",e)},toReversed(){return nl(this).toReversed()},toSorted(e){return nl(this).toSorted(e)},toSpliced(...e){return nl(this).toSpliced(...e)},unshift(...e){return ao(this,"unshift",e)},values(){return Su(this,"values",e=>Hn(this,e))}};function Su(e,t,n){const a=Ps(e),r=a[t]();return a!==e&&!mn(e)&&(r._next=r.next,r.next=()=>{const l=r._next();return l.done||(l.value=n(l.value)),l}),r}const h0=Array.prototype;function ia(e,t,n,a,r,l){const o=Ps(e),i=o!==e&&!mn(e),s=o[t];if(s!==h0[t]){const f=s.apply(e,l);return i?Mn(f):f}let c=n;o!==e&&(i?c=function(f,m){return n.call(this,Hn(e,f),m,e)}:n.length>2&&(c=function(f,m){return n.call(this,f,m,e)}));const d=s.call(o,c,a);return i&&r?r(d):d}function rp(e,t,n,a){const r=Ps(e),l=r!==e&&!mn(e);let o=n,i=!1;r!==e&&(l?(i=a.length===0,o=function(c,d,f){return i&&(i=!1,c=Hn(e,c)),n.call(this,c,Hn(e,d),f,e)}):n.length>3&&(o=function(c,d,f){return n.call(this,c,d,f,e)}));const s=r[t](o,...a);return i?Hn(e,s):s}function Eu(e,t,n){const a=ut(e);Wt(a,"iterate",Lo);const r=a[t](...n);return(r===-1||r===!1)&&qs(n[0])?(n[0]=ut(n[0]),a[t](...n)):r}function ao(e,t,n=[]){xa(),$d();const a=ut(e)[t].apply(e,n);return Cd(),ka(),a}const y0=bd("__proto__,__v_isRef,__isVue"),hh=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yn));function g0(e){yn(e)||(e=String(e));const t=ut(this);return Wt(t,"has",e),t.hasOwnProperty(e)}class yh{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,a){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,l=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return l;if(n==="__v_raw")return a===(r?l?wh:kh:l?xh:_h).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const o=Ye(t);if(!r){let s;if(o&&(s=m0[n]))return s;if(n==="hasOwnProperty")return g0}const i=Reflect.get(t,n,_t(t)?t:a);if((yn(n)?hh.has(n):y0(n))||(r||Wt(t,"get",n),l))return i;if(_t(i)){const s=o&&As(n)?i:i.value;return r&&dt(s)?Mt(s):s}return dt(i)?r?Mt(i):On(i):i}}class gh extends yh{constructor(t=!1){super(!1,t)}set(t,n,a,r){let l=t[n];const o=Ye(t)&&As(n);if(!this._isShallow){const c=wa(l);if(!mn(a)&&!wa(a)&&(l=ut(l),a=ut(a)),!o&&_t(l)&&!_t(a))return c||(l.value=a),!0}const i=o?Number(n)e,ki=e=>Reflect.getPrototypeOf(e);function w0(e,t,n){return function(...a){const r=this.__v_raw,l=ut(r),o=kl(l),i=e==="entries"||e===Symbol.iterator&&o,s=e==="keys"&&o,c=r[e](...a),d=n?Tc:t?Rl:Mn;return!t&&Wt(l,"iterate",s?Ac:Mr),Et(Object.create(c),{next(){const{value:f,done:m}=c.next();return m?{value:f,done:m}:{value:i?[d(f[0]),d(f[1])]:d(f),done:m}}})}}function wi(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $0(e,t){const n={get(r){const l=this.__v_raw,o=ut(l),i=ut(r);e||(Kn(r,i)&&Wt(o,"get",r),Wt(o,"get",i));const{has:s}=ki(o),c=t?Tc:e?Rl:Mn;if(s.call(o,r))return c(l.get(r));if(s.call(o,i))return c(l.get(i));l!==o&&l.get(r)},get size(){const r=this.__v_raw;return!e&&Wt(ut(r),"iterate",Mr),r.size},has(r){const l=this.__v_raw,o=ut(l),i=ut(r);return e||(Kn(r,i)&&Wt(o,"has",r),Wt(o,"has",i)),r===i?l.has(r):l.has(r)||l.has(i)},forEach(r,l){const o=this,i=o.__v_raw,s=ut(i),c=t?Tc:e?Rl:Mn;return!e&&Wt(s,"iterate",Mr),i.forEach((d,f)=>r.call(l,c(d),c(f),o))}};return Et(n,e?{add:wi("add"),set:wi("set"),delete:wi("delete"),clear:wi("clear")}:{add(r){const l=ut(this),o=ki(l),i=ut(r),s=!t&&!mn(r)&&!wa(r)?i:r;return o.has.call(l,s)||Kn(r,s)&&o.has.call(l,r)||Kn(i,s)&&o.has.call(l,i)||(l.add(s),fa(l,"add",s,s)),this},set(r,l){!t&&!mn(l)&&!wa(l)&&(l=ut(l));const o=ut(this),{has:i,get:s}=ki(o);let c=i.call(o,r);c||(r=ut(r),c=i.call(o,r));const d=s.call(o,r);return o.set(r,l),c?Kn(l,d)&&fa(o,"set",r,l):fa(o,"add",r,l),this},delete(r){const l=ut(this),{has:o,get:i}=ki(l);let s=o.call(l,r);s||(r=ut(r),s=o.call(l,r)),i&&i.call(l,r);const c=l.delete(r);return s&&fa(l,"delete",r,void 0),c},clear(){const r=ut(this),l=r.size!==0,o=r.clear();return l&&fa(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=w0(r,e,t)}),n}function Rs(e,t){const n=$0(e,t);return(a,r,l)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?a:Reflect.get(pt(n,r)&&r in a?n:a,r,l)}const C0={get:Rs(!1,!1)},S0={get:Rs(!1,!0)},E0={get:Rs(!0,!1)},A0={get:Rs(!0,!0)},_h=new WeakMap,xh=new WeakMap,kh=new WeakMap,wh=new WeakMap;function T0(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function On(e){return wa(e)?e:Is(e,!1,b0,C0,_h)}function $h(e){return Is(e,!1,x0,S0,xh)}function Mt(e){return Is(e,!0,_0,E0,kh)}function al(e){return Is(e,!0,k0,A0,wh)}function Is(e,t,n,a,r){if(!dt(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const l=r.get(e);if(l)return l;const o=T0(t0(e));if(o===0)return e;const i=new Proxy(e,o===2?a:n);return r.set(e,i),i}function Pr(e){return wa(e)?Pr(e.__v_raw):!!(e&&e.__v_isReactive)}function wa(e){return!!(e&&e.__v_isReadonly)}function mn(e){return!!(e&&e.__v_isShallow)}function qs(e){return e?!!e.__v_raw:!1}function ut(e){const t=e&&e.__v_raw;return t?ut(t):e}function Xi(e){return!pt(e,"__v_skip")&&Object.isExtensible(e)&&th(e,"__v_skip",!0),e}const Mn=e=>dt(e)?On(e):e,Rl=e=>dt(e)?Mt(e):e;function _t(e){return e?e.__v_isRef===!0:!1}function P(e){return Ch(e,!1)}function ni(e){return Ch(e,!0)}function Ch(e,t){return _t(e)?e:new D0(e,t)}class D0{constructor(t,n){this.dep=new Ms,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ut(t),this._value=n?t:Mn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,a=this.__v_isShallow||mn(t)||wa(t);t=a?t:ut(t),Kn(t,n)&&(this._rawValue=t,this._value=a?t:Mn(t),this.dep.trigger())}}function O0(e){e.dep&&e.dep.trigger()}function u(e){return _t(e)?e.value:e}function en(e){return Qe(e)?e():u(e)}const M0={get:(e,t,n)=>t==="__v_raw"?e:u(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const r=e[t];return _t(r)&&!_t(n)?(r.value=n,!0):Reflect.set(e,t,n,a)}};function Sh(e){return Pr(e)?e:new Proxy(e,M0)}class P0{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Ms,{get:a,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=a,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function R0(e){return new P0(e)}function Gt(e){const t=Ye(e)?new Array(e.length):{};for(const n in e)t[n]=Eh(e,n);return t}class I0{constructor(t,n,a){this._object=t,this._defaultValue=a,this.__v_isRef=!0,this._value=void 0,this._key=yn(n)?n:String(n),this._raw=ut(t);let r=!0,l=t;if(!Ye(t)||yn(this._key)||!As(this._key))do r=!qs(l)||mn(l);while(r&&(l=l.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=u(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&_t(this._raw[this._key])){const n=this._object[this._key];if(_t(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return v0(this._raw,this._key)}}class q0{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function N0(e,t,n){return _t(e)?e:Qe(e)?new q0(e):dt(e)&&arguments.length>1?Eh(e,t,n):P(e)}function Eh(e,t,n){return new I0(e,t,n)}class L0{constructor(t,n,a){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ms(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=No-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=a}notify(){if(this.flags|=16,!(this.flags&8)&&yt!==this)return ch(this,!0),!0}get value(){const t=this.dep.track();return ph(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function B0(e,t,n=!1){let a,r;return Qe(e)?a=e:(a=e.get,r=e.set),new L0(a,r,n)}const $i={},Qi=new WeakMap;let Cr;function F0(e,t=!1,n=Cr){if(n){let a=Qi.get(n);a||Qi.set(n,a=[]),a.push(e)}}function V0(e,t,n=ht){const{immediate:a,deep:r,once:l,scheduler:o,augmentJob:i,call:s}=n,c=D=>r?D:mn(D)||r===!1||r===0?pa(D,1):pa(D);let d,f,m,p,h=!1,x=!1;if(_t(e)?(f=()=>e.value,h=mn(e)):Pr(e)?(f=()=>c(e),h=!0):Ye(e)?(x=!0,h=e.some(D=>Pr(D)||mn(D)),f=()=>e.map(D=>{if(_t(D))return D.value;if(Pr(D))return c(D);if(Qe(D))return s?s(D,2):D()})):Qe(e)?t?f=s?()=>s(e,2):e:f=()=>{if(m){xa();try{m()}finally{ka()}}const D=Cr;Cr=d;try{return s?s(e,3,[p]):e(p)}finally{Cr=D}}:f=Xn,t&&r){const D=f,O=r===!0?1/0:r;f=()=>pa(D(),O)}const k=wd(),g=()=>{d.stop(),k&&k.active&&_d(k.effects,d)};if(l&&t){const D=t;t=(...O)=>{D(...O),g()}}let C=x?new Array(e.length).fill($i):$i;const E=D=>{if(!(!(d.flags&1)||!d.dirty&&!D))if(t){const O=d.run();if(r||h||(x?O.some((L,z)=>Kn(L,C[z])):Kn(O,C))){m&&m();const L=Cr;Cr=d;try{const z=[O,C===$i?void 0:x&&C[0]===$i?[]:C,p];C=O,s?s(t,3,z):t(...z)}finally{Cr=L}}}else d.run()};return i&&i(E),d=new sh(f),d.scheduler=o?()=>o(E,!1):E,p=D=>F0(D,!1,d),m=d.onStop=()=>{const D=Qi.get(d);if(D){if(s)s(D,4);else for(const O of D)O();Qi.delete(d)}},t?a?E(!0):C=d.run():o?o(E.bind(null,!0),!0):d.run(),g.pause=d.pause.bind(d),g.resume=d.resume.bind(d),g.stop=g,g}function pa(e,t=1/0,n){if(t<=0||!dt(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,_t(e))pa(e.value,t,n);else if(Ye(e))for(let a=0;a{pa(a,t,n)});else if(eh(e)){for(const a in e)pa(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&pa(e[a],t,n)}return e}function ai(e,t,n,a){try{return a?e(...a):e()}catch(r){Ns(r,t,n)}}function Sn(e,t,n,a){if(Qe(e)){const r=ai(e,t,n,a);return r&&Xm(r)&&r.catch(l=>{Ns(l,t,n)}),r}if(Ye(e)){const r=[];for(let l=0;l>>1,r=Xt[a],l=Bo(r);l=Bo(n)?Xt.push(e):Xt.splice(j0(t),0,e),e.flags|=1,Th()}}function Th(){es||(es=Ah.then(Oh))}function U0(e){Ye(e)?wl.push(...e):Wa&&e.id===-1?Wa.splice(dl+1,0,e):e.flags&1||(wl.push(e),e.flags|=1),Th()}function lp(e,t,n=jn+1){for(;nBo(n)-Bo(a));if(wl.length=0,Wa){Wa.push(...t);return}for(Wa=t,dl=0;dle.id==null?e.flags&2?-1:1/0:e.id;function Oh(e){try{for(jn=0;jn{a._d&&rs(-1);const l=ts(t);let o;try{o=e(...r)}finally{ts(l),a._d&&rs(1)}return o};return a._n=!0,a._c=!0,a._d=!0,a}function Qn(e,t){if(Ft===null)return e;const n=zs(Ft),a=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&Qe(t)?t.call(a&&a.proxy):t}}const H0=Symbol.for("v-scx"),W0=()=>ct(H0);function gn(e,t){return Ls(e,null,t)}function Ph(e,t){return Ls(e,null,{flush:"post"})}function je(e,t,n){return Ls(e,t,n)}function Ls(e,t,n=ht){const{immediate:a,deep:r,flush:l,once:o}=n,i=Et({},n),s=t&&a||!t&&l!=="post";let c;if(jo){if(l==="sync"){const p=W0();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!s){const p=()=>{};return p.stop=Xn,p.resume=Xn,p.pause=Xn,p}}const d=Kt;i.call=(p,h,x)=>Sn(p,d,h,x);let f=!1;l==="post"?i.scheduler=p=>{Zt(p,d&&d.suspense)}:l!=="sync"&&(f=!0,i.scheduler=(p,h)=>{h?p():Ed(p)}),i.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,d&&(p.id=d.uid,p.i=d))};const m=V0(e,t,i);return jo&&(c?c.push(m):s&&m()),m}function K0(e,t,n){const a=this.proxy,r=bt(e)?e.includes(".")?Rh(a,e):()=>a[e]:e.bind(a,a);let l;Qe(t)?l=t:(l=t.handler,n=t);const o=ri(this),i=Ls(r,l.bind(a),n);return o(),i}function Rh(e,t){const n=t.split(".");return()=>{let a=e;for(let r=0;re.__isTeleport,Ar=e=>e&&(e.disabled||e.disabled===""),Y0=e=>e&&(e.defer||e.defer===""),op=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ip=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Dc=(e,t)=>{const n=e&&e.to;return bt(n)?t?t(n):null:n},J0={name:"Teleport",__isTeleport:!0,process(e,t,n,a,r,l,o,i,s,c){const{mc:d,pc:f,pbc:m,o:{insert:p,querySelector:h,createText:x,createComment:k,parentNode:g}}=c,C=Ar(t.props);let{dynamicChildren:E}=t;const D=(z,W,$)=>{z.shapeFlag&16&&d(z.children,W,$,r,l,o,i,s)},O=(z=t)=>{const W=Ar(z.props),$=z.target=Dc(z.props,h),q=Oc($,z,x,p);$&&(o!=="svg"&&op($)?o="svg":o!=="mathml"&&ip($)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add($),W||(D(z,$,q),go(z,!1)))},L=z=>{const W=()=>{if(ja.get(z)===W){if(ja.delete(z),Ar(z.props)){const $=g(z.el)||n;D(z,$,z.anchor),go(z,!0)}O(z)}};ja.set(z,W),Zt(W,l)};if(e==null){const z=t.el=x(""),W=t.anchor=x("");if(p(z,n,a),p(W,n,a),Y0(t.props)||l&&l.pendingBranch){L(t);return}C&&(D(t,n,W),go(t,!0)),O()}else{t.el=e.el;const z=t.anchor=e.anchor,W=ja.get(e);if(W){W.flags|=8,ja.delete(e),L(t);return}t.targetStart=e.targetStart;const $=t.target=e.target,q=t.targetAnchor=e.targetAnchor,J=Ar(e.props),R=J?n:$,j=J?z:q;if(o==="svg"||op($)?o="svg":(o==="mathml"||ip($))&&(o="mathml"),E?(m(e.dynamicChildren,E,R,r,l,o,i),Od(e,t,!0)):s||f(e,t,R,j,r,l,o,i,!1),C)J?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ci(t,n,z,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Q=t.target=Dc(t.props,h);Q&&Ci(t,Q,null,c,0)}else J&&Ci(t,$,q,c,1);go(t,C)}},remove(e,t,n,{um:a,o:{remove:r}},l){const{shapeFlag:o,children:i,anchor:s,targetStart:c,targetAnchor:d,target:f,props:m}=e,p=l||!Ar(m),h=ja.get(e);if(h&&(h.flags|=8,ja.delete(e)),f&&(r(c),r(d)),l&&r(s),!h&&o&16)for(let x=0;x{e.isMounted=!0}),At(()=>{e.isUnmounting=!0}),e}const _n=[Function,Array],e_={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:_n,onEnter:_n,onAfterEnter:_n,onEnterCancelled:_n,onBeforeLeave:_n,onLeave:_n,onAfterLeave:_n,onLeaveCancelled:_n,onBeforeAppear:_n,onAppear:_n,onAfterAppear:_n,onAppearCancelled:_n};function t_(e,t){const{leavingVNodes:n}=e;let a=n.get(t.type);return a||(a=Object.create(null),n.set(t.type,a)),a}function Mc(e,t,n,a,r){const{appear:l,mode:o,persisted:i=!1,onBeforeEnter:s,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:m,onLeave:p,onAfterLeave:h,onLeaveCancelled:x,onBeforeAppear:k,onAppear:g,onAfterAppear:C,onAppearCancelled:E}=t,D=String(e.key),O=t_(n,e),L=($,q)=>{$&&Sn($,a,9,q)},z=($,q)=>{const J=q[1];L($,q),Ye($)?$.every(R=>R.length<=1)&&J():$.length<=1&&J()},W={mode:o,persisted:i,beforeEnter($){let q=s;if(!n.isMounted)if(l)q=k||s;else return;$[Un]&&$[Un](!0);const J=O[D];J&&fl(e,J)&&J.el[Un]&&J.el[Un](),L(q,[$])},enter($){if(O[D]===e)return;let q=c,J=d,R=f;if(!n.isMounted)if(l)q=g||c,J=C||d,R=E||f;else return;let j=!1;$[ro]=N=>{j||(j=!0,N?L(R,[$]):L(J,[$]),W.delayedLeave&&W.delayedLeave(),$[ro]=void 0)};const Q=$[ro].bind(null,!1);q?z(q,[$,Q]):Q()},leave($,q){const J=String(e.key);if($[ro]&&$[ro](!0),n.isUnmounting)return q();L(m,[$]);let R=!1;$[Un]=Q=>{R||(R=!0,q(),Q?L(x,[$]):L(h,[$]),$[Un]=void 0,O[J]===e&&delete O[J])};const j=$[Un].bind(null,!1);O[J]=e,p?z(p,[$,j]):j()},clone($){return Mc($,t,n,a)}};return W}function Fo(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fo(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function qh(e,t=!1,n){let a=[],r=0;for(let l=0;l1)for(let l=0;lAo(x,t&&(Ye(t)?t[k]:t),n,a,r));return}if($l(a)&&!r){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Ao(e,t,n,a.component.subTree);return}const l=a.shapeFlag&4?zs(a.component):a.el,o=r?null:l,{i,r:s}=e,c=t&&t.r,d=i.refs===ht?i.refs={}:i.refs,f=i.setupState,m=ut(f),p=f===ht?Jm:x=>sp(d,x)?!1:pt(m,x),h=(x,k)=>!(k&&sp(d,k));if(c!=null&&c!==s){if(up(t),bt(c))d[c]=null,p(c)&&(f[c]=null);else if(_t(c)){const x=t;h(c,x.k)&&(c.value=null),x.k&&(d[x.k]=null)}}if(Qe(s))ai(s,i,12,[o,d]);else{const x=bt(s),k=_t(s);if(x||k){const g=()=>{if(e.f){const C=x?p(s)?f[s]:d[s]:h()||!e.k?s.value:d[e.k];if(r)Ye(C)&&_d(C,l);else if(Ye(C))C.includes(l)||C.push(l);else if(x)d[s]=[l],p(s)&&(f[s]=d[s]);else{const E=[l];h(s,e.k)&&(s.value=E),e.k&&(d[e.k]=E)}}else x?(d[s]=o,p(s)&&(f[s]=o)):k&&(h(s,e.k)&&(s.value=o),e.k&&(d[e.k]=o))};if(o){const C=()=>{g(),ns.delete(e)};C.id=-1,ns.set(e,C),Zt(C,n)}else up(e),g()}}}function up(e){const t=ns.get(e);t&&(t.flags|=8,ns.delete(e))}Os().requestIdleCallback;Os().cancelIdleCallback;const $l=e=>!!e.type.__asyncLoader,Lh=e=>e.type.__isKeepAlive;function Bh(e,t){Vh(e,"a",t)}function Fh(e,t){Vh(e,"da",t)}function Vh(e,t,n=Kt){const a=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Bs(t,a,n),n){let r=n.parent;for(;r&&r.parent;)Lh(r.parent.vnode)&&a_(a,t,n,r),r=r.parent}}function a_(e,t,n,a){const r=Bs(t,e,a,!0);Ea(()=>{_d(a[t],r)},n)}function Bs(e,t,n=Kt,a=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...o)=>{xa();const i=ri(n),s=Sn(t,n,e,o);return i(),ka(),s});return a?r.unshift(l):r.push(l),l}}const Sa=e=>(t,n=Kt)=>{(!jo||e==="sp")&&Bs(e,(...a)=>t(...a),n)},zh=Sa("bm"),wt=Sa("m"),r_=Sa("bu"),Ad=Sa("u"),At=Sa("bum"),Ea=Sa("um"),l_=Sa("sp"),o_=Sa("rtg"),i_=Sa("rtc");function s_(e,t=Kt){Bs("ec",e,t)}const jh="components";function u_(e,t){return Hh(jh,e,!0,t)||e}const Uh=Symbol.for("v-ndc");function zt(e){return bt(e)?Hh(jh,e,!1)||e:e||Uh}function Hh(e,t,n=!0,a=!1){const r=Ft||Kt;if(r){const l=r.type;{const i=H_(l,!1);if(i&&(i===t||i===Vt(t)||i===Ds(Vt(t))))return l}const o=cp(r[e]||l[e],t)||cp(r.appContext[e],t);return!o&&a?l:o}}function cp(e,t){return e&&(e[t]||e[Vt(t)]||e[Ds(Vt(t))])}function qe(e,t,n,a){let r;const l=n,o=Ye(e);if(o||bt(e)){const i=o&&Pr(e);let s=!1,c=!1;i&&(s=!mn(e),c=wa(e),e=Ps(e)),r=new Array(e.length);for(let d=0,f=e.length;dt(i,s,void 0,l));else{const i=Object.keys(e);r=new Array(i.length);for(let s=0,c=i.length;s0;return t!=="default"&&(n.name=t),v(),U(ye,null,[F("slot",n,a&&a())],c?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),v();const o=l&&Wh(l(n)),i=n.key||o&&o.key,s=U(ye,{key:(i&&!yn(i)?i:`_${t}`)+(!o&&a?"_fb":"")},o||(a?a():[]),o&&e._===1?64:-2);return s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),l&&l._c&&(l._d=!0),s}function Wh(e){return e.some(t=>zo(t)?!(t.type===Pn||t.type===ye&&!Wh(t.children)):!0)?e:null}function Kh(e,t){const n={};for(const a in e)n[Co(a)]=e[a];return n}const Pc=e=>e?py(e)?zs(e):Pc(e.parent):null,To=Et(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Pc(e.parent),$root:e=>Pc(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Jh(e),$forceUpdate:e=>e.f||(e.f=()=>{Ed(e.update)}),$nextTick:e=>e.n||(e.n=Ze.bind(e.proxy)),$watch:e=>K0.bind(e)}),Au=(e,t)=>e!==ht&&!e.__isScriptSetup&&pt(e,t),c_={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:r,props:l,accessCache:o,type:i,appContext:s}=e;if(t[0]!=="$"){const m=o[t];if(m!==void 0)switch(m){case 1:return a[t];case 2:return r[t];case 4:return n[t];case 3:return l[t]}else{if(Au(a,t))return o[t]=1,a[t];if(r!==ht&&pt(r,t))return o[t]=2,r[t];if(pt(l,t))return o[t]=3,l[t];if(n!==ht&&pt(n,t))return o[t]=4,n[t];Ic&&(o[t]=0)}}const c=To[t];let d,f;if(c)return t==="$attrs"&&Wt(e.attrs,"get",""),c(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(n!==ht&&pt(n,t))return o[t]=4,n[t];if(f=s.config.globalProperties,pt(f,t))return f[t]},set({_:e},t,n){const{data:a,setupState:r,ctx:l}=e;return Au(r,t)?(r[t]=n,!0):a!==ht&&pt(a,t)?(a[t]=n,!0):pt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:r,props:l,type:o}},i){let s;return!!(n[i]||e!==ht&&i[0]!=="$"&&pt(e,i)||Au(t,i)||pt(l,i)||pt(a,i)||pt(To,i)||pt(r.config.globalProperties,i)||(s=o.__cssModules)&&s[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:pt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Rc(e){return Ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function Gh(e,t){const n=Rc(e);for(const a in t){if(a.startsWith("__skip"))continue;let r=n[a];r?Ye(r)||Qe(r)?r=n[a]={type:r,default:t[a]}:r.default=t[a]:r===null&&(r=n[a]={default:t[a]}),r&&t[`__skip_${a}`]&&(r.skipFactory=!0)}return n}let Ic=!0;function d_(e){const t=Jh(e),n=e.proxy,a=e.ctx;Ic=!1,t.beforeCreate&&dp(t.beforeCreate,e,"bc");const{data:r,computed:l,methods:o,watch:i,provide:s,inject:c,created:d,beforeMount:f,mounted:m,beforeUpdate:p,updated:h,activated:x,deactivated:k,beforeDestroy:g,beforeUnmount:C,destroyed:E,unmounted:D,render:O,renderTracked:L,renderTriggered:z,errorCaptured:W,serverPrefetch:$,expose:q,inheritAttrs:J,components:R,directives:j,filters:Q}=t;if(c&&f_(c,a,null),o)for(const te in o){const de=o[te];Qe(de)&&(a[te]=de.bind(n))}if(r){const te=r.call(n,n);dt(te)&&(e.data=On(te))}if(Ic=!0,l)for(const te in l){const de=l[te],pe=Qe(de)?de.bind(n,n):Qe(de.get)?de.get.bind(n,n):Xn,xe=!Qe(de)&&Qe(de.set)?de.set.bind(n):Xn,me=_({get:pe,set:xe});Object.defineProperty(a,te,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(i)for(const te in i)Yh(i[te],a,n,te);if(s){const te=Qe(s)?s.call(n):s;Reflect.ownKeys(te).forEach(de=>{kt(de,te[de])})}d&&dp(d,e,"c");function ne(te,de){Ye(de)?de.forEach(pe=>te(pe.bind(n))):de&&te(de.bind(n))}if(ne(zh,f),ne(wt,m),ne(r_,p),ne(Ad,h),ne(Bh,x),ne(Fh,k),ne(s_,W),ne(i_,L),ne(o_,z),ne(At,C),ne(Ea,D),ne(l_,$),Ye(q))if(q.length){const te=e.exposed||(e.exposed={});q.forEach(de=>{Object.defineProperty(te,de,{get:()=>n[de],set:pe=>n[de]=pe,enumerable:!0})})}else e.exposed||(e.exposed={});O&&e.render===Xn&&(e.render=O),J!=null&&(e.inheritAttrs=J),R&&(e.components=R),j&&(e.directives=j),$&&Nh(e)}function f_(e,t,n=Xn){Ye(e)&&(e=qc(e));for(const a in e){const r=e[a];let l;dt(r)?"default"in r?l=ct(r.from||a,r.default,!0):l=ct(r.from||a):l=ct(r),_t(l)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>l.value,set:o=>l.value=o}):t[a]=l}}function dp(e,t,n){Sn(Ye(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yh(e,t,n,a){let r=a.includes(".")?Rh(n,a):()=>n[a];if(bt(e)){const l=t[e];Qe(l)&&je(r,l)}else if(Qe(e))je(r,e.bind(n));else if(dt(e))if(Ye(e))e.forEach(l=>Yh(l,t,n,a));else{const l=Qe(e.handler)?e.handler.bind(n):t[e.handler];Qe(l)&&je(r,l,e)}}function Jh(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:o}}=e.appContext,i=l.get(t);let s;return i?s=i:!r.length&&!n&&!a?s=t:(s={},r.length&&r.forEach(c=>as(s,c,o,!0)),as(s,t,o)),dt(t)&&l.set(t,s),s}function as(e,t,n,a=!1){const{mixins:r,extends:l}=t;l&&as(e,l,n,!0),r&&r.forEach(o=>as(e,o,n,!0));for(const o in t)if(!(a&&o==="expose")){const i=p_[o]||n&&n[o];e[o]=i?i(e[o],t[o]):t[o]}return e}const p_={data:fp,props:pp,emits:pp,methods:bo,computed:bo,beforeCreate:Jt,created:Jt,beforeMount:Jt,mounted:Jt,beforeUpdate:Jt,updated:Jt,beforeDestroy:Jt,beforeUnmount:Jt,destroyed:Jt,unmounted:Jt,activated:Jt,deactivated:Jt,errorCaptured:Jt,serverPrefetch:Jt,components:bo,directives:bo,watch:m_,provide:fp,inject:v_};function fp(e,t){return t?e?function(){return Et(Qe(e)?e.call(this,this):e,Qe(t)?t.call(this,this):t)}:t:e}function v_(e,t){return bo(qc(e),qc(t))}function qc(e){if(Ye(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Vt(t)}Modifiers`]||e[`${fr(t)}Modifiers`];function b_(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||ht;let r=n;const l=t.startsWith("update:"),o=l&&g_(a,t.slice(7));o&&(o.trim&&(r=n.map(d=>bt(d)?d.trim():d)),o.number&&(r=n.map(xd)));let i,s=a[i=Co(t)]||a[i=Co(Vt(t))];!s&&l&&(s=a[i=Co(fr(t))]),s&&Sn(s,e,6,r);const c=a[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Sn(c,e,6,r)}}const __=new WeakMap;function Xh(e,t,n=!1){const a=n?__:t.emitsCache,r=a.get(e);if(r!==void 0)return r;const l=e.emits;let o={},i=!1;if(!Qe(e)){const s=c=>{const d=Xh(c,t,!0);d&&(i=!0,Et(o,d))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!l&&!i?(dt(e)&&a.set(e,null),null):(Ye(l)?l.forEach(s=>o[s]=null):Et(o,l),dt(e)&&a.set(e,o),o)}function Fs(e,t){return!e||!Ss(t)?!1:(t=t.slice(2).replace(/Once$/,""),pt(e,t[0].toLowerCase()+t.slice(1))||pt(e,fr(t))||pt(e,t))}function vp(e){const{type:t,vnode:n,proxy:a,withProxy:r,propsOptions:[l],slots:o,attrs:i,emit:s,render:c,renderCache:d,props:f,data:m,setupState:p,ctx:h,inheritAttrs:x}=e,k=ts(e);let g,C;try{if(n.shapeFlag&4){const D=r||a,O=D;g=Wn(c.call(O,D,d,f,p,m,h)),C=i}else{const D=t;g=Wn(D.length>1?D(f,{attrs:i,slots:o,emit:s}):D(f,null)),C=t.props?i:x_(i)}}catch(D){Do.length=0,Ns(D,e,1),g=F(Pn)}let E=g;if(C&&x!==!1){const D=Object.keys(C),{shapeFlag:O}=E;D.length&&O&7&&(l&&D.some(Es)&&(C=k_(C,l)),E=er(E,C,!1,!0))}return n.dirs&&(E=er(E,null,!1,!0),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&Fo(E,n.transition),g=E,ts(k),g}const x_=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ss(n))&&((t||(t={}))[n]=e[n]);return t},k_=(e,t)=>{const n={};for(const a in e)(!Es(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function w_(e,t,n){const{props:a,children:r,component:l}=e,{props:o,children:i,patchFlag:s}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return a?mp(a,o,c):!!o;if(s&8){const d=t.dynamicProps;for(let f=0;fObject.create(ey),ny=e=>Object.getPrototypeOf(e)===ey;function C_(e,t,n,a=!1){const r={},l=ty();e.propsDefaults=Object.create(null),ay(e,t,r,l);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=a?r:$h(r):e.type.props?e.props=r:e.props=l,e.attrs=l}function S_(e,t,n,a){const{props:r,attrs:l,vnode:{patchFlag:o}}=e,i=ut(r),[s]=e.propsOptions;let c=!1;if((a||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let f=0;f{s=!0;const[m,p]=ry(f,t,!0);Et(o,m),p&&i.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!s)return dt(e)&&a.set(e,xl),xl;if(Ye(l))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",Dd=e=>Ye(e)?e.map(Wn):[Wn(e)],A_=(e,t,n)=>{if(t._n)return t;const a=B((...r)=>Dd(t(...r)),n);return a._c=!1,a},ly=(e,t,n)=>{const a=e._ctx;for(const r in e){if(Td(r))continue;const l=e[r];if(Qe(l))t[r]=A_(r,l,a);else if(l!=null){const o=Dd(l);t[r]=()=>o}}},oy=(e,t)=>{const n=Dd(t);e.slots.default=()=>n},iy=(e,t,n)=>{for(const a in t)(n||!Td(a))&&(e[a]=t[a])},T_=(e,t,n)=>{const a=e.slots=ty();if(e.vnode.shapeFlag&32){const r=t._;r?(iy(a,t,n),n&&th(a,"_",r,!0)):ly(t,a)}else t&&oy(e,t)},D_=(e,t,n)=>{const{vnode:a,slots:r}=e;let l=!0,o=ht;if(a.shapeFlag&32){const i=t._;i?n&&i===1?l=!1:iy(r,t,n):(l=!t.$stable,ly(t,r)),o=t}else t&&(oy(e,t),o={default:1});if(l)for(const i in r)!Td(i)&&o[i]==null&&delete r[i]},Zt=I_;function O_(e){return M_(e)}function M_(e,t){const n=Os();n.__VUE__=!0;const{insert:a,remove:r,patchProp:l,createElement:o,createText:i,createComment:s,setText:c,setElementText:d,parentNode:f,nextSibling:m,setScopeId:p=Xn,insertStaticContent:h}=e,x=(y,A,M,oe=null,Y=null,ce=null,$e=void 0,Ae=null,De=!!A.dynamicChildren)=>{if(y===A)return;y&&!fl(y,A)&&(oe=Z(y),fe(y,Y,ce,!0),y=null),A.patchFlag===-2&&(De=!1,A.dynamicChildren=null);const{type:se,ref:Ce,shapeFlag:he}=A;switch(se){case Vs:k(y,A,M,oe);break;case Pn:g(y,A,M,oe);break;case Du:y==null&&C(A,M,oe,$e);break;case ye:R(y,A,M,oe,Y,ce,$e,Ae,De);break;default:he&1?O(y,A,M,oe,Y,ce,$e,Ae,De):he&6?j(y,A,M,oe,Y,ce,$e,Ae,De):(he&64||he&128)&&se.process(y,A,M,oe,Y,ce,$e,Ae,De,K)}Ce!=null&&Y?Ao(Ce,y&&y.ref,ce,A||y,!A):Ce==null&&y&&y.ref!=null&&Ao(y.ref,null,ce,y,!0)},k=(y,A,M,oe)=>{if(y==null)a(A.el=i(A.children),M,oe);else{const Y=A.el=y.el;A.children!==y.children&&c(Y,A.children)}},g=(y,A,M,oe)=>{y==null?a(A.el=s(A.children||""),M,oe):A.el=y.el},C=(y,A,M,oe)=>{[y.el,y.anchor]=h(y.children,A,M,oe,y.el,y.anchor)},E=({el:y,anchor:A},M,oe)=>{let Y;for(;y&&y!==A;)Y=m(y),a(y,M,oe),y=Y;a(A,M,oe)},D=({el:y,anchor:A})=>{let M;for(;y&&y!==A;)M=m(y),r(y),y=M;r(A)},O=(y,A,M,oe,Y,ce,$e,Ae,De)=>{if(A.type==="svg"?$e="svg":A.type==="math"&&($e="mathml"),y==null)L(A,M,oe,Y,ce,$e,Ae,De);else{const se=y.el&&y.el._isVueCE?y.el:null;try{se&&se._beginPatch(),$(y,A,Y,ce,$e,Ae,De)}finally{se&&se._endPatch()}}},L=(y,A,M,oe,Y,ce,$e,Ae)=>{let De,se;const{props:Ce,shapeFlag:he,transition:Re,dirs:Fe}=y;if(De=y.el=o(y.type,ce,Ce&&Ce.is,Ce),he&8?d(De,y.children):he&16&&W(y.children,De,null,oe,Y,Tu(y,ce),$e,Ae),Fe&&_r(y,null,oe,"created"),z(De,y,y.scopeId,$e,oe),Ce){for(const be in Ce)be!=="value"&&!$o(be)&&l(De,be,null,Ce[be],ce,oe);"value"in Ce&&l(De,"value",null,Ce.value,ce),(se=Ce.onVnodeBeforeMount)&&Fn(se,oe,y)}Fe&&_r(y,null,oe,"beforeMount");const Ge=P_(Y,Re);Ge&&Re.beforeEnter(De),a(De,A,M),((se=Ce&&Ce.onVnodeMounted)||Ge||Fe)&&Zt(()=>{se&&Fn(se,oe,y),Ge&&Re.enter(De),Fe&&_r(y,null,oe,"mounted")},Y)},z=(y,A,M,oe,Y)=>{if(M&&p(y,M),oe)for(let ce=0;ce{for(let se=De;se{const Ae=A.el=y.el;let{patchFlag:De,dynamicChildren:se,dirs:Ce}=A;De|=y.patchFlag&16;const he=y.props||ht,Re=A.props||ht;let Fe;if(M&&xr(M,!1),(Fe=Re.onVnodeBeforeUpdate)&&Fn(Fe,M,A,y),Ce&&_r(A,y,M,"beforeUpdate"),M&&xr(M,!0),(he.innerHTML&&Re.innerHTML==null||he.textContent&&Re.textContent==null)&&d(Ae,""),se?q(y.dynamicChildren,se,Ae,M,oe,Tu(A,Y),ce):$e||de(y,A,Ae,null,M,oe,Tu(A,Y),ce,!1),De>0){if(De&16)J(Ae,he,Re,M,Y);else if(De&2&&he.class!==Re.class&&l(Ae,"class",null,Re.class,Y),De&4&&l(Ae,"style",he.style,Re.style,Y),De&8){const Ge=A.dynamicProps;for(let be=0;be{Fe&&Fn(Fe,M,A,y),Ce&&_r(A,y,M,"updated")},oe)},q=(y,A,M,oe,Y,ce,$e)=>{for(let Ae=0;Ae{if(A!==M){if(A!==ht)for(const ce in A)!$o(ce)&&!(ce in M)&&l(y,ce,A[ce],null,Y,oe);for(const ce in M){if($o(ce))continue;const $e=M[ce],Ae=A[ce];$e!==Ae&&ce!=="value"&&l(y,ce,Ae,$e,Y,oe)}"value"in M&&l(y,"value",A.value,M.value,Y)}},R=(y,A,M,oe,Y,ce,$e,Ae,De)=>{const se=A.el=y?y.el:i(""),Ce=A.anchor=y?y.anchor:i("");let{patchFlag:he,dynamicChildren:Re,slotScopeIds:Fe}=A;Fe&&(Ae=Ae?Ae.concat(Fe):Fe),y==null?(a(se,M,oe),a(Ce,M,oe),W(A.children||[],M,Ce,Y,ce,$e,Ae,De)):he>0&&he&64&&Re&&y.dynamicChildren&&y.dynamicChildren.length===Re.length?(q(y.dynamicChildren,Re,M,Y,ce,$e,Ae),(A.key!=null||Y&&A===Y.subTree)&&Od(y,A,!0)):de(y,A,M,Ce,Y,ce,$e,Ae,De)},j=(y,A,M,oe,Y,ce,$e,Ae,De)=>{A.slotScopeIds=Ae,y==null?A.shapeFlag&512?Y.ctx.activate(A,M,oe,$e,De):Q(A,M,oe,Y,ce,$e,De):N(y,A,De)},Q=(y,A,M,oe,Y,ce,$e)=>{const Ae=y.component=F_(y,oe,Y);if(Lh(y)&&(Ae.ctx.renderer=K),V_(Ae,!1,$e),Ae.asyncDep){if(Y&&Y.registerDep(Ae,ne,$e),!y.el){const De=Ae.subTree=F(Pn);g(null,De,A,M),y.placeholder=De.el}}else ne(Ae,y,A,M,Y,ce,$e)},N=(y,A,M)=>{const oe=A.component=y.component;if(w_(y,A,M))if(oe.asyncDep&&!oe.asyncResolved){te(oe,A,M);return}else oe.next=A,oe.update();else A.el=y.el,oe.vnode=A},ne=(y,A,M,oe,Y,ce,$e)=>{const Ae=()=>{if(y.isMounted){let{next:he,bu:Re,u:Fe,parent:Ge,vnode:be}=y;{const St=sy(y);if(St){he&&(he.el=be.el,te(y,he,$e)),St.asyncDep.then(()=>{Zt(()=>{y.isUnmounted||se()},Y)});return}}let Se=he,Be;xr(y,!1),he?(he.el=be.el,te(y,he,$e)):he=be,Re&&Ui(Re),(Be=he.props&&he.props.onVnodeBeforeUpdate)&&Fn(Be,Ge,he,be),xr(y,!0);const Ue=vp(y),rt=y.subTree;y.subTree=Ue,x(rt,Ue,f(rt.el),Z(rt),y,Y,ce),he.el=Ue.el,Se===null&&$_(y,Ue.el),Fe&&Zt(Fe,Y),(Be=he.props&&he.props.onVnodeUpdated)&&Zt(()=>Fn(Be,Ge,he,be),Y)}else{let he;const{el:Re,props:Fe}=A,{bm:Ge,m:be,parent:Se,root:Be,type:Ue}=y,rt=$l(A);xr(y,!1),Ge&&Ui(Ge),!rt&&(he=Fe&&Fe.onVnodeBeforeMount)&&Fn(he,Se,A),xr(y,!0);{Be.ce&&Be.ce._hasShadowRoot()&&Be.ce._injectChildStyle(Ue,y.parent?y.parent.type:void 0);const St=y.subTree=vp(y);x(null,St,M,oe,y,Y,ce),A.el=St.el}if(be&&Zt(be,Y),!rt&&(he=Fe&&Fe.onVnodeMounted)){const St=A;Zt(()=>Fn(he,Se,St),Y)}(A.shapeFlag&256||Se&&$l(Se.vnode)&&Se.vnode.shapeFlag&256)&&y.a&&Zt(y.a,Y),y.isMounted=!0,A=M=oe=null}};y.scope.on();const De=y.effect=new sh(Ae);y.scope.off();const se=y.update=De.run.bind(De),Ce=y.job=De.runIfDirty.bind(De);Ce.i=y,Ce.id=y.uid,De.scheduler=()=>Ed(Ce),xr(y,!0),se()},te=(y,A,M)=>{A.component=y;const oe=y.vnode.props;y.vnode=A,y.next=null,S_(y,A.props,oe,M),D_(y,A.children,M),xa(),lp(y),ka()},de=(y,A,M,oe,Y,ce,$e,Ae,De=!1)=>{const se=y&&y.children,Ce=y?y.shapeFlag:0,he=A.children,{patchFlag:Re,shapeFlag:Fe}=A;if(Re>0){if(Re&128){xe(se,he,M,oe,Y,ce,$e,Ae,De);return}else if(Re&256){pe(se,he,M,oe,Y,ce,$e,Ae,De);return}}Fe&8?(Ce&16&&ae(se,Y,ce),he!==se&&d(M,he)):Ce&16?Fe&16?xe(se,he,M,oe,Y,ce,$e,Ae,De):ae(se,Y,ce,!0):(Ce&8&&d(M,""),Fe&16&&W(he,M,oe,Y,ce,$e,Ae,De))},pe=(y,A,M,oe,Y,ce,$e,Ae,De)=>{y=y||xl,A=A||xl;const se=y.length,Ce=A.length,he=Math.min(se,Ce);let Re;for(Re=0;ReCe?ae(y,Y,ce,!0,!1,he):W(A,M,oe,Y,ce,$e,Ae,De,he)},xe=(y,A,M,oe,Y,ce,$e,Ae,De)=>{let se=0;const Ce=A.length;let he=y.length-1,Re=Ce-1;for(;se<=he&&se<=Re;){const Fe=y[se],Ge=A[se]=De?da(A[se]):Wn(A[se]);if(fl(Fe,Ge))x(Fe,Ge,M,null,Y,ce,$e,Ae,De);else break;se++}for(;se<=he&&se<=Re;){const Fe=y[he],Ge=A[Re]=De?da(A[Re]):Wn(A[Re]);if(fl(Fe,Ge))x(Fe,Ge,M,null,Y,ce,$e,Ae,De);else break;he--,Re--}if(se>he){if(se<=Re){const Fe=Re+1,Ge=FeRe)for(;se<=he;)fe(y[se],Y,ce,!0),se++;else{const Fe=se,Ge=se,be=new Map;for(se=Ge;se<=Re;se++){const Ve=A[se]=De?da(A[se]):Wn(A[se]);Ve.key!=null&&be.set(Ve.key,se)}let Se,Be=0;const Ue=Re-Ge+1;let rt=!1,St=0;const Lt=new Array(Ue);for(se=0;se=Ue){fe(Ve,Y,ce,!0);continue}let Ke;if(Ve.key!=null)Ke=be.get(Ve.key);else for(Se=Ge;Se<=Re;Se++)if(Lt[Se-Ge]===0&&fl(Ve,A[Se])){Ke=Se;break}Ke===void 0?fe(Ve,Y,ce,!0):(Lt[Ke-Ge]=se+1,Ke>=St?St=Ke:rt=!0,x(Ve,A[Ke],M,null,Y,ce,$e,Ae,De),Be++)}const ze=rt?R_(Lt):xl;for(Se=ze.length-1,se=Ue-1;se>=0;se--){const Ve=Ge+se,Ke=A[Ve],Rt=A[Ve+1],Pa=Ve+1{const{el:ce,type:$e,transition:Ae,children:De,shapeFlag:se}=y;if(se&6){me(y.component.subTree,A,M,oe);return}if(se&128){y.suspense.move(A,M,oe);return}if(se&64){$e.move(y,A,M,K);return}if($e===ye){a(ce,A,M);for(let he=0;heAe.enter(ce),Y));else{const{leave:he,delayLeave:Re,afterLeave:Fe}=Ae,Ge=()=>{y.ctx.isUnmounted?r(ce):a(ce,A,M)},be=()=>{const Se=ce._isLeaving||!!ce[Un];ce._isLeaving&&ce[Un](!0),Ae.persisted&&!Se?Ge():he(ce,()=>{Ge(),Fe&&Fe()})};Re?Re(ce,Ge,be):be()}else a(ce,A,M)},fe=(y,A,M,oe=!1,Y=!1)=>{const{type:ce,props:$e,ref:Ae,children:De,dynamicChildren:se,shapeFlag:Ce,patchFlag:he,dirs:Re,cacheIndex:Fe,memo:Ge}=y;if(he===-2&&(Y=!1),Ae!=null&&(xa(),Ao(Ae,null,M,y,!0),ka()),Fe!=null&&(A.renderCache[Fe]=void 0),Ce&256){A.ctx.deactivate(y);return}const be=Ce&1&&Re,Se=!$l(y);let Be;if(Se&&(Be=$e&&$e.onVnodeBeforeUnmount)&&Fn(Be,A,y),Ce&6)ke(y.component,M,oe);else{if(Ce&128){y.suspense.unmount(M,oe);return}be&&_r(y,null,A,"beforeUnmount"),Ce&64?y.type.remove(y,A,M,K,oe):se&&!se.hasOnce&&(ce!==ye||he>0&&he&64)?ae(se,A,M,!1,!0):(ce===ye&&he&384||!Y&&Ce&16)&&ae(De,A,M),oe&&Te(y)}const Ue=Ge!=null&&Fe==null;(Se&&(Be=$e&&$e.onVnodeUnmounted)||be||Ue)&&Zt(()=>{Be&&Fn(Be,A,y),be&&_r(y,null,A,"unmounted"),Ue&&(y.el=null)},M)},Te=y=>{const{type:A,el:M,anchor:oe,transition:Y}=y;if(A===ye){H(M,oe);return}if(A===Du){D(y);return}const ce=()=>{r(M),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if(y.shapeFlag&1&&Y&&!Y.persisted){const{leave:$e,delayLeave:Ae}=Y,De=()=>$e(M,ce);Ae?Ae(y.el,ce,De):De()}else ce()},H=(y,A)=>{let M;for(;y!==A;)M=m(y),r(y),y=M;r(A)},ke=(y,A,M)=>{const{bum:oe,scope:Y,job:ce,subTree:$e,um:Ae,m:De,a:se}=y;yp(De),yp(se),oe&&Ui(oe),Y.stop(),ce&&(ce.flags|=8,fe($e,y,A,M)),Ae&&Zt(Ae,A),Zt(()=>{y.isUnmounted=!0},A)},ae=(y,A,M,oe=!1,Y=!1,ce=0)=>{for(let $e=ce;$e{if(y.shapeFlag&6)return Z(y.component.subTree);if(y.shapeFlag&128)return y.suspense.next();const A=m(y.anchor||y.el),M=A&&A[Ih];return M?m(M):A};let ue=!1;const V=(y,A,M)=>{let oe;y==null?A._vnode&&(fe(A._vnode,null,null,!0),oe=A._vnode.component):x(A._vnode||null,y,A,null,null,null,M),A._vnode=y,ue||(ue=!0,lp(oe),Dh(),ue=!1)},K={p:x,um:fe,m:me,r:Te,mt:Q,mc:W,pc:de,pbc:q,n:Z,o:e};return{render:V,hydrate:void 0,createApp:y_(V)}}function Tu({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function xr({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function P_(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Od(e,t,n=!1){const a=e.children,r=t.children;if(Ye(a)&&Ye(r))for(let l=0;l>1,e[n[i]]0&&(t[a]=n[l-1]),n[l]=a)}}for(l=n.length,o=n[l-1];l-- >0;)n[l]=o,o=t[o];return n}function sy(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:sy(t)}function yp(e){if(e)for(let t=0;te.__isSuspense;function I_(e,t){t&&t.pendingBranch?Ye(e)?t.effects.push(...e):t.effects.push(e):U0(e)}const ye=Symbol.for("v-fgt"),Vs=Symbol.for("v-txt"),Pn=Symbol.for("v-cmt"),Du=Symbol.for("v-stc"),Do=[];let pn=null;function v(e=!1){Do.push(pn=e?null:[])}function q_(){Do.pop(),pn=Do[Do.length-1]||null}let Vo=1;function rs(e,t=!1){Vo+=e,e<0&&pn&&t&&(pn.hasOnce=!0)}function dy(e){return e.dynamicChildren=Vo>0?pn||xl:null,q_(),Vo>0&&pn&&pn.push(e),e}function b(e,t,n,a,r,l){return dy(S(e,t,n,a,r,l,!0))}function U(e,t,n,a,r){return dy(F(e,t,n,a,r,!0))}function zo(e){return e?e.__v_isVNode===!0:!1}function fl(e,t){return e.type===t.type&&e.key===t.key}const fy=({key:e})=>e??null,Hi=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?bt(e)||_t(e)||Qe(e)?{i:Ft,r:e,k:t,f:!!n}:e:null);function S(e,t=null,n=null,a=0,r=null,l=e===ye?0:1,o=!1,i=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&fy(t),ref:t&&Hi(t),scopeId:Mh,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:a,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ft};return i?(Md(s,n),l&128&&e.normalize(s)):n&&(s.shapeFlag|=bt(n)?8:16),Vo>0&&!o&&pn&&(s.patchFlag>0||l&6)&&s.patchFlag!==32&&pn.push(s),s}const F=N_;function N_(e,t=null,n=null,a=0,r=null,l=!1){if((!e||e===Uh)&&(e=Pn),zo(e)){const i=er(e,t,!0);return n&&Md(i,n),Vo>0&&!l&&pn&&(i.shapeFlag&6?pn[pn.indexOf(e)]=i:pn.push(i)),i.patchFlag=-2,i}if(W_(e)&&(e=e.__vccOpts),t){t=it(t);let{class:i,style:s}=t;i&&!bt(i)&&(t.class=ge(i)),dt(s)&&(qs(s)&&!Ye(s)&&(s=Et({},s)),t.style=Tn(s))}const o=bt(e)?1:cy(e)?128:G0(e)?64:dt(e)?4:Qe(e)?2:0;return S(e,t,n,a,r,o,l,!0)}function it(e){return e?qs(e)||ny(e)?Et({},e):e:null}function er(e,t,n=!1,a=!1){const{props:r,ref:l,patchFlag:o,children:i,transition:s}=e,c=t?He(r||{},t):r,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&fy(c),ref:t&&t.ref?n&&l?Ye(l)?l.concat(Hi(t)):[l,Hi(t)]:Hi(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:s,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&er(e.ssContent),ssFallback:e.ssFallback&&er(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return s&&a&&Fo(d,s.clone(d)),d}function we(e=" ",t=0){return F(Vs,null,e,t)}function re(e="",t=!1){return t?(v(),U(Pn,null,e)):F(Pn,null,e)}function Wn(e){return e==null||typeof e=="boolean"?F(Pn):Ye(e)?F(ye,null,e.slice()):zo(e)?da(e):F(Vs,null,String(e))}function da(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:er(e)}function Md(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(Ye(t))n=16;else if(typeof t=="object")if(a&65){const r=t.default;r&&(r._c&&(r._d=!1),Md(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!ny(t)?t._ctx=Ft:r===3&&Ft&&(Ft.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Qe(t)?(t={default:t,_ctx:Ft},n=32):(t=String(t),a&64?(n=16,t=[we(t)]):n=8);e.children=t,e.shapeFlag|=n}function He(...e){const t={};for(let n=0;nKt||Ft;let ls,Lc;{const e=Os(),t=(n,a)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(a),l=>{r.length>1?r.forEach(o=>o(l)):r[0](l)}};ls=t("__VUE_INSTANCE_SETTERS__",n=>Kt=n),Lc=t("__VUE_SSR_SETTERS__",n=>jo=n)}const ri=e=>{const t=Kt;return ls(e),e.scope.on(),()=>{e.scope.off(),ls(t)}},gp=()=>{Kt&&Kt.scope.off(),ls(null)};function py(e){return e.vnode.shapeFlag&4}let jo=!1;function V_(e,t=!1,n=!1){t&&Lc(t);const{props:a,children:r}=e.vnode,l=py(e);C_(e,a,l,t),T_(e,r,n||t);const o=l?z_(e,t):void 0;return t&&Lc(!1),o}function z_(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,c_);const{setup:a}=n;if(a){xa();const r=e.setupContext=a.length>1?U_(e):null,l=ri(e),o=ai(a,e,0,[e.props,r]),i=Xm(o);if(ka(),l(),(i||e.sp)&&!$l(e)&&Nh(e),i){if(o.then(gp,gp),t)return o.then(s=>{bp(e,s)}).catch(s=>{Ns(s,e,0)});e.asyncDep=o}else bp(e,o)}else vy(e)}function bp(e,t,n){Qe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:dt(t)&&(e.setupState=Sh(t)),vy(e)}function vy(e,t,n){const a=e.type;e.render||(e.render=a.render||Xn);{const r=ri(e);xa();try{d_(e)}finally{ka(),r()}}}const j_={get(e,t){return Wt(e,"get",""),e[t]}};function U_(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,j_),slots:e.slots,emit:e.emit,expose:t}}function zs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Sh(Xi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in To)return To[n](e)},has(t,n){return n in t||n in To}})):e.proxy}function H_(e,t=!0){return Qe(e)?e.displayName||e.name:e.name||t&&e.__name}function W_(e){return Qe(e)&&"__vccOpts"in e}const _=(e,t)=>B0(e,t,jo);function Cn(e,t,n){try{rs(-1);const a=arguments.length;return a===2?dt(t)&&!Ye(t)?zo(t)?F(e,null,[t]):F(e,t):F(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&zo(n)&&(n=[n]),F(e,t,n))}finally{rs(1)}}const K_="3.5.35";let Bc;const _p=typeof window<"u"&&window.trustedTypes;if(_p)try{Bc=_p.createPolicy("vue",{createHTML:e=>e})}catch{}const my=Bc?e=>Bc.createHTML(e):e=>e,G_="http://www.w3.org/2000/svg",Y_="http://www.w3.org/1998/Math/MathML",ua=typeof document<"u"?document:null,xp=ua&&ua.createElement("template"),J_={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const r=t==="svg"?ua.createElementNS(G_,e):t==="mathml"?ua.createElementNS(Y_,e):n?ua.createElement(e,{is:n}):ua.createElement(e);return e==="select"&&a&&a.multiple!=null&&r.setAttribute("multiple",a.multiple),r},createText:e=>ua.createTextNode(e),createComment:e=>ua.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ua.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,r,l){const o=n?n.previousSibling:t.lastChild;if(r&&(r===l||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===l||!(r=r.nextSibling)););else{xp.innerHTML=my(a==="svg"?`${e}`:a==="mathml"?`${e}`:e);const i=xp.content;if(a==="svg"||a==="mathml"){const s=i.firstChild;for(;s.firstChild;)i.appendChild(s.firstChild);i.removeChild(s)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},La="transition",lo="animation",Il=Symbol("_vtc"),hy={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Z_=Et({},e_,hy),kr=(e,t=[])=>{Ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},kp=e=>e?Ye(e)?e.some(t=>t.length>1):e.length>1:!1;function X_(e){const t={};for(const R in e)R in hy||(t[R]=e[R]);if(e.css===!1)return t;const{name:n="v",type:a,duration:r,enterFromClass:l=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:s=l,appearActiveClass:c=o,appearToClass:d=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,h=Q_(r),x=h&&h[0],k=h&&h[1],{onBeforeEnter:g,onEnter:C,onEnterCancelled:E,onLeave:D,onLeaveCancelled:O,onBeforeAppear:L=g,onAppear:z=C,onAppearCancelled:W=E}=t,$=(R,j,Q,N)=>{R._enterCancelled=N,Ua(R,j?d:i),Ua(R,j?c:o),Q&&Q()},q=(R,j)=>{R._isLeaving=!1,Ua(R,f),Ua(R,p),Ua(R,m),j&&j()},J=R=>(j,Q)=>{const N=R?z:C,ne=()=>$(j,R,Q);kr(N,[j,ne]),wp(()=>{Ua(j,R?s:l),zn(j,R?d:i),kp(N)||$p(j,a,x,ne)})};return Et(t,{onBeforeEnter(R){kr(g,[R]),zn(R,l),zn(R,o)},onBeforeAppear(R){kr(L,[R]),zn(R,s),zn(R,c)},onEnter:J(!1),onAppear:J(!0),onLeave(R,j){R._isLeaving=!0;const Q=()=>q(R,j);zn(R,f),R._enterCancelled?(zn(R,m),Fc(R)):(Fc(R),zn(R,m)),wp(()=>{R._isLeaving&&(Ua(R,f),zn(R,p),kp(D)||$p(R,a,k,Q))}),kr(D,[R,Q])},onEnterCancelled(R){$(R,!1,void 0,!0),kr(E,[R])},onAppearCancelled(R){$(R,!0,void 0,!0),kr(W,[R])},onLeaveCancelled(R){q(R),kr(O,[R])}})}function Q_(e){if(e==null)return null;if(dt(e))return[Ou(e.enter),Ou(e.leave)];{const t=Ou(e);return[t,t]}}function Ou(e){return r0(e)}function zn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Il]||(e[Il]=new Set)).add(t)}function Ua(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[Il];n&&(n.delete(t),n.size||(e[Il]=void 0))}function wp(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ex=0;function $p(e,t,n,a){const r=e._endId=++ex,l=()=>{r===e._endId&&a()};if(n!=null)return setTimeout(l,n);const{type:o,timeout:i,propCount:s}=yy(e,t);if(!o)return a();const c=o+"end";let d=0;const f=()=>{e.removeEventListener(c,m),l()},m=p=>{p.target===e&&++d>=s&&f()};setTimeout(()=>{d(n[h]||"").split(", "),r=a(`${La}Delay`),l=a(`${La}Duration`),o=Cp(r,l),i=a(`${lo}Delay`),s=a(`${lo}Duration`),c=Cp(i,s);let d=null,f=0,m=0;t===La?o>0&&(d=La,f=o,m=l.length):t===lo?c>0&&(d=lo,f=c,m=s.length):(f=Math.max(o,c),d=f>0?o>c?La:lo:null,m=d?d===La?l.length:s.length:0);const p=d===La&&/\b(?:transform|all)(?:,|$)/.test(a(`${La}Property`).toString());return{type:d,timeout:f,propCount:m,hasTransform:p}}function Cp(e,t){for(;e.lengthSp(n)+Sp(e[a])))}function Sp(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Fc(e){return(e?e.ownerDocument:document).body.offsetHeight}function tx(e,t,n){const a=e[Il];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const os=Symbol("_vod"),gy=Symbol("_vsh"),is={name:"show",beforeMount(e,{value:t},{transition:n}){e[os]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):oo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:a}){!t!=!n&&(a?t?(a.beforeEnter(e),oo(e,!0),a.enter(e)):a.leave(e,()=>{oo(e,!1)}):oo(e,t))},beforeUnmount(e,{value:t}){oo(e,t)}};function oo(e,t){e.style.display=t?e[os]:"none",e[gy]=!t}const nx=Symbol(""),ax=/(?:^|;)\s*display\s*:/;function rx(e,t,n){const a=e.style,r=bt(n);let l=!1;if(n&&!r){if(t)if(bt(t))for(const o of t.split(";")){const i=o.slice(0,o.indexOf(":")).trim();n[i]==null&&_o(a,i,"")}else for(const o in t)n[o]==null&&_o(a,o,"");for(const o in n){o==="display"&&(l=!0);const i=n[o];i!=null?ox(e,o,!bt(t)&&t?t[o]:void 0,i)||_o(a,o,i):_o(a,o,"")}}else if(r){if(t!==n){const o=a[nx];o&&(n+=";"+o),a.cssText=n,l=ax.test(n)}}else t&&e.removeAttribute("style");os in e&&(e[os]=l?a.display:"",e[gy]&&(a.display="none"))}const Ep=/\s*!important$/;function _o(e,t,n){if(Ye(n))n.forEach(a=>_o(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=lx(e,t);Ep.test(n)?e.setProperty(fr(a),n.replace(Ep,""),"important"):e[a]=n}}const Ap=["Webkit","Moz","ms"],Mu={};function lx(e,t){const n=Mu[t];if(n)return n;let a=Vt(t);if(a!=="filter"&&a in e)return Mu[t]=a;a=Ds(a);for(let r=0;rPu||(cx.then(()=>Pu=0),Pu=Date.now());function fx(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;const r=n.value;if(Ye(r)){const l=a.stopImmediatePropagation;a.stopImmediatePropagation=()=>{l.call(a),a._stopped=!0};const o=r.slice(),i=[a];for(let s=0;se.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,px=(e,t,n,a,r,l)=>{const o=r==="svg";t==="class"?tx(e,a,o):t==="style"?rx(e,n,a):Ss(t)?Es(t)||sx(e,t,n,a,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vx(e,t,a,o))?(Op(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Dp(e,t,a,o,l,t!=="value")):e._isVueCE&&(mx(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!bt(a)))?Op(e,Vt(t),a,l,t):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),Dp(e,t,a,o))};function vx(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&Rp(t)&&Qe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Rp(t)&&bt(n)?!1:t in e}function mx(e,t){const n=e._def.props;if(!n)return!1;const a=Vt(t);return Array.isArray(n)?n.some(r=>Vt(r)===a):Object.keys(n).some(r=>Vt(r)===a)}const by=new WeakMap,_y=new WeakMap,ss=Symbol("_moveCb"),Ip=Symbol("_enterCb"),hx=e=>(delete e.props.mode,e),yx=hx({name:"TransitionGroup",props:Et({},Z_,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ra(),a=Q0();let r,l;return Ad(()=>{if(!r.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!kx(r[0].el,n.vnode.el,o)){r=[];return}r.forEach(bx),r.forEach(_x);const i=r.filter(xx);Fc(n.vnode.el),i.forEach(s=>{const c=s.el,d=c.style;zn(c,o),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[ss]=m=>{m&&m.target!==c||(!m||m.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[ss]=null,Ua(c,o))};c.addEventListener("transitionend",f)}),r=[]}),()=>{const o=ut(e),i=X_(o);let s=o.tag||ye;if(r=[],l)for(let c=0;c{i.split(/\s+/).forEach(s=>s&&a.classList.remove(s))}),n.split(/\s+/).forEach(i=>i&&a.classList.add(i)),a.style.display="none";const l=t.nodeType===1?t:t.parentNode;l.appendChild(a);const{hasTransform:o}=yy(a);return l.removeChild(a),o}const qp=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ye(t)?n=>Ui(t,n):t};function wx(e){e.target.composing=!0}function Np(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ru=Symbol("_assign");function Lp(e,t,n){return t&&(e=e.trim()),n&&(e=xd(e)),e}const ql={created(e,{modifiers:{lazy:t,trim:n,number:a}},r){e[Ru]=qp(r);const l=a||r.props&&r.props.type==="number";pl(e,t?"change":"input",o=>{o.target.composing||e[Ru](Lp(e.value,n,l))}),(n||l)&&pl(e,"change",()=>{e.value=Lp(e.value,n,l)}),t||(pl(e,"compositionstart",wx),pl(e,"compositionend",Np),pl(e,"change",Np))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:a,trim:r,number:l}},o){if(e[Ru]=qp(o),e.composing)return;const i=(l||e.type==="number")&&!/^0\d/.test(e.value)?xd(e.value):e.value,s=t??"";if(i===s)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(a&&t===n||r&&e.value.trim()===s)||(e.value=s)}},$x=["ctrl","shift","alt","meta"],Cx={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>$x.some(n=>e[`${n}Key`]&&!t.includes(n))},vt=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),a=t.join(".");return n[a]||(n[a]=((r,...l)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),a=t.join(".");return n[a]||(n[a]=(r=>{if(!("key"in r))return;const l=fr(r.key);if(t.some(o=>o===l||Sx[o]===l))return e(r)}))},Ex=Et({patchProp:px},J_);let Bp;function Ax(){return Bp||(Bp=O_(Ex))}const Tx=((...e)=>{const t=Ax().createApp(...e),{mount:n}=t;return t.mount=a=>{const r=Ox(a);if(!r)return;const l=t._component;!Qe(l)&&!l.render&&!l.template&&(l.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Dx(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Dx(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ox(e){return bt(e)?document.querySelector(e):e}const vl=typeof document<"u";function ky(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Mx(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ky(e.default)}const ft=Object.assign;function Iu(e,t){const n={};for(const a in t){const r=t[a];n[a]=Rn(r)?r.map(e):e(r)}return n}const Oo=()=>{},Rn=Array.isArray;function Fp(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}const wy=Symbol("");function Nl(e,t){return ft(new Error,{type:e,[wy]:!0},t)}function sa(e,t){return e instanceof Error&&wy in e&&(t==null||!!(e.type&t))}const Pd=Symbol(""),Vp=Symbol(""),js=Symbol(""),Rd=Symbol(""),Vc=Symbol("");function jr(){return ct(js)}function En(e){return ct(Rd)}const $y=/#/g,Px=/&/g,Rx=/\//g,Ix=/=/g,qx=/\?/g,Cy=/\+/g,Nx=/%5B/g,Lx=/%5D/g,Sy=/%5E/g,Bx=/%60/g,Ey=/%7B/g,Fx=/%7C/g,Ay=/%7D/g,Vx=/%20/g;function Id(e){return e==null?"":encodeURI(""+e).replace(Fx,"|").replace(Nx,"[").replace(Lx,"]")}function zx(e){return Id(e).replace(Ey,"{").replace(Ay,"}").replace(Sy,"^")}function zc(e){return Id(e).replace(Cy,"%2B").replace(Vx,"+").replace($y,"%23").replace(Px,"%26").replace(Bx,"`").replace(Ey,"{").replace(Ay,"}").replace(Sy,"^")}function jx(e){return zc(e).replace(Ix,"%3D")}function Ux(e){return Id(e).replace($y,"%23").replace(qx,"%3F")}function Hx(e){return Ux(e).replace(Rx,"%2F")}function us(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Wx=/\/$/,Kx=e=>e.replace(Wx,"");function qu(e,t,n="/"){let a,r={},l="",o="";const i=t.indexOf("#");let s=t.indexOf("?");return s=i>=0&&s>i?-1:s,s>=0&&(a=t.slice(0,s),l=t.slice(s,i>0?i:t.length),r=e(l.slice(1))),i>=0&&(a=a||t.slice(0,i),o=t.slice(i,t.length)),a=Zx(a??t,n),{fullPath:a+l+o,path:a,query:r,hash:us(o)}}function Gx(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function zp(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Yx(e,t,n){const a=t.matched.length-1,r=n.matched.length-1;return a>-1&&a===r&&Ll(t.matched[a],n.matched[r])&&Ty(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ll(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ty(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Jx(e[n],t[n]))return!1;return!0}function Jx(e,t){return Rn(e)?jp(e,t):Rn(t)?jp(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function jp(e,t){return Rn(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function Zx(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),a=e.split("/"),r=a[a.length-1];(r===".."||r===".")&&a.push("");let l=n.length-1,o,i;for(o=0;o1&&l--;else break;return n.slice(0,l).join("/")+"/"+a.slice(o).join("/")}const Ba={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function Xx(e){if(!e)if(vl){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kx(e)}const Qx=/^[^#]+#/;function ek(e,t){return e.replace(Qx,"#")+t}function tk(e,t){const n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{behavior:t.behavior,left:a.left-n.left-(t.left||0),top:a.top-n.top-(t.top||0)}}const Us=()=>({left:window.scrollX,top:window.scrollY});function nk(e){let t;if("el"in e){const n=e.el,a=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?a?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=tk(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Up(e,t){return(history.state?history.state.position-t:-1)+e}const jc=new Map;function ak(e,t){jc.set(e,t)}function rk(e){const t=jc.get(e);return jc.delete(e),t}function lk(e){return typeof e=="string"||e&&typeof e=="object"}function Dy(e){return typeof e=="string"||typeof e=="symbol"}function ok(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;ar&&zc(r)):[a&&zc(a)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function ik(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=Rn(a)?a.map(r=>r==null?null:""+r):a==null?a:""+a)}return t}function io(){let e=[];function t(a){return e.push(a),()=>{const r=e.indexOf(a);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Oy(e,t,n){const a=e.value;if(!a)return;let r=a;const l=()=>{r[t].delete(n)};Ea(l),Fh(l),Bh(()=>{const o=e.value;o&&(r=o),r[t].add(n)}),r[t].add(n)}function My(e){Oy(ct(Pd,{}),"leaveGuards",e)}function sk(e){Oy(ct(Pd,{}),"updateGuards",e)}function Ka(e,t,n,a,r,l=o=>o()){const o=a&&(a.enterCallbacks[r]=a.enterCallbacks[r]||[]);return()=>new Promise((i,s)=>{const c=m=>{m===!1?s(Nl(4,{from:n,to:t})):m instanceof Error?s(m):lk(m)?s(Nl(2,{from:t,to:m})):(o&&a.enterCallbacks[r]===o&&typeof m=="function"&&o.push(m),i())},d=l(()=>e.call(a&&a.instances[r],t,n,c));let f=Promise.resolve(d);e.length<3&&(f=f.then(c)),f.catch(m=>s(m))})}function Nu(e,t,n,a,r=l=>l()){const l=[];for(const o of e)for(const i in o.components){let s=o.components[i];if(!(t!=="beforeRouteEnter"&&!o.instances[i]))if(ky(s)){const c=(s.__vccOpts||s)[t];c&&l.push(Ka(c,n,a,o,i,r))}else{let c=s();l.push(()=>c.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${i}" at "${o.path}"`);const f=Mx(d)?d.default:d;o.mods[i]=d,o.components[i]=f;const m=(f.__vccOpts||f)[t];return m&&Ka(m,n,a,o,i,r)()}))}}return l}function uk(e,t){const n=[],a=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let o=0;oLl(c,i))?a.push(i):n.push(i));const s=e.matched[o];s&&(t.matched.find(c=>Ll(c,s))||r.push(s))}return[n,a,r]}let ck=()=>location.protocol+"//"+location.host;function Py(e,t){const{pathname:n,search:a,hash:r}=t,l=e.indexOf("#");if(l>-1){let o=r.includes(e.slice(l))?e.slice(l).length:1,i=r.slice(o);return i[0]!=="/"&&(i="/"+i),zp(i,"")}return zp(n,e)+a+r}function dk(e,t,n,a){let r=[],l=[],o=null;const i=({state:m})=>{const p=Py(e,location),h=n.value,x=t.value;let k=0;if(m){if(n.value=p,t.value=m,o&&o===h){o=null;return}k=x?m.position-x.position:0}else a(p);r.forEach(g=>{g(n.value,h,{delta:k,type:"pop",direction:k?k>0?"forward":"back":""})})};function s(){o=n.value}function c(m){r.push(m);const p=()=>{const h=r.indexOf(m);h>-1&&r.splice(h,1)};return l.push(p),p}function d(){if(document.visibilityState==="hidden"){const{history:m}=window;if(!m.state)return;m.replaceState(ft({},m.state,{scroll:Us()}),"")}}function f(){for(const m of l)m();l=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:s,listen:c,destroy:f}}function Wp(e,t,n,a=!1,r=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:r?Us():null}}function fk(e){const{history:t,location:n}=window,a={value:Py(e,n)},r={value:t.state};r.value||l(a.value,{back:null,current:a.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(s,c,d){const f=e.indexOf("#"),m=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+s:ck()+e+s;try{t[d?"replaceState":"pushState"](c,"",m),r.value=c}catch(p){console.error(p),n[d?"replace":"assign"](m)}}function o(s,c){l(s,ft({},t.state,Wp(r.value.back,s,r.value.forward,!0),c,{position:r.value.position}),!0),a.value=s}function i(s,c){const d=ft({},r.value,t.state,{forward:s,scroll:Us()});l(d.current,d,!0),l(s,ft({},Wp(a.value,s,null),{position:d.position+1},c),!1),a.value=s}return{location:a,state:r,push:i,replace:o}}function pk(e){e=Xx(e);const t=fk(e),n=dk(e,t.state,t.location,t.replace);function a(l,o=!0){o||n.pauseListeners(),history.go(l)}const r=ft({location:"",base:e,go:a,createHref:ek.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}const vk={type:0,value:""},mk=/[a-zA-Z0-9_]/;function hk(e){if(!e)return[[]];if(e==="/")return[[vk]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=0,a=n;const r=[];let l;function o(){l&&r.push(l),l=[]}let i=0,s,c="",d="";function f(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(s==="*"||s==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:d,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):t("Invalid state to consume buffer"),c="")}function m(){c+=s}for(;it.length?t.length===1&&t[0]===80?1:-1:0}function Ry(e,t){let n=0;const a=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const xk={strict:!1,end:!0,sensitive:!1};function kk(e,t,n){const a=bk(hk(e.path),n),r=ft(a,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function wk(e,t){const n=[],a=new Map;t=Fp(xk,t);function r(f){return a.get(f)}function l(f,m,p){const h=!p,x=Jp(f);x.aliasOf=p&&p.record;const k=Fp(t,f),g=[x];if("alias"in f){const D=typeof f.alias=="string"?[f.alias]:f.alias;for(const O of D)g.push(Jp(ft({},x,{components:p?p.record.components:x.components,path:O,aliasOf:p?p.record:x})))}let C,E;for(const D of g){const{path:O}=D;if(m&&O[0]!=="/"){const L=m.record.path,z=L[L.length-1]==="/"?"":"/";D.path=m.record.path+(O&&z+O)}if(C=kk(D,m,k),p?p.alias.push(C):(E=E||C,E!==C&&E.alias.push(C),h&&f.name&&!Zp(C)&&o(f.name)),Iy(C)&&s(C),x.children){const L=x.children;for(let z=0;z{o(E)}:Oo}function o(f){if(Dy(f)){const m=a.get(f);m&&(a.delete(f),n.splice(n.indexOf(m),1),m.children.forEach(o),m.alias.forEach(o))}else{const m=n.indexOf(f);m>-1&&(n.splice(m,1),f.record.name&&a.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function i(){return n}function s(f){const m=Sk(f,n);n.splice(m,0,f),f.record.name&&!Zp(f)&&a.set(f.record.name,f)}function c(f,m){let p,h={},x,k;if("name"in f&&f.name){if(p=a.get(f.name),!p)throw Nl(1,{location:f});k=p.record.name,h=ft(Yp(m.params,p.keys.filter(E=>!E.optional).concat(p.parent?p.parent.keys.filter(E=>E.optional):[]).map(E=>E.name)),f.params&&Yp(f.params,p.keys.map(E=>E.name))),x=p.stringify(h)}else if(f.path!=null)x=f.path,p=n.find(E=>E.re.test(x)),p&&(h=p.parse(x),k=p.record.name,p.keys.forEach(E=>{E.optional&&!h[E.name]&&delete h[E.name]}));else{if(p=m.name?a.get(m.name):n.find(E=>E.re.test(m.path)),!p)throw Nl(1,{location:f,currentLocation:m});k=p.record.name,h=ft({},m.params,f.params),x=p.stringify(h)}const g=[];let C=p;for(;C;)g.unshift(C.record),C=C.parent;return{name:k,path:x,params:h,matched:g,meta:Ck(g)}}e.forEach(f=>l(f));function d(){n.length=0,a.clear()}return{addRoute:l,resolve:c,removeRoute:o,clearRoutes:d,getRoutes:i,getRecordMatcher:r}}function Yp(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function Jp(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:$k(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function $k(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const a in e.components)t[a]=typeof n=="object"?n[a]:n;return t}function Zp(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ck(e){return e.reduce((t,n)=>ft(t,n.meta),{})}function Sk(e,t){let n=0,a=t.length;for(;n!==a;){const l=n+a>>1;Ry(e,t[l])<0?a=l:n=l+1}const r=Ek(e);return r&&(a=t.lastIndexOf(r,a-1)),a}function Ek(e){let t=e;for(;t=t.parent;)if(Iy(t)&&Ry(e,t)===0)return t}function Iy({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Xp(e){const t=ct(js),n=ct(Rd),a=_(()=>{const s=u(e.to);return t.resolve(s)}),r=_(()=>{const{matched:s}=a.value,{length:c}=s,d=s[c-1],f=n.matched;if(!d||!f.length)return-1;const m=f.findIndex(Ll.bind(null,d));if(m>-1)return m;const p=Qp(s[c-2]);return c>1&&Qp(d)===p&&f[f.length-1].path!==p?f.findIndex(Ll.bind(null,s[c-2])):m}),l=_(()=>r.value>-1&&Dk(n.params,a.value.params)),o=_(()=>r.value>-1&&r.value===n.matched.length-1&&Ty(n.params,a.value.params));function i(s={}){if(Tk(s)){const c=t[u(e.replace)?"replace":"push"](u(e.to)).catch(Oo);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:a,href:_(()=>a.value.href),isActive:l,isExactActive:o,navigate:i}}function Ak(e){return e.length===1?e[0]:e}const ea=le({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Xp,setup(e,{slots:t}){const n=On(Xp(e)),{options:a}=ct(js),r=_(()=>({[ev(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[ev(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&Ak(t.default(n));return e.custom?l:Cn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},l)}}});function Tk(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Dk(e,t){for(const n in t){const a=t[n],r=e[n];if(typeof a=="string"){if(a!==r)return!1}else if(!Rn(r)||r.length!==a.length||a.some((l,o)=>l.valueOf()!==r[o].valueOf()))return!1}return!0}function Qp(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ev=(e,t,n)=>e??t??n,Ok=le({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=ct(Vc),r=_(()=>e.route||a.value),l=ct(Vp,0),o=_(()=>{let c=u(l);const{matched:d}=r.value;let f;for(;(f=d[c])&&!f.components;)c++;return c}),i=_(()=>r.value.matched[o.value]);kt(Vp,_(()=>o.value+1)),kt(Pd,i),kt(Vc,r);const s=P();return je(()=>[s.value,i.value,e.name],([c,d,f],[m,p,h])=>{d&&(d.instances[f]=c,p&&p!==d&&c&&c===m&&(d.leaveGuards.size||(d.leaveGuards=p.leaveGuards),d.updateGuards.size||(d.updateGuards=p.updateGuards))),c&&d&&(!p||!Ll(d,p)||!m)&&(d.enterCallbacks[f]||[]).forEach(x=>x(c))},{flush:"post"}),()=>{const c=r.value,d=e.name,f=i.value,m=f&&f.components[d];if(!m)return tv(n.default,{Component:m,route:c});const p=f.props[d],h=p?p===!0?c.params:typeof p=="function"?p(c):p:null,k=Cn(m,ft({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[d]=null)},ref:s}));return tv(n.default,{Component:k,route:c})||k}}});function tv(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Uc=Ok;function Mk(e){const t=wk(e.routes,e),n=e.parseQuery||ok,a=e.stringifyQuery||Hp,r=e.history,l=io(),o=io(),i=io(),s=ni(Ba);let c=Ba;vl&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=Iu.bind(null,Z=>""+Z),f=Iu.bind(null,Hx),m=Iu.bind(null,us);function p(Z,ue){let V,K;return Dy(Z)?(V=t.getRecordMatcher(Z),K=ue):K=Z,t.addRoute(K,V)}function h(Z){const ue=t.getRecordMatcher(Z);ue&&t.removeRoute(ue)}function x(){return t.getRoutes().map(Z=>Z.record)}function k(Z){return!!t.getRecordMatcher(Z)}function g(Z,ue){if(ue=ft({},ue||s.value),typeof Z=="string"){const M=qu(n,Z,ue.path),oe=t.resolve({path:M.path},ue),Y=r.createHref(M.fullPath);return ft(M,oe,{params:m(oe.params),redirectedFrom:void 0,href:Y})}let V;if(Z.path!=null)V=ft({},Z,{path:qu(n,Z.path,ue.path).path});else{const M=ft({},Z.params);for(const oe in M)M[oe]==null&&delete M[oe];V=ft({},Z,{params:f(M)}),ue.params=f(ue.params)}const K=t.resolve(V,ue),ee=Z.hash||"";K.params=d(m(K.params));const y=Gx(a,ft({},Z,{hash:zx(ee),path:K.path})),A=r.createHref(y);return ft({fullPath:y,hash:ee,query:a===Hp?ik(Z.query):Z.query||{}},K,{redirectedFrom:void 0,href:A})}function C(Z){return typeof Z=="string"?qu(n,Z,s.value.path):ft({},Z)}function E(Z,ue){if(c!==Z)return Nl(8,{from:ue,to:Z})}function D(Z){return z(Z)}function O(Z){return D(ft(C(Z),{replace:!0}))}function L(Z,ue){const V=Z.matched[Z.matched.length-1];if(V&&V.redirect){const{redirect:K}=V;let ee=typeof K=="function"?K(Z,ue):K;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=C(ee):{path:ee},ee.params={}),ft({query:Z.query,hash:Z.hash,params:ee.path!=null?{}:Z.params},ee)}}function z(Z,ue){const V=c=g(Z),K=s.value,ee=Z.state,y=Z.force,A=Z.replace===!0,M=L(V,K);if(M)return z(ft(C(M),{state:typeof M=="object"?ft({},ee,M.state):ee,force:y,replace:A}),ue||V);const oe=V;oe.redirectedFrom=ue;let Y;return!y&&Yx(a,K,V)&&(Y=Nl(16,{to:oe,from:K}),me(K,K,!0,!1)),(Y?Promise.resolve(Y):q(oe,K)).catch(ce=>sa(ce)?sa(ce,2)?ce:xe(ce):de(ce,oe,K)).then(ce=>{if(ce){if(sa(ce,2))return z(ft({replace:A},C(ce.to),{state:typeof ce.to=="object"?ft({},ee,ce.to.state):ee,force:y}),ue||oe)}else ce=R(oe,K,!0,A,ee);return J(oe,K,ce),ce})}function W(Z,ue){const V=E(Z,ue);return V?Promise.reject(V):Promise.resolve()}function $(Z){const ue=H.values().next().value;return ue&&typeof ue.runWithContext=="function"?ue.runWithContext(Z):Z()}function q(Z,ue){let V;const[K,ee,y]=uk(Z,ue);V=Nu(K.reverse(),"beforeRouteLeave",Z,ue);for(const M of K)M.leaveGuards.forEach(oe=>{V.push(Ka(oe,Z,ue))});const A=W.bind(null,Z,ue);return V.push(A),ae(V).then(()=>{V=[];for(const M of l.list())V.push(Ka(M,Z,ue));return V.push(A),ae(V)}).then(()=>{V=Nu(ee,"beforeRouteUpdate",Z,ue);for(const M of ee)M.updateGuards.forEach(oe=>{V.push(Ka(oe,Z,ue))});return V.push(A),ae(V)}).then(()=>{V=[];for(const M of y)if(M.beforeEnter)if(Rn(M.beforeEnter))for(const oe of M.beforeEnter)V.push(Ka(oe,Z,ue));else V.push(Ka(M.beforeEnter,Z,ue));return V.push(A),ae(V)}).then(()=>(Z.matched.forEach(M=>M.enterCallbacks={}),V=Nu(y,"beforeRouteEnter",Z,ue,$),V.push(A),ae(V))).then(()=>{V=[];for(const M of o.list())V.push(Ka(M,Z,ue));return V.push(A),ae(V)}).catch(M=>sa(M,8)?M:Promise.reject(M))}function J(Z,ue,V){i.list().forEach(K=>$(()=>K(Z,ue,V)))}function R(Z,ue,V,K,ee){const y=E(Z,ue);if(y)return y;const A=ue===Ba,M=vl?history.state:{};V&&(K||A?r.replace(Z.fullPath,ft({scroll:A&&M&&M.scroll},ee)):r.push(Z.fullPath,ee)),s.value=Z,me(Z,ue,V,A),xe()}let j;function Q(){j||(j=r.listen((Z,ue,V)=>{if(!ke.listening)return;const K=g(Z),ee=L(K,ke.currentRoute.value);if(ee){z(ft(ee,{replace:!0,force:!0}),K).catch(Oo);return}c=K;const y=s.value;vl&&ak(Up(y.fullPath,V.delta),Us()),q(K,y).catch(A=>sa(A,12)?A:sa(A,2)?(z(ft(C(A.to),{force:!0}),K).then(M=>{sa(M,20)&&!V.delta&&V.type==="pop"&&r.go(-1,!1)}).catch(Oo),Promise.reject()):(V.delta&&r.go(-V.delta,!1),de(A,K,y))).then(A=>{A=A||R(K,y,!1),A&&(V.delta&&!sa(A,8)?r.go(-V.delta,!1):V.type==="pop"&&sa(A,20)&&r.go(-1,!1)),J(K,y,A)}).catch(Oo)}))}let N=io(),ne=io(),te;function de(Z,ue,V){xe(Z);const K=ne.list();return K.length?K.forEach(ee=>ee(Z,ue,V)):console.error(Z),Promise.reject(Z)}function pe(){return te&&s.value!==Ba?Promise.resolve():new Promise((Z,ue)=>{N.add([Z,ue])})}function xe(Z){return te||(te=!Z,Q(),N.list().forEach(([ue,V])=>Z?V(Z):ue()),N.reset()),Z}function me(Z,ue,V,K){const{scrollBehavior:ee}=e;if(!vl||!ee)return Promise.resolve();const y=!V&&rk(Up(Z.fullPath,0))||(K||!V)&&history.state&&history.state.scroll||null;return Ze().then(()=>ee(Z,ue,y)).then(A=>A&&nk(A)).catch(A=>de(A,Z,ue))}const fe=Z=>r.go(Z);let Te;const H=new Set,ke={currentRoute:s,listening:!0,addRoute:p,removeRoute:h,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:x,resolve:g,options:e,push:D,replace:O,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:l.add,beforeResolve:o.add,afterEach:i.add,onError:ne.add,isReady:pe,install(Z){Z.component("RouterLink",ea),Z.component("RouterView",Uc),Z.config.globalProperties.$router=ke,Object.defineProperty(Z.config.globalProperties,"$route",{enumerable:!0,get:()=>u(s)}),vl&&!Te&&s.value===Ba&&(Te=!0,D(r.location).catch(K=>{}));const ue={};for(const K in Ba)Object.defineProperty(ue,K,{get:()=>s.value[K],enumerable:!0});Z.provide(js,ke),Z.provide(Rd,$h(ue)),Z.provide(Vc,s);const V=Z.unmount;H.add(Z),Z.unmount=function(){H.delete(Z),H.size<1&&(c=Ba,j&&j(),j=null,s.value=Ba,Te=!1,te=!1),V()}}};function ae(Z){return Z.reduce((ue,V)=>ue.then(()=>$(V)),Promise.resolve())}return ke}const Pk=/^[A-Za-z0-9_-]+$/;function Hs(e){const t=e.split(".");if(t.length!==3||!t.every(l=>Pk.test(l)))return null;const[n,a,r]=t;return{vendor:n,plugin:a,controller:r}}function In(e){const t=Hs(e);return t?`/${t.vendor}/${t.plugin}/${t.controller}`:null}function li(e){return`${e.vendor}.${e.plugin}.${e.controller}`}function oi(e){const t=e.replace(/^\/+|\/+$/g,"").split("/");if(t.length<3)return null;const n=t.slice(0,3).join(".");return Hs(n)?n:null}function nv(e){const t=Hs(e);return t?`${t.vendor}.${t.plugin}`:null}const Rk=/\{[^{}]+\}/g,Ik=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function qk(){return Math.random().toString(36).slice(2,11)}function Nk(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:a=globalThis.fetch,querySerializer:r,bodySerializer:l,pathSerializer:o,headers:i,requestInitExt:s=void 0,...c}={...e};s=Ik()?s:void 0,t=lv(t);const d=[];async function f(m,p){const{baseUrl:h,fetch:x=a,Request:k=n,headers:g,params:C={},parseAs:E="json",querySerializer:D,bodySerializer:O=l??Bk,pathSerializer:L,body:z,middleware:W=[],...$}=p||{};let q=t;h&&(q=lv(h)??t);let J=typeof r=="function"?r:av(r);D&&(J=typeof D=="function"?D:av({...typeof r=="object"?r:{},...D}));const R=L||o||Lk,j=z===void 0?void 0:O(z,rv(i,g,C.header)),Q=rv(j===void 0||j instanceof FormData?{}:{"Content-Type":"application/json"},i,g,C.header),N=[...d,...W],ne={redirect:"follow",...c,...$,body:j,headers:Q};let te,de,pe=new k(Fk(m,{baseUrl:q,params:C,querySerializer:J,pathSerializer:R}),ne),xe;for(const Te in $)Te in pe||(pe[Te]=$[Te]);if(N.length){te=qk(),de=Object.freeze({baseUrl:q,fetch:x,parseAs:E,querySerializer:J,bodySerializer:O,pathSerializer:R});for(const Te of N)if(Te&&typeof Te=="object"&&typeof Te.onRequest=="function"){const H=await Te.onRequest({request:pe,schemaPath:m,params:C,options:de,id:te});if(H)if(H instanceof k)pe=H;else if(H instanceof Response){xe=H;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!xe){try{xe=await x(pe,s)}catch(Te){let H=Te;if(N.length)for(let ke=N.length-1;ke>=0;ke--){const ae=N[ke];if(ae&&typeof ae=="object"&&typeof ae.onError=="function"){const Z=await ae.onError({request:pe,error:H,schemaPath:m,params:C,options:de,id:te});if(Z){if(Z instanceof Response){H=void 0,xe=Z;break}if(Z instanceof Error){H=Z;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(H)throw H}if(N.length)for(let Te=N.length-1;Te>=0;Te--){const H=N[Te];if(H&&typeof H=="object"&&typeof H.onResponse=="function"){const ke=await H.onResponse({request:pe,response:xe,schemaPath:m,params:C,options:de,id:te});if(ke){if(!(ke instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");xe=ke}}}}const me=xe.headers.get("Content-Length");if(xe.status===204||pe.method==="HEAD"||me==="0"&&!xe.headers.get("Transfer-Encoding")?.includes("chunked"))return xe.ok?{data:void 0,response:xe}:{error:void 0,response:xe};if(xe.ok)return{data:await(async()=>{if(E==="stream")return xe.body;if(E==="json"&&!me){const H=await xe.text();return H?JSON.parse(H):void 0}return await xe[E]()})(),response:xe};let fe=await xe.text();try{fe=JSON.parse(fe)}catch{}return{error:fe,response:xe}}return{request(m,p,h){return f(p,{...h,method:m.toUpperCase()})},GET(m,p){return f(m,{...p,method:"GET"})},PUT(m,p){return f(m,{...p,method:"PUT"})},POST(m,p){return f(m,{...p,method:"POST"})},DELETE(m,p){return f(m,{...p,method:"DELETE"})},OPTIONS(m,p){return f(m,{...p,method:"OPTIONS"})},HEAD(m,p){return f(m,{...p,method:"HEAD"})},PATCH(m,p){return f(m,{...p,method:"PATCH"})},TRACE(m,p){return f(m,{...p,method:"TRACE"})},use(...m){for(const p of m)if(p){if(typeof p!="object"||!("onRequest"in p||"onResponse"in p||"onError"in p))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");d.push(p)}},eject(...m){for(const p of m){const h=d.indexOf(p);h!==-1&&d.splice(h,1)}}}}function Ws(e,t,n){if(t==null)return"";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${n?.allowReserved===!0?t:encodeURIComponent(t)}`}function qy(e,t,n){if(!t||typeof t!="object")return"";const a=[],r={simple:",",label:".",matrix:";"}[n.style]||"&";if(n.style!=="deepObject"&&n.explode===!1){for(const i in t)a.push(i,n.allowReserved===!0?t[i]:encodeURIComponent(t[i]));const o=a.join(",");switch(n.style){case"form":return`${e}=${o}`;case"label":return`.${o}`;case"matrix":return`;${e}=${o}`;default:return o}}for(const o in t){const i=n.style==="deepObject"?`${e}[${o}]`:o;a.push(Ws(i,t[o],n))}const l=a.join(r);return n.style==="label"||n.style==="matrix"?`${r}${l}`:l}function Ny(e,t,n){if(!Array.isArray(t))return"";if(n.explode===!1){const l={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",o=(n.allowReserved===!0?t:t.map(i=>encodeURIComponent(i))).join(l);switch(n.style){case"simple":return o;case"label":return`.${o}`;case"matrix":return`;${e}=${o}`;default:return`${e}=${o}`}}const a={simple:",",label:".",matrix:";"}[n.style]||"&",r=[];for(const l of t)n.style==="simple"||n.style==="label"?r.push(n.allowReserved===!0?l:encodeURIComponent(l)):r.push(Ws(e,l,n));return n.style==="label"||n.style==="matrix"?`${a}${r.join(a)}`:r.join(a)}function av(e){return function(n){const a=[];if(n&&typeof n=="object")for(const r in n){const l=n[r];if(l!=null){if(Array.isArray(l)){if(l.length===0)continue;a.push(Ny(r,l,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}));continue}if(typeof l=="object"){a.push(qy(r,l,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}));continue}a.push(Ws(r,l,e))}}return a.join("&")}}function Lk(e,t){let n=e;for(const a of e.match(Rk)??[]){let r=a.substring(1,a.length-1),l=!1,o="simple";if(r.endsWith("*")&&(l=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(o="label",r=r.substring(1)):r.startsWith(";")&&(o="matrix",r=r.substring(1)),!t||t[r]===void 0||t[r]===null)continue;const i=t[r];if(Array.isArray(i)){n=n.replace(a,Ny(r,i,{style:o,explode:l}));continue}if(typeof i=="object"){n=n.replace(a,qy(r,i,{style:o,explode:l}));continue}if(o==="matrix"){n=n.replace(a,`;${Ws(r,i)}`);continue}n=n.replace(a,o==="label"?`.${encodeURIComponent(i)}`:encodeURIComponent(i))}return n}function Bk(e,t){return e instanceof FormData?e:t&&(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])==="application/x-www-form-urlencoded"?new URLSearchParams(e).toString():JSON.stringify(e)}function Fk(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let a=t.querySerializer(t.params.query??{});return a.startsWith("?")&&(a=a.substring(1)),a&&(n+=`?${a}`),n}function rv(...e){const t=new Headers;for(const n of e){if(!n||typeof n!="object")continue;const a=n instanceof Headers?n.entries():Object.entries(n);for(const[r,l]of a)if(l===null)t.delete(r);else if(Array.isArray(l))for(const o of l)t.append(r,o);else l!==void 0&&t.set(r,l)}return t}function lv(e){return e.endsWith("/")?e.substring(0,e.length-1):e}const ov="/backend",Vk="__SUMMER_ADMIN_BASE__";function zk(e=document){const t=e.querySelector('meta[name="summer-admin-base"]')?.content.trim()??"";if(t===""||t===Vk||!t.startsWith("/"))return ov;const n=t.replace(/\/+$/,"");return n===""?ov:n}const iv=zk(),Ks={base:iv,api:`${iv}/api/v1`},Ly="XMLHttpRequest";let cs=null,By=null,so=null;const Lu=new WeakMap;function jk(e){cs=e}function Uk(){cs?.()}function Hk(e){By=e}function Wk(e){return new URL(e.url,"http://local").pathname}function sv(e){const t=Wk(e);return t.endsWith("/auth/login")||t.endsWith("/auth/refresh")}function qd(){return so||(so=(async()=>{try{const{data:e,response:t}=await Le.POST("/auth/refresh");if(!t.ok||!e)return!1;const n=e.data.expires_in;return By?.(typeof n=="number"?n:null),!0}catch{return!1}finally{so=null}})(),so)}const Kk={onRequest({request:e}){return e.headers.set("X-Requested-With",Ly),sv(e)||Lu.set(e,e.clone()),e},async onResponse({request:e,response:t}){if(t.status!==401||sv(e))return t;const n=Lu.get(e);if(Lu.delete(e),!n||!await qd())return cs?.(),t;const a=await globalThis.fetch(n);return a.status===401&&cs?.(),a}},Le=Nk({baseUrl:Ks.api,credentials:"same-origin",fetch:e=>globalThis.fetch(e)});Le.use(Kk);const Nd=P({}),Ld=P(typeof document>"u"?"pl":document.documentElement.lang||"pl"),Rr=Mt(Ld);function Gk(e,t){Nd.value=e,t&&(Ld.value=t,typeof document<"u"&&(document.documentElement.lang=t))}async function Yk(){const{data:e,response:t}=await Le.GET("/lang");!t.ok||!e||Gk(e.data,e.meta.locale)}function uv(e){const t=e.codePointAt(0);if(t===void 0)return e;const n=String.fromCodePoint(t);return n.toUpperCase()+e.slice(n.length)}function Hc(e,t={}){if(e==="")return e;const n=[];for(const[r,l]of Object.entries(t)){const o=r.replace(/^:/,"");if(o==="")continue;const i=String(l);n.push([`:${uv(o)}`,uv(i)]),n.push([`:${o.toUpperCase()}`,i.toUpperCase()]),n.push([`:${o}`,i])}n.sort((r,l)=>l[0].length-r[0].length);let a=e;for(const[r,l]of n)a=a.split(r).join(l);return a}const cv=new Map;function Jk(e,t=Ld.value){let n=cv.get(t);if(n===void 0){try{n=new Intl.PluralRules(t)}catch{n=null}cv.set(t,n)}return n?n.select(e):"other"}function Je(e,t,n={}){if(!e)return"";if(t===void 0)return Hc(e.other??"",n);const a=e[Jk(t)]??e.other??"";return Hc(a,{count:t,...n})}function w(e,t={}){const n=Nd.value[e]?.other;return n===void 0?e:Hc(n,t)}function Ir(e,t,n={}){const a=Nd.value[e];return a?Je(a,t,n):e}const Bd=P(""),xo=Mt(Bd);function Fd(e){Bd.value=e}function Vd(){Bd.value=""}const ds=P([]);async function Fy(){const{data:e,response:t}=await Le.GET("/navigation");return ds.value=t.ok&&e?e.data:[],ds.value}function Zk(e){ds.value=e}const fs=_(()=>ds.value.filter(e=>e.sideMenu.length>0).map((e,t)=>({entry:e,index:t})).sort((e,t)=>e.entry.order-t.entry.order||e.index-t.index).map(({entry:e})=>e));function zd(e){for(const t of e.sideMenu){const n=In(t.controller);if(n)return n}return In(e.controller)}function ii(e,t){const n=`${e}.${t}`;return fs.value.find(a=>nv(a.controller)===n||a.sideMenu.some(r=>nv(r.controller)===n))??null}function Xk(){for(const e of fs.value){const t=zd(e);if(t)return t}return null}const qr=P([]),Qk=_(()=>qr.value.length>0);async function Vy(){const{data:e,response:t}=await Le.GET("/settings");return qr.value=t.ok&&e?e.data:[],qr.value}function ew(e){qr.value=e}function ps(e){return qr.value.find(t=>t.code===e)??null}function zy(e){return e.controller?In(e.controller)??"/settings":`/settings/${encodeURIComponent(e.code)}`}function jd(e){return e?qr.value.find(t=>t.controller!==""&&t.controller===e)??null:null}const dv=_(()=>{const e=qr.value.map((n,a)=>({entry:n,index:a})).sort((n,a)=>n.entry.order-a.entry.order||n.index-a.index).map(({entry:n})=>n),t=[];for(const n of e){let a=t.find(r=>r.category===n.category);a||(a={category:n.category,entries:[]},t.push(a)),a.entries.push(n)}return t}),fv="SummerCMS";function tw(e){if(e.name==="login")return w("backend::lang.auth.title");if(e.name==="settings")return w("backend::lang.settings.title");if(e.name==="account")return w("backend::lang.myaccount.menu_label");if(e.name==="settings-form")return ps(String(e.params.code??""))?.label??String(e.params.code??"");if(e.name==="home")return w("backend::lang.nav.empty");if(e.name==="not-found")return w("backend::lang.page.not_found");const t=ii(String(e.params.vendor??""),String(e.params.plugin??"")),n=oi(e.path),r=t?.sideMenu.find(l=>l.controller===n)?.label??t?.label??jd(n)?.label??"";return(e.name==="create"||e.name==="record"||e.name==="preview")&&xo.value||r}function nw(e){const t=tw(e).trim();return t===""?fv:`${t} | ${fv}`}const pv=e=>e==="";const aw=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();const vv=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const rw=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,a)=>a?a.toUpperCase():n.toLowerCase());const lw=e=>{const t=rw(e);return t.charAt(0).toUpperCase()+t.slice(1)};var rl={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const ow=Symbol("lucide-icons");function iw(){return ct(ow,{})}const sw=({name:e,iconNode:t,absoluteStrokeWidth:n,"absolute-stroke-width":a,strokeWidth:r,"stroke-width":l,size:o,color:i,...s},{slots:c})=>{const{size:d,color:f,strokeWidth:m=2,absoluteStrokeWidth:p=!1,class:h=""}=iw(),x=_(()=>{const k=pv(n)||pv(a)||n===!0||a===!0||p===!0,g=r||l||m||rl["stroke-width"];return k?Number(g)*24/Number(o??d??rl.width):g});return Cn("svg",{...rl,...s,width:o??d??rl.width,height:o??d??rl.height,stroke:i??f??rl.stroke,"stroke-width":x.value,class:aw("lucide",h,...e?[`lucide-${vv(lw(e))}-icon`,`lucide-${vv(e)}`]:["lucide-icon"])},[...t.map(k=>Cn(...k)),...c.default?[c.default()]:[]])};const ve=(e,t)=>(n,{slots:a,attrs:r})=>Cn(sw,{...r,...n,iconNode:t,name:e},a.default?{default:a.default}:void 0);const uw=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],cw=ve("archive",uw);const dw=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],jy=ve("arrow-down",dw);const fw=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],si=ve("arrow-left",fw);const pw=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],vw=ve("arrow-right",pw);const mw=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Uy=ve("arrow-up-down",mw);const hw=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],Hy=ve("arrow-up-right",hw);const yw=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Wy=ve("arrow-up",yw);const gw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]],bw=ve("ban",gw);const _w=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],xw=ve("bell",_w);const kw=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],ww=ve("bold",kw);const $w=[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]],Cw=ve("book",$w);const Sw=[["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],Ew=ve("bookmark",Sw);const Aw=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],Tw=ve("box",Aw);const Dw=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],Ow=ve("briefcase",Dw);const Mw=[["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3",key:"cabbwy"}],["rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",key:"1uxh74"}]],Pw=ve("building",Mw);const Rw=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],Ky=ve("calendar",Rw);const Iw=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],qw=ve("camera",Iw);const Nw=[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["circle",{cx:"8",cy:"10",r:"2",key:"1xl4ub"}],["path",{d:"M8 12h8",key:"1wcyev"}],["circle",{cx:"16",cy:"10",r:"2",key:"r14t7q"}],["path",{d:"m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3",key:"l01ucn"}]],Lw=ve("cassette-tape",Nw);const Bw=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M7 16h8",key:"srdodz"}],["path",{d:"M7 11h12",key:"127s9w"}],["path",{d:"M7 6h3",key:"w9rmul"}]],Fw=ve("chart-bar",Bw);const Vw=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],nr=ve("check",Vw);const zw=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],ar=ve("chevron-down",zw);const jw=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Gs=ve("chevron-left",jw);const Uw=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ui=ve("chevron-right",Uw);const Hw=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],Gy=ve("chevron-up",Hw);const Ww=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],gt=ve("circle-alert",Ww);const Kw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Gw=ve("circle-check",Kw);const Yw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Jw=ve("circle-question-mark",Yw);const Zw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Xw=ve("circle",Zw);const Qw=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],e2=ve("clipboard-list",Qw);const t2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],Wc=ve("clock",t2);const n2=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],a2=ve("cloud",n2);const r2=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],Yy=ve("code",r2);const l2=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Jy=ve("copy",l2);const o2=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],i2=ve("credit-card",o2);const s2=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],u2=ve("database",s2);const c2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M6 12c0-1.7.7-3.2 1.8-4.2",key:"oqkarx"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M18 12c0 1.7-.7 3.2-1.8 4.2",key:"1eah9h"}]],d2=ve("disc-3",c2);const f2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],p2=ve("disc",f2);const v2=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],Kc=ve("download",v2);const m2=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Zy=ve("external-link",m2);const h2=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],y2=ve("eye-off",h2);const g2=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],b2=ve("eye",g2);const _2=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],bl=ve("file-text",_2);const x2=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],k2=ve("file",x2);const w2=[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]],$2=ve("files",w2);const C2=[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]],S2=ve("flag",C2);const E2=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],A2=ve("folder",E2);const T2=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],D2=ve("funnel",T2);const O2=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],M2=ve("gauge",O2);const P2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],R2=ve("globe",P2);const I2=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],q2=ve("graduation-cap",I2);const N2=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],vs=ve("grip-vertical",N2);const L2=[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]],B2=ve("heading-3",L2);const F2=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]],V2=ve("heart",F2);const z2=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],j2=ve("house",z2);const U2=[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]],mv=ve("image-off",U2);const H2=[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19.5 3-3 3 3",key:"9vmjn0"}],["path",{d:"M17 22v-5.5",key:"1aa6fl"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]],W2=ve("image-up",H2);const K2=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],G2=ve("image",K2);const Y2=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]],J2=ve("inbox",Y2);const Z2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Ys=ve("info",Z2);const X2=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],Q2=ve("italic",X2);const e$=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],t$=ve("key-round",e$);const n$=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],a$=ve("key",n$);const r$=[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]],l$=ve("languages",r$);const o$=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],i$=ve("layout-grid",o$);const s$=[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]],u$=ve("leaf",s$);const c$=[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]],d$=ve("library",c$);const f$=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]],p$=ve("life-buoy",f$);const v$=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],Xy=ve("link",v$);const m$=[["path",{d:"M21 5H11",key:"us1j55"}],["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 19H11",key:"saa85w"}],["path",{d:"m7 8-4 4 4 4",key:"o5hrat"}]],h$=ve("list-indent-decrease",m$);const y$=[["path",{d:"M21 5H11",key:"us1j55"}],["path",{d:"M21 12H11",key:"wd7e0v"}],["path",{d:"M21 19H11",key:"saa85w"}],["path",{d:"m3 8 4 4-4 4",key:"1a3j6y"}]],g$=ve("list-indent-increase",y$);const b$=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],Qy=ve("list-ordered",b$);const _$=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],eg=ve("list",_$);const x$=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Sl=ve("loader-circle",x$);const k$=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],Tr=ve("lock",k$);const w$=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],tg=ve("log-out",w$);const $$=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],C$=ve("mail",$$);const S$=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],E$=ve("map-pin",S$);const A$=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],T$=ve("message-circle",A$);const D$=[["path",{d:"m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12",key:"80a601"}],["path",{d:"M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5",key:"j0ngtp"}],["circle",{cx:"16",cy:"7",r:"5",key:"d08jfb"}]],O$=ve("mic-vocal",D$);const M$=[["path",{d:"M5 12h14",key:"1ays0h"}]],ng=ve("minus",M$);const P$=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],R$=ve("network",P$);const I$=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],q$=ve("palette",I$);const N$=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],ag=ve("panel-left-close",N$);const L$=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],rg=ve("panel-left-open",L$);const B$=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],F$=ve("paperclip",B$);const V$=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],z$=ve("pause",V$);const j$=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Mo=ve("pencil",j$);const U$=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],H$=ve("phone",U$);const W$=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],K$=ve("play",W$);const G$=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ci=ve("plus",G$);const Y$=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],lg=ve("puzzle",Y$);const J$=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],Z$=ve("quote",J$);const X$=[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]],Q$=ve("redo-2",X$);const eC=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],tC=ve("refresh-cw",eC);const nC=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Wi=ve("rotate-ccw",nC);const aC=[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],og=ve("search-x",aC);const rC=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Js=ve("search",rC);const lC=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ig=ve("settings",lC);const oC=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],iC=ve("shield-check",oC);const sC=[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]],uC=ve("shopping-cart",sC);const cC=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],dC=ve("sliders-horizontal",cC);const fC=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],pC=ve("star",fC);const vC=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Zs=ve("sun",vC);const mC=[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]],hC=ve("table",mC);const yC=[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]],gC=ve("tags",yC);const bC=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Ur=ve("trash-2",bC);const _C=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],sg=ve("triangle-alert",_C);const xC=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],kC=ve("trophy",xC);const wC=[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]],$C=ve("underline",wC);const CC=[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]],SC=ve("undo-2",CC);const EC=[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]],AC=ve("unlink",EC);const TC=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Ki=ve("upload",TC);const DC=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],ug=ve("user-minus",DC);const OC=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],cg=ve("user-plus",OC);const MC=[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]],PC=ve("user-round",MC);const RC=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],IC=ve("user",RC);const qC=[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]],NC=ve("users-round",qC);const LC=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],BC=ve("users",LC);const FC=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],VC=ve("wand-sparkles",FC);const zC=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],jC=ve("wrench",zC);const UC=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],hn=ve("x",UC),hv={archive:cw,"arrow-down":jy,"arrow-left":si,"arrow-right":vw,"arrow-up":Wy,"arrow-up-right":Hy,bell:xw,book:Cw,bookmark:Ew,box:Tw,briefcase:Ow,building:Pw,calendar:Ky,camera:qw,"cassette-tape":Lw,"chart-bar":Fw,check:nr,"chevron-down":ar,"chevron-left":Gs,"chevron-right":ui,circle:Xw,"circle-alert":gt,"circle-check":Gw,"circle-question-mark":Jw,"clipboard-list":e2,clock:Wc,cloud:a2,code:Yy,copy:Jy,"credit-card":i2,database:u2,disc:p2,"disc-3":d2,download:Kc,"external-link":Zy,file:k2,"file-text":bl,files:$2,flag:S2,folder:A2,funnel:D2,gauge:M2,globe:R2,"graduation-cap":q2,heart:V2,house:j2,image:G2,inbox:J2,info:Ys,key:a$,languages:l$,"layout-grid":i$,leaf:u$,library:d$,"life-buoy":p$,link:Xy,list:eg,"list-ordered":Qy,lock:Tr,"log-out":tg,mail:C$,"map-pin":E$,"message-circle":T$,"mic-vocal":O$,minus:ng,network:R$,palette:q$,"panel-left-close":ag,"panel-left-open":rg,paperclip:F$,pause:z$,pencil:Mo,phone:H$,play:K$,plus:ci,puzzle:lg,"refresh-cw":tC,search:Js,"search-x":og,settings:ig,"shield-check":iC,"shopping-cart":uC,star:pC,sun:Zs,table:hC,tags:gC,"trash-2":Ur,"triangle-alert":sg,trophy:kC,upload:Ki,user:IC,"user-minus":ug,"user-plus":cg,users:BC,"users-round":NC,"wand-sparkles":VC,wrench:jC,x:hn},HC={"icon-archive":"archive","icon-bar-chart":"chart-bar","icon-bell":"bell","icon-book":"book","icon-bookmark":"bookmark","icon-briefcase":"briefcase","icon-building":"building","icon-calendar":"calendar","icon-camera":"camera","icon-check":"check","icon-check-circle":"circle-check","icon-circle":"circle","icon-clock":"clock","icon-clock-o":"clock","icon-cloud":"cloud","icon-code":"code","icon-cog":"settings","icon-cogs":"settings","icon-comment":"message-circle","icon-comments":"message-circle","icon-comments-o":"message-circle","icon-copy":"copy","icon-credit-card":"credit-card","icon-cube":"box","icon-dashboard":"gauge","icon-database":"database","icon-download":"download","icon-edit":"pencil","icon-envelope":"mail","icon-envelope-o":"mail","icon-exclamation-triangle":"triangle-alert","icon-external-link":"external-link","icon-file":"file","icon-file-o":"file","icon-file-text":"file-text","icon-file-text-o":"file-text","icon-files-o":"files","icon-filter":"funnel","icon-flag":"flag","icon-folder":"folder","icon-folder-o":"folder","icon-globe":"globe","icon-graduation-cap":"graduation-cap","icon-group":"users","icon-heart":"heart","icon-home":"house","icon-inbox":"inbox","icon-info-circle":"info","icon-key":"key","icon-language":"languages","icon-leaf":"leaf","icon-life-ring":"life-buoy","icon-link":"link","icon-list":"list","icon-list-alt":"clipboard-list","icon-list-ol":"list-ordered","icon-list-ul":"list","icon-lock":"lock","icon-magic":"wand-sparkles","icon-map-marker":"map-pin","icon-minus":"minus","icon-paperclip":"paperclip","icon-pause":"pause","icon-pencil":"pencil","icon-phone":"phone","icon-photo":"image","icon-picture-o":"image","icon-play":"play","icon-plus":"plus","icon-question":"circle-question-mark","icon-question-circle":"circle-question-mark","icon-refresh":"refresh-cw","icon-search":"search","icon-shopping-cart":"shopping-cart","icon-sign-out":"log-out","icon-sitemap":"network","icon-star":"star","icon-table":"table","icon-tachometer":"gauge","icon-tags":"tags","icon-th":"layout-grid","icon-th-large":"layout-grid","icon-times":"x","icon-trash":"trash-2","icon-trash-o":"trash-2","icon-trophy":"trophy","icon-upload":"upload","icon-user":"user","icon-users":"users","icon-warning":"triangle-alert","icon-wrench":"wrench"},yv=Zs;function Bu(e,t){return Object.hasOwn(e,t)?e[t]:void 0}function Xs(e){if(!e)return yv;const t=e.trim();return Bu(hv,t)??Bu(hv,Bu(HC,t)??"")??yv}const dg="summer-admin.sidebar",WC="(max-width: 1099px)",Qs=P(!1),Po=P(!1),KC=_(()=>Po.value||Qs.value);function fg(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function GC(){try{return fg()?.getItem(dg)==="true"}catch{return!1}}function pg(e){Qs.value=e;try{fg()?.setItem(dg,e?"true":"false")}catch{}}function YC(){if(Qs.value=GC(),typeof window>"u"||typeof window.matchMedia!="function")return Po.value=!1,()=>{};const e=window.matchMedia(WC);Po.value=e.matches;const t=n=>{Po.value=n.matches};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}function vg(){return{collapsed:KC,narrow:Mt(Po),manual:Mt(Qs),setCollapsed:pg,watchViewport:YC}}const JC=["id","aria-label"],ZC={class:"px-2.5 pt-1 pb-2 text-[14px] font-bold","aria-hidden":"true"},XC=le({__name:"SectionFlyout",props:{entry:{},id:{}},emits:["escape","leave","navigate"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=En(),o=P(null),i=_(()=>oi(l.path)),s=_(()=>a.entry.sideMenu.flatMap(p=>{const h=In(p.controller);return h?[{item:p,to:h,icon:Xs(p.icon),current:i.value===p.controller}]:[]}));function c(){return[...o.value?.querySelectorAll('[role="menuitem"]')??[]]}async function d(){await Ze(),c()[0]?.focus()}function f(p){return!!p&&!!o.value?.contains(p)}function m(p){const h=c(),x=h.indexOf(document.activeElement);switch(p.key){case"ArrowDown":p.preventDefault(),h[(x+1)%h.length]?.focus();break;case"ArrowUp":p.preventDefault(),h[(x-1+h.length)%h.length]?.focus();break;case"Home":p.preventDefault(),h[0]?.focus();break;case"End":p.preventDefault(),h[h.length-1]?.focus();break;case"Escape":p.preventDefault(),r("escape");break;case"Tab":r("leave");break}}return t({focusFirst:d,contains:f}),(p,h)=>(v(),b("div",{id:e.id,ref_key:"root",ref:o,role:"menu","data-section-flyout":"","aria-label":e.entry.label,class:"fixed top-3 left-[calc(var(--spacing-rail)+8px)] z-40 flex w-[230px] flex-col gap-0.5 rounded-[14px] border border-border bg-surface p-2 text-text shadow-pop",onKeydown:m},[S("span",ZC,T(e.entry.label),1),(v(!0),b(ye,null,qe(s.value,x=>(v(),U(u(ea),{key:x.item.code,to:x.to,role:"menuitem",tabindex:"-1","aria-current":x.current?"page":void 0,class:ge([x.current?"bg-sel font-semibold text-text":"font-medium text-muted hover:bg-hover hover:text-text","flex h-[38px] items-center gap-3 rounded-tab px-2.5 no-underline transition-colors duration-150 ease-out"]),onClick:h[0]||(h[0]=k=>r("navigate"))},{default:B(()=>[(v(),U(zt(x.icon),{size:18,"aria-hidden":"true"})),S("span",null,T(x.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],40,JC))}}),QC=["aria-label"],eS={class:"mb-3.5 flex size-10 items-center justify-center rounded-inner bg-accent-soft",title:"SummerCMS"},tS={class:"max-w-full [overflow-wrap:anywhere]"},nS=["aria-label","title"],aS={class:"max-w-full [overflow-wrap:anywhere]"},rS=200,lS=le({__name:"PluginRail",setup(e){const t=En(),{collapsed:n,narrow:a,setCollapsed:r}=vg(),l=_(()=>ii(String(t.params.vendor??""),String(t.params.plugin??""))),o=_(()=>t.path==="/settings"||t.path.startsWith("/settings/")||l.value===null&&jd(oi(t.path))!==null),i=_(()=>fs.value.map(W=>({entry:W,to:zd(W)??"/",icon:Xs(W.icon),current:l.value?.code===W.code}))),s=P(null),c=P(null),d=_(()=>fs.value.find(W=>W.code===s.value)??null),f=new Map;let m=null,p=!1;function h(W){return`section-flyout-${W}`}function x(W,$){const q=$?.$el;q instanceof HTMLElement?f.set(W,q):f.delete(W)}function k(){m!==null&&(clearTimeout(m),m=null)}function g(){k(),s.value=null}function C(){k(),m=setTimeout(()=>{m=null;const W=document.activeElement,$=s.value;$!==null&&(f.get($)===W||c.value?.contains(W))||(s.value=null)},rS)}function E(W){n.value&&(k(),s.value=W)}function D(W){p||E(W)}async function O(W,$){n.value&&(W.key==="Enter"||W.key==="ArrowDown"?(W.preventDefault(),E($),await Ze(),await c.value?.focusFirst()):W.key==="Escape"&&s.value!==null&&(W.preventDefault(),g()))}function L(){const W=s.value;g(),W!==null&&(p=!0,f.get(W)?.focus(),p=!1)}function z(){r(!1),Ze(()=>document.querySelector("[data-sidebar-collapse]")?.focus())}return je(n,W=>{W||g()}),At(k),(W,$)=>(v(),b("nav",{"aria-label":u(w)("backend::lang.nav.plugins"),class:"sticky top-0 flex h-screen w-rail shrink-0 flex-col items-center gap-1.5 self-start overflow-y-auto border-r border-side-border bg-side pt-3.5 pb-3"},[S("span",eS,[F(u(Zs),{size:22,class:"text-accent","aria-hidden":"true"})]),(v(!0),b(ye,null,qe(i.value,q=>(v(),U(u(ea),{key:q.entry.code,ref_for:!0,ref:J=>x(q.entry.code,J),to:q.to,"data-rail-item":q.entry.code,"aria-current":q.current?"page":void 0,"aria-haspopup":u(n)?"menu":void 0,"aria-expanded":u(n)?s.value===q.entry.code?"true":"false":void 0,"aria-controls":u(n)&&s.value===q.entry.code?h(q.entry.code):void 0,class:ge([q.current?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[92px] flex-col items-center gap-1 rounded-inner px-1 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"]),onMouseenter:J=>E(q.entry.code),onMouseleave:C,onFocus:J=>D(q.entry.code),onBlur:C,onKeydown:J=>O(J,q.entry.code)},{default:B(()=>[(v(),U(zt(q.icon),{size:20,"aria-hidden":"true"})),S("span",tS,T(q.entry.label),1)]),_:2},1032,["to","data-rail-item","aria-current","aria-haspopup","aria-expanded","aria-controls","class","onMouseenter","onFocus","onKeydown"]))),128)),u(n)&&d.value?(v(),U(XC,{key:0,id:h(d.value.code),ref_key:"flyout",ref:c,entry:d.value,onMouseenter:k,onMouseleave:C,onFocusin:k,onFocusout:C,onEscape:L,onLeave:C,onNavigate:g},null,8,["id","entry"])):re("",!0),$[0]||($[0]=S("span",{class:"flex-1","aria-hidden":"true"},null,-1)),u(n)&&!u(a)?(v(),b("button",{key:1,type:"button","data-sidebar-expand":"","aria-label":u(w)("backend::lang.nav.expand"),title:u(w)("backend::lang.nav.expand"),class:"mb-1 flex size-10 items-center justify-center rounded-inner text-side-text transition-colors duration-150 ease-out hover:bg-side-hover hover:text-white",onClick:z},[F(u(rg),{size:20,"aria-hidden":"true"})],8,nS)):re("",!0),u(Qk)?(v(),U(u(ea),{key:2,to:"/settings","data-rail-settings":"","aria-current":o.value?"page":void 0,class:ge([o.value?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[92px] flex-col items-center gap-1 rounded-inner px-1 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"])},{default:B(()=>[F(u(ig),{size:20,"aria-hidden":"true"}),S("span",aS,T(u(w)("backend::lang.nav.settings")),1)]),_:1},8,["aria-current","class"])):re("",!0)],8,QC))}}),oS=["aria-label"],iS={class:"mb-3.5 flex h-10 items-center justify-between gap-2 pl-2"},sS={class:"truncate text-[16px] font-bold"},uS=["aria-label","title"],cS=le({__name:"SectionPanel",props:{entry:{}},setup(e){const t=e,n=En(),a=_(()=>oi(n.path)),r=_(()=>t.entry.sideMenu.flatMap(o=>{const i=In(o.controller);return i?[{item:o,to:i,icon:Xs(o.icon),current:a.value===o.controller}]:[]}));function l(){pg(!0),Ze(()=>document.querySelector("[data-sidebar-expand]")?.focus())}return(o,i)=>(v(),b("aside",{"aria-label":u(w)("backend::lang.nav.sections"),class:"sticky top-0 flex h-screen w-panel shrink-0 flex-col gap-0.5 self-start overflow-y-auto border-r border-border bg-surface px-3 py-3.5"},[S("div",iS,[S("span",sS,T(e.entry.label),1),S("button",{type:"button","data-sidebar-collapse":"","aria-label":u(w)("backend::lang.nav.collapse"),title:u(w)("backend::lang.nav.collapse"),class:"flex size-[30px] shrink-0 items-center justify-center rounded-tab text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text",onClick:l},[F(u(ag),{size:18,"aria-hidden":"true"})],8,uS)]),(v(!0),b(ye,null,qe(r.value,s=>(v(),U(u(ea),{key:s.item.code,to:s.to,"aria-current":s.current?"page":void 0,class:ge([s.current?"bg-sel font-semibold text-text":"font-medium text-muted hover:bg-hover hover:text-text","flex h-nav items-center gap-3 rounded-control px-3 no-underline transition-colors duration-150 ease-out"])},{default:B(()=>[(v(),U(zt(s.icon),{size:18,"aria-hidden":"true"})),S("span",null,T(s.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],8,oS))}}),dS=["aria-label"],fS={class:"flex min-w-0 items-center gap-2"},pS=["aria-current"],vS=le({__name:"Breadcrumbs",setup(e){const t=En(),n=_(()=>{if(t.name==="account")return[{label:w("backend::lang.myaccount.menu_label")}];if(t.name==="settings"||t.name==="settings-form"){const i=[{label:w("backend::lang.nav.settings"),to:"/settings"}],s=t.name==="settings-form"?ps(String(t.params.code??"")):null;return s&&i.push({label:s.label}),i}const a=ii(String(t.params.vendor??""),String(t.params.plugin??"")),r=oi(t.path);if(!a){const i=jd(r);if(!i)return[];const s=[{label:w("backend::lang.nav.settings"),to:"/settings"},{label:i.label,to:zy(i)}];return(t.name==="record"||t.name==="create")&&xo.value!==""&&s.push({label:xo.value}),s}const l=[{label:a.label,to:zd(a)??void 0}],o=a.sideMenu.find(i=>i.controller===r)??null;return o&&l.push({label:o.label,to:In(o.controller)??void 0}),(t.name==="record"||t.name==="create")&&xo.value!==""&&l.push({label:xo.value}),l});return(a,r)=>(v(),b("nav",{"aria-label":u(w)("backend::lang.nav.breadcrumbs"),class:"min-w-0"},[S("ol",fS,[(v(!0),b(ye,null,qe(n.value,(l,o)=>(v(),b("li",{key:o,"data-crumb":"",class:"flex min-w-0 items-center gap-2"},[o>0?(v(),U(u(ui),{key:0,size:14,class:"shrink-0 text-muted","aria-hidden":"true"})):re("",!0),o===n.value.length-1||!l.to?(v(),b("span",{key:1,"aria-current":o===n.value.length-1?"page":void 0,class:ge([o===n.value.length-1?"font-semibold text-text":"text-muted","truncate"])},T(l.label),11,pS)):(v(),U(u(ea),{key:2,to:l.to,class:"truncate text-muted no-underline transition-colors duration-150 ease-out hover:text-text"},{default:B(()=>[we(T(l.label),1)]),_:2},1032,["to"]))]))),128))])],8,dS))}});function gv(e){return typeof e=="string"?`'${e}'`:new hS().serialize(e)}const mS=" _-,;:!?.'\"()[]{}@*/\\&#%`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz",Si=(function(){const e=new Uint8Array(128);for(let t=0;t<69;t++)e[mS.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function Fu(e,t){if(e===t)return 0;const n=Math.min(e.length,t.length);let a=0;for(let r=0;ro?-1:1)}return e.length!==t.length?e.lengththis.compare(o[0],i[0]));let l=`${n}{`;for(let o=0;othis.compare(a,r)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})();function Uo(e,t){return e===t||gv(e)===gv(t)}function Ei(e,t){let n=e;const a=t.toString(),r=a.indexOf("."),l=r>=0?a.length-r:0;if(l>0){const o=10**l;n=Math.round(n*o)/o}return n}function Vu(e,t,n,a){t=Number(t),n=Number(n);const r=(e-(Number.isNaN(t)?0:t))%a;let l=Ei(Math.abs(r)*2>=a?e+Math.sign(r)*(a-Math.abs(r)):e-r,a);return Number.isNaN(t)?!Number.isNaN(n)&&l>n&&(l=Math.floor(Ei(n/a,a))*a):ln&&(l=t+Math.floor(Ei((n-t)/a,a))*a),l=Ei(l,a),l}function Ct(e,t){const n=typeof e=="string"&&!t?`${e}Context`:t,a=Symbol(n);return[o=>{const i=ct(a,o);if(i||i===null)return i;throw new Error(`Injection \`${a.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(", ")}`:`\`${e}\``}`)},o=>(kt(a,o),o)]}function It(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function Ud(e,t,n){const a=n.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),a.dispatchEvent(r)}function vn(e){return e==null}function bv(e,t){return vn(e)?!1:Array.isArray(e)?e.some(n=>Uo(n,t)):Uo(e,t)}function yS(e,t){var n;const a=ni();return gn(()=>{a.value=e()},{...t,flush:(n=t?.flush)!==null&&n!==void 0?n:"sync"}),Mt(a)}function mg(e,t){return wd()?(ih(e,t),!0):!1}function gS(e){let t=!1,n;const a=oh(!0);return((...r)=>(t||(n=a.run(()=>e(...r)),t=!0),n))}const Aa=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const bS=e=>typeof e<"u",_S=Object.prototype.toString,xS=e=>_S.call(e)==="[object Object]",_v=kS();function kS(){var e,t,n;return Aa&&!!(!((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)===null||t===void 0||(t=t.navigator)===null||t===void 0?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test((n=window)===null||n===void 0?void 0:n.navigator.userAgent))}function zu(e){return Array.isArray(e)?e:[e]}function wS(e){return ra()}function hg(e){if(!Aa)return e;let t=0,n,a;const r=()=>{t-=1,a&&t<=0&&(a.stop(),n=void 0,a=void 0)};return((...l)=>(t+=1,a||(a=oh(!0),n=a.run(()=>e(...l))),mg(r),n))}function $S(e){return On(_t(e)?new Proxy({},{get(t,n,a){return u(Reflect.get(e.value,n,a))},set(t,n,a){return _t(e.value[n])&&!_t(a)?e.value[n].value=a:e.value[n]=a,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}):e)}function CS(e){return $S(_(e))}function SS(e,...t){const n=t.flat(),a=n[0];return CS(()=>Object.fromEntries(typeof a=="function"?Object.entries(Gt(e)).filter(([r,l])=>!a(en(l),r)):Object.entries(Gt(e)).filter(r=>!n.includes(r[0]))))}function ES(e,t=1e4){return R0((n,a)=>{let r=en(e),l;const o=()=>setTimeout(()=>{r=en(e),a()},en(t));return mg(()=>{clearTimeout(l)}),{get(){return n(),r},set(i){r=i,a(),clearTimeout(l),l=o()}}})}function AS(e,t){wS()&&At(e,t)}function TS(e,t,n){return je(e,t,{...n,immediate:!0})}const Hd=Aa?window:void 0;function Hr(e){var t;const n=en(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Bl(...e){const t=(a,r,l,o)=>(a.addEventListener(r,l,o),()=>a.removeEventListener(r,l,o)),n=_(()=>{const a=zu(en(e[0])).filter(r=>r!=null);return a.every(r=>typeof r!="string")?a:void 0});return TS(()=>{var a,r;return[(a=(r=n.value)===null||r===void 0?void 0:r.map(l=>Hr(l)))!==null&&a!==void 0?a:[Hd].filter(l=>l!=null),zu(en(n.value?e[1]:e[0])),zu(u(n.value?e[2]:e[1])),en(n.value?e[3]:e[2])]},([a,r,l,o],i,s)=>{if(!a?.length||!r?.length||!l?.length)return;const c=xS(o)?{...o}:o,d=a.flatMap(f=>r.flatMap(m=>l.map(p=>t(f,m,p,c))));s(()=>{d.forEach(f=>f())})},{flush:"post"})}function DS(){const e=ni(!1),t=ra();return t&&wt(()=>{e.value=!0},t),e}function OS(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function MS(...e){let t,n,a={};e.length===3?(t=e[0],n=e[1],a=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],a=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Hd,eventName:l="keydown",passive:o=!1,dedupe:i=!1}=a,s=OS(t);return Bl(r,l,d=>{d.repeat&&en(i)||s(d)&&n(d)},o)}function PS(e){return JSON.parse(JSON.stringify(e))}function Pt(e,t,n,a={}){var r,l;const{clone:o=!1,passive:i=!1,eventName:s,deep:c=!1,defaultValue:d,shouldEmit:f}=a,m=ra(),p=n||m?.emit||(m==null||(r=m.$emit)===null||r===void 0?void 0:r.bind(m))||(m==null||(l=m.proxy)===null||l===void 0||(l=l.$emit)===null||l===void 0?void 0:l.bind(m?.proxy));let h=s;t||(t="modelValue"),h=h||`update:${t.toString()}`;const x=C=>o?typeof o=="function"?o(C):PS(C):C,k=()=>bS(e[t])?x(e[t]):d,g=C=>{f?f(C)&&p(h,C):p(h,C)};if(i){const C=P(k());let E=!1;return je(()=>e[t],D=>{E||(E=!0,C.value=x(D),Ze(()=>E=!1))}),je(C,D=>{!E&&(D!==e[t]||c)&&g(D)},{deep:c}),C}else return _({get(){return k()},set(C){g(C)}})}function Wd(e){return e?e.flatMap(t=>t.type===ye?Wd(t.children):[t]):[]}const RS=["INPUT","TEXTAREA"];function xv(e,t,n,a={}){if(!t||a.enableIgnoredElement&&RS.includes(t.nodeName))return null;const{arrowKeyOptions:r="both",attributeName:l="[data-reka-collection-item]",itemsArray:o=[],loop:i=!0,dir:s="ltr",preventScroll:c=!0,focus:d=!1}=a,[f,m,p,h,x,k]=[e.key==="ArrowRight",e.key==="ArrowLeft",e.key==="ArrowUp",e.key==="ArrowDown",e.key==="Home",e.key==="End"],g=p||h,C=f||m;if(!x&&!k&&(!g&&!C||r==="vertical"&&C||r==="horizontal"&&g))return null;const E=n?Array.from(n.querySelectorAll(l)):o;if(!E.length)return null;c&&e.preventDefault();let D=null;return C||g?D=yg(E,t,{goForward:g?h:s==="ltr"?f:m,loop:i}):x?D=E.at(0)||null:k&&(D=E.at(-1)||null),d&&D?.focus(),D}function yg(e,t,n,a=e.includes(t)?e.length:e.length+1){if(--a===0)return null;const r=e.indexOf(t);let l;if(r===-1?l=n.goForward?0:e.length-1:l=n.goForward?r+1:r-1,!n.loop&&(l<0||l>=e.length))return null;const o=(l+e.length)%e.length,i=e[o];return i?i.hasAttribute("disabled")&&i.getAttribute("disabled")!=="false"?yg(e,i,n,a):i:null}const[eu]=Ct("ConfigProvider");function ju(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Gc(e,t,n=".",a){if(!ju(t))return Gc(e,{},n,a);const r={...t};for(const l of Object.keys(e)){if(l==="__proto__"||l==="constructor")continue;const o=e[l];o!=null&&(a&&a(r,l,o,n)||(Array.isArray(o)&&Array.isArray(r[l])?r[l]=[...o,...r[l]]:ju(o)&&ju(r[l])?r[l]=Gc(o,r[l],(n?`${n}.`:"")+l.toString(),a):r[l]=o))}return r}function IS(e){return(...t)=>t.reduce((n,a)=>Gc(n,a,"",e),{})}const gg=IS(),qS=hg(()=>{const e=P(new Map),t=P(),n=_(()=>{for(const o of e.value.values())if(o)return!0;return!1}),a=eu({scrollBody:P(!0)});let r=null;const l=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=t.value??"",_v&&r?.(),t.value=void 0};return je(n,(o,i)=>{if(!Aa)return;if(!o){i&&l();return}t.value===void 0&&(t.value=document.body.style.overflow);const s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},d=a.scrollBody?.value?typeof a.scrollBody.value=="object"?gg({padding:a.scrollBody.value.padding===!0?s:a.scrollBody.value.padding,margin:a.scrollBody.value.margin===!0?s:a.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof d.padding=="number"?`${d.padding}px`:String(d.padding),document.body.style.marginRight=typeof d.margin=="number"?`${d.margin}px`:String(d.margin),document.documentElement.style.setProperty("--scrollbar-width",`${s}px`),document.body.style.overflow="hidden"),_v&&(r=Bl(document,"touchmove",f=>NS(f),{passive:!1})),Ze(()=>{n.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function Kd(e){const t=Math.random().toString(36).substring(2,7),n=qS();n.value.set(t,e??!1);const a=_({get:()=>n.value.get(t)??!1,set:r=>n.value.set(t,r)});return AS(()=>{n.value.delete(t)}),a}function bg(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function El(e,t){return e-t*Math.floor(e/t)}const _g=1721426;function Or(e,t,n,a){t=di(e,t);let r=t-1,l=-2;return n<=2?l=0:Ya(t)&&(l=-1),_g-1+365*r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400)+Math.floor((367*n-362)/12+l+a)}function Ya(e){return e%4===0&&(e%100!==0||e%400===0)}function di(e,t){return e==="BC"?1-t:t}function tu(e){let t="AD";return e<=0&&(t="BC",e=1-e),[t,e]}const LS={standard:[31,28,31,30,31,30,31,31,30,31,30,31],leapyear:[31,29,31,30,31,30,31,31,30,31,30,31]};class qn{fromJulianDay(t){let n=t,a=n-_g,r=Math.floor(a/146097),l=El(a,146097),o=Math.floor(l/36524),i=El(l,36524),s=Math.floor(i/1461),c=El(i,1461),d=Math.floor(c/365),f=r*400+o*100+s*4+d+(o!==4&&d!==4?1:0),[m,p]=tu(f),h=n-Or(m,p,1,1),x=2;n0&&t===Nn()&&!wg())return new Date(e).getTimezoneOffset()*-6e4;let{year:n,month:a,day:r,hour:l,minute:o,second:i}=Cg(e,t);return $g(n,a,r,l,o,i,0)-Math.floor(e/1e3)*1e3}const Sv=new Map;function Cg(e,t){let n=Sv.get(t);n||(n=new Intl.DateTimeFormat("en-US",{timeZone:t,hour12:!1,era:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),Sv.set(t,n));let a=n.formatToParts(new Date(e)),r={};for(let l of a)l.type!=="literal"&&(r[l.type]=l.value);return{year:r.era==="BC"||r.era==="B"?-r.year+1:+r.year,month:+r.month,day:+r.day,hour:r.hour==="24"?0:+r.hour,minute:+r.minute,second:+r.second}}const Ev=864e5;function WS(e,t,n,a){return(n===a?[n]:[n,a]).filter(l=>KS(e,t,l))}function KS(e,t,n){let a=Cg(n,t);return e.year===a.year&&e.month===a.month&&e.day===a.day&&e.hour===a.hour&&e.minute===a.minute&&e.second===a.second}function va(e,t,n="compatible"){let a=ta(e);if(t==="UTC")return Fl(a);if(t===Nn()&&n==="compatible"&&!wg()){a=on(a,new qn);let s=new Date,c=di(a.era,a.year);return s.setFullYear(c,a.month-1,a.day),s.setHours(a.hour,a.minute,a.second,a.millisecond),s.getTime()}let r=Fl(a),l=Jc(r-Ev,t),o=Jc(r+Ev,t),i=WS(a,t,r-l,r-o);if(i.length===1)return i[0];if(i.length>1)switch(n){case"compatible":case"earlier":return i[0];case"later":return i[i.length-1];case"reject":throw new RangeError("Multiple possible absolute times found")}switch(n){case"earlier":return Math.min(r-l,r-o);case"compatible":case"later":return Math.max(r-l,r-o);case"reject":throw new RangeError("No such absolute time found")}}function Sg(e,t,n="compatible"){return new Date(va(e,t,n))}function ma(e,t){let n=Jc(e,t),a=new Date(e+n),r=a.getUTCFullYear(),l=a.getUTCMonth()+1,o=a.getUTCDate(),i=a.getUTCHours(),s=a.getUTCMinutes(),c=a.getUTCSeconds(),d=a.getUTCMilliseconds();return new $a(r<1?"BC":"AD",r<1?-r+1:r,l,o,t,n,i,s,c,d)}function GS(e){return new mt(e.calendar,e.era,e.year,e.month,e.day)}function ta(e,t){let n=0,a=0,r=0,l=0;if("timeZone"in e)({hour:n,minute:a,second:r,millisecond:l}=e);else if("hour"in e&&!t)return e;return t&&({hour:n,minute:a,second:r,millisecond:l}=t),new lr(e.calendar,e.era,e.year,e.month,e.day,n,a,r,l)}function on(e,t){if(Yd(e.calendar,t))return e;let n=t.fromJulianDay(e.calendar.toJulianDay(e)),a=e.copy();return a.calendar=t,a.era=n.era,a.year=n.year,a.month=n.month,a.day=n.day,Nr(a),a}function Jd(e,t,n){if(e instanceof $a)return e.timeZone===t?e:au(e,t);let a=va(e,t,n);return ma(a,t)}function YS(e){let t=Fl(e)-e.offset;return new Date(t)}function au(e,t){let n=Fl(e)-e.offset;return on(ma(n,t),e.calendar)}const uo=36e5;function ru(e,t){let n=e.copy(),a="hour"in n?Dg(n,t):0;Zc(n,t.years||0),n.calendar.balanceYearMonth&&n.calendar.balanceYearMonth(n,e),n.month+=t.months||0,Xc(n),Eg(n),n.day+=(t.weeks||0)*7,n.day+=t.days||0,n.day+=a,JS(n),n.calendar.balanceDate&&n.calendar.balanceDate(n),n.year<1&&(n.year=1,n.month=1,n.day=1);let r=n.calendar.getYearsInEra(n);if(n.year>r){let o=n.calendar.isInverseEra?.(n);n.year=r,n.month=o?1:n.calendar.getMonthsInYear(n),n.day=o?1:n.calendar.getDaysInMonth(n)}n.month<1&&(n.month=1,n.day=1);let l=n.calendar.getMonthsInYear(n);return n.month>l&&(n.month=l,n.day=n.calendar.getDaysInMonth(n)),n.day=Math.max(1,Math.min(n.calendar.getDaysInMonth(n),n.day)),n}function Zc(e,t){e.calendar.isInverseEra?.(e)&&(t=-t),e.year+=t}function Xc(e){for(;e.month<1;)Zc(e,-1),e.month+=e.calendar.getMonthsInYear(e);let t=0;for(;e.month>(t=e.calendar.getMonthsInYear(e));)e.month-=t,Zc(e,1)}function JS(e){for(;e.day<1;)e.month--,Xc(e),e.day+=e.calendar.getDaysInMonth(e);for(;e.day>e.calendar.getDaysInMonth(e);)e.day-=e.calendar.getDaysInMonth(e),e.month++,Xc(e)}function Eg(e){e.month=Math.max(1,Math.min(e.calendar.getMonthsInYear(e),e.month)),e.day=Math.max(1,Math.min(e.calendar.getDaysInMonth(e),e.day))}function Nr(e){e.calendar.constrainDate&&e.calendar.constrainDate(e),e.year=Math.max(1,Math.min(e.calendar.getYearsInEra(e),e.year)),Eg(e)}function Zd(e){let t={};for(let n in e)typeof e[n]=="number"&&(t[n]=-e[n]);return t}function Ag(e,t){return ru(e,Zd(t))}function Xd(e,t){let n=e.copy();return t.era!=null&&(n.era=t.era),t.year!=null&&(n.year=t.year),t.month!=null&&(n.month=t.month),t.day!=null&&(n.day=t.day),Nr(n),n}function Ho(e,t){let n=e.copy();return t.hour!=null&&(n.hour=t.hour),t.minute!=null&&(n.minute=t.minute),t.second!=null&&(n.second=t.second),t.millisecond!=null&&(n.millisecond=t.millisecond),Tg(n),n}function ZS(e){e.second+=Math.floor(e.millisecond/1e3),e.millisecond=Ai(e.millisecond,1e3),e.minute+=Math.floor(e.second/60),e.second=Ai(e.second,60),e.hour+=Math.floor(e.minute/60),e.minute=Ai(e.minute,60);let t=Math.floor(e.hour/24);return e.hour=Ai(e.hour,24),t}function Tg(e){e.millisecond=Math.max(0,Math.min(e.millisecond,999)),e.second=Math.max(0,Math.min(e.second,59)),e.minute=Math.max(0,Math.min(e.minute,59)),e.hour=Math.max(0,Math.min(e.hour,23))}function Ai(e,t){let n=e%t;return n<0&&(n+=t),n}function Dg(e,t){return e.hour+=t.hours||0,e.minute+=t.minutes||0,e.second+=t.seconds||0,e.millisecond+=t.milliseconds||0,ZS(e)}function Og(e,t){let n=e.copy();return Dg(n,t),n}function XS(e,t){return Og(e,Zd(t))}function Qd(e,t,n,a){let r=e.copy();switch(t){case"era":{let l=e.calendar.getEras(),o=l.indexOf(e.era);if(o<0)throw new Error("Invalid era: "+e.era);o=ha(o,n,0,l.length-1,a?.round),r.era=l[o],Nr(r);break}case"year":r.calendar.isInverseEra?.(r)&&(n=-n),r.year=ha(e.year,n,-1/0,9999,a?.round),r.year===-1/0&&(r.year=1),r.calendar.balanceYearMonth&&r.calendar.balanceYearMonth(r,e);break;case"month":r.month=ha(e.month,n,1,e.calendar.getMonthsInYear(e),a?.round);break;case"day":r.day=ha(e.day,n,1,e.calendar.getDaysInMonth(e),a?.round);break;default:throw new Error("Unsupported field "+t)}return e.calendar.balanceDate&&e.calendar.balanceDate(r),Nr(r),r}function ef(e,t,n,a){let r=e.copy();switch(t){case"hour":{let l=e.hour,o=0,i=23;if(a?.hourCycle===12){let s=l>=12;o=s?12:0,i=s?23:11}r.hour=ha(l,n,o,i,a?.round);break}case"minute":r.minute=ha(e.minute,n,0,59,a?.round);break;case"second":r.second=ha(e.second,n,0,59,a?.round);break;case"millisecond":r.millisecond=ha(e.millisecond,n,0,999,a?.round);break;default:throw new Error("Unsupported field "+t)}return r}function ha(e,t,n,a,r=!1){if(r){e+=Math.sign(t),e0?e=Math.ceil(e/l)*l:e=Math.floor(e/l)*l,e>a&&(e=n)}else e+=t,ea&&(e=n+(e-a-1));return e}function Mg(e,t){let n;if(t.years!=null&&t.years!==0||t.months!=null&&t.months!==0||t.weeks!=null&&t.weeks!==0||t.days!=null&&t.days!==0){let r=ru(ta(e),{years:t.years,months:t.months,weeks:t.weeks,days:t.days});n=va(r,e.timeZone)}else n=Fl(e)-e.offset;n+=t.milliseconds||0,n+=(t.seconds||0)*1e3,n+=(t.minutes||0)*6e4,n+=(t.hours||0)*36e5;let a=ma(n,e.timeZone);return on(a,e.calendar)}function QS(e,t){return Mg(e,Zd(t))}function eE(e,t,n,a){switch(t){case"hour":{let r=0,l=23;if(a?.hourCycle===12){let h=e.hour>=12;r=h?12:0,l=h?23:11}let o=ta(e),i=on(Ho(o,{hour:r}),new qn),s=[va(i,e.timeZone,"earlier"),va(i,e.timeZone,"later")].filter(h=>ma(h,e.timeZone).day===i.day)[0],c=on(Ho(o,{hour:l}),new qn),d=[va(c,e.timeZone,"earlier"),va(c,e.timeZone,"later")].filter(h=>ma(h,e.timeZone).day===c.day).pop(),f=Fl(e)-e.offset,m=Math.floor(f/uo),p=f%uo;return f=ha(m,n,Math.floor(s/uo),Math.floor(d/uo),a?.round)*uo+p,on(ma(f,e.timeZone),e.calendar)}case"minute":case"second":case"millisecond":return ef(e,t,n,a);case"era":case"year":case"month":case"day":{let r=Qd(ta(e),t,n,a),l=va(r,e.timeZone);return on(ma(l,e.timeZone),e.calendar)}default:throw new Error("Unsupported field "+t)}}function tE(e,t,n){let a=ta(e),r=Ho(Xd(a,t),t);if(r.compare(a)===0)return e;let l=va(r,e.timeZone,n);return on(ma(l,e.timeZone),e.calendar)}const nE=/^(\d{2})(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/,aE=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/,Pg=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/;function rE(e){let t=e.match(nE);if(!t)throw new Error("Invalid ISO 8601 time string: "+e);return new Gn(Ht(t[1],0,23),t[2]?Ht(t[2],0,59):0,t[3]?Ht(t[3],0,59):0,t[4]?Ht(t[4],0,1/0)*1e3:0)}function Rg(e){let t=e.match(aE);if(!t)throw Pg.test(e)?new Error(`Invalid ISO 8601 date string: ${e}. Use parseAbsolute() instead.`):new Error("Invalid ISO 8601 date string: "+e);let n=new mt(Ht(t[1],0,9999),Ht(t[2],1,12),1);return n.day=Ht(t[3],1,n.calendar.getDaysInMonth(n)),n}function Av(e,t){let n=e.match(Pg);if(!n)throw new Error("Invalid ISO 8601 date time string: "+e);let a=Ht(n[1],-9999,9999),r=a<1?"BC":"AD",l=new $a(r,a<1?-a+1:a,Ht(n[2],1,12),1,t,0,n[4]?Ht(n[4],0,23):0,n[5]?Ht(n[5],0,59):0,n[6]?Ht(n[6],0,59):0,n[7]?Ht(n[7],0,1/0)*1e3:0);return l.day=Ht(n[3],0,l.calendar.getDaysInMonth(l)),n[8]&&(l.offset=Ht(n[8],-23,23)*36e5+Ht(n[9]??"0",0,59)*6e4),au(l,t)}function Ht(e,t,n){let a=Number(e);if(an)throw new RangeError(`Value out of range: ${t} <= ${a} <= ${n}`);return a}function Ig(e){return`${String(e.hour).padStart(2,"0")}:${String(e.minute).padStart(2,"0")}:${String(e.second).padStart(2,"0")}${e.millisecond?String(e.millisecond/1e3).slice(1):""}`}function qg(e){let t=on(e,new qn),n;return t.era==="BC"?n=t.year===1?"0000":"-"+String(Math.abs(1-t.year)).padStart(6,"00"):n=String(t.year).padStart(4,"0"),`${n}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`}function Ng(e){return`${qg(e)}T${Ig(e)}`}function lE(e){let t=Math.sign(e)<0?"-":"+";e=Math.abs(e);let n=Math.floor(e/36e5),a=Math.floor(e%36e5/6e4),r=Math.floor(e%36e5%6e4/1e3),l=`${t}${String(n).padStart(2,"0")}:${String(a).padStart(2,"0")}`;return r!==0&&(l+=`:${String(r).padStart(2,"0")}`),l}function oE(e){return`${Ng(e)}${lE(e.offset)}[${e.timeZone}]`}function tf(e){let t=typeof e[0]=="object"?e.shift():new qn,n;if(typeof e[0]=="string")n=e.shift();else{let o=t.getEras();n=o[o.length-1]}let a=e.shift(),r=e.shift(),l=e.shift();return[t,n,a,r,l]}class mt{#e;constructor(...t){let[n,a,r,l,o]=tf(t);this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,Nr(this)}copy(){return this.era?new mt(this.calendar,this.era,this.year,this.month,this.day):new mt(this.calendar,this.year,this.month,this.day)}add(t){return ru(this,t)}subtract(t){return Ag(this,t)}set(t){return Xd(this,t)}cycle(t,n,a){return Qd(this,t,n,a)}toDate(t){return Sg(this,t)}toString(){return qg(this)}compare(t){return xg(this,t)}}class Gn{#e;constructor(t=0,n=0,a=0,r=0){this.hour=t,this.minute=n,this.second=a,this.millisecond=r,Tg(this)}copy(){return new Gn(this.hour,this.minute,this.second,this.millisecond)}add(t){return Og(this,t)}subtract(t){return XS(this,t)}set(t){return Ho(this,t)}cycle(t,n,a){return ef(this,t,n,a)}toString(){return Ig(this)}compare(t){return kg(this,t)}}class lr{#e;constructor(...t){let[n,a,r,l,o]=tf(t);this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,Nr(this)}copy(){return this.era?new lr(this.calendar,this.era,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond):new lr(this.calendar,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond)}add(t){return ru(this,t)}subtract(t){return Ag(this,t)}set(t){return Xd(Ho(this,t),t)}cycle(t,n,a){switch(t){case"era":case"year":case"month":case"day":return Qd(this,t,n,a);default:return ef(this,t,n,a)}}toDate(t,n){return Sg(this,t,n)}toString(){return Ng(this)}compare(t){let n=xg(this,t);return n===0?kg(this,ta(t)):n}}class $a{#e;constructor(...t){let[n,a,r,l,o]=tf(t),i=t.shift(),s=t.shift();this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,this.timeZone=i,this.offset=s,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,Nr(this)}copy(){return this.era?new $a(this.calendar,this.era,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond):new $a(this.calendar,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond)}add(t){return Mg(this,t)}subtract(t){return QS(this,t)}set(t,n){return tE(this,t,n)}cycle(t,n,a){return eE(this,t,n,a)}toDate(){return YS(this)}toString(){return oE(this)}toAbsoluteString(){return this.toDate().toISOString()}compare(t){return this.toDate().getTime()-Jd(t,this.timeZone).toDate().getTime()}}const Tl=[[1868,9,8],[1912,7,30],[1926,12,25],[1989,1,8],[2019,5,1]],iE=[[1912,7,29],[1926,12,24],[1989,1,7],[2019,4,30]],Gi=[1867,1911,1925,1988,2018],Ga=["meiji","taisho","showa","heisei","reiwa"];function Tv(e){const t=Tl.findIndex(([n,a,r])=>e.year=0){let[,r,l]=Tl[n];t.month=Math.max(r,t.month),t.month===r&&(t.day=Math.max(l,t.day))}}getEras(){return Ga}getYearsInEra(t){let n=Ga.indexOf(t.era),a=Tl[n],r=Tl[n+1];if(r==null)return 9999-a[0]+1;let l=r[0]-a[0];return(t.month0?["minguo",t]:["before_minguo",1-t]}class cE extends qn{fromJulianDay(t){let n=super.fromJulianDay(t),a=di(n.era,n.year),[r,l]=Mv(a);return new mt(this,r,l,n.month,n.day)}toJulianDay(t){return super.toJulianDay(Pv(t))}getEras(){return["before_minguo","minguo"]}balanceDate(t){let[n,a]=Mv(Bg(t));t.era=n,t.year=a}isInverseEra(t){return t.era==="before_minguo"}getDaysInMonth(t){return super.getDaysInMonth(Pv(t))}getYearsInEra(t){return t.era==="before_minguo"?9999:9999-ms}constructor(...t){super(...t),this.identifier="roc"}}function Pv(e){let[t,n]=tu(Bg(e));return new mt(t,n,e.month,e.day)}const Rv=1948320,Iv=[0,31,62,93,124,155,186,216,246,276,306,336];class dE{fromJulianDay(t){let n=t-Rv,a=1+Math.floor((33*n+3)/12053),r=365*(a-1)+Math.floor((8*a+21)/33),l=n-r,o=l<216?Math.floor(l/31):Math.floor((l-6)/30),i=l-Iv[o]+1;return new mt(this,a,o+1,i)}toJulianDay(t){let n=Rv-1+365*(t.year-1)+Math.floor((8*t.year+21)/33);return n+=Iv[t.month-1],n+=t.day,n}getMonthsInYear(){return 12}getDaysInMonth(t){return t.month<=6?31:t.month<=11||El(25*t.year+11,33)<8?30:29}getMaximumMonthsInYear(){return 12}getMaximumDaysInMonth(){return 31}getEras(){return["AP"]}getYearsInEra(){return 9377}constructor(){this.identifier="persian"}}const Ku=78,qv=80;class fE extends qn{fromJulianDay(t){let n=super.fromJulianDay(t),a=n.year-Ku,r=t-Or(n.era,n.year,1,1),l;r=8&&(o+=(t.month-7)*30),o+=t.day-1,o)}getDaysInMonth(t){return t.month===1&&Ya(t.year+Ku)||t.month>=2&&t.month<=6?31:30}getYearsInEra(){return 9919}getEras(){return["saka"]}balanceDate(){}constructor(...t){super(...t),this.identifier="indian"}}const hs=1948440,Nv=1948439,kn=1300,ll=1600,pE=460322;function ys(e,t,n,a){return a+Math.ceil(29.5*(n-1))+(t-1)*354+Math.floor((3+11*t)/30)+e-1}function Fg(e,t,n){let a=Math.floor((30*(n-t)+10646)/10631),r=Math.min(12,Math.ceil((n-(29+ys(t,a,1,1)))/29.5)+1),l=n-ys(t,a,r,1)+1;return new mt(e,a,r,l)}function Lv(e){return(14+11*e)%30<11}class nf{fromJulianDay(t){return Fg(this,hs,t)}toJulianDay(t){return ys(hs,t.year,t.month,t.day)}getDaysInMonth(t){let n=29+t.month%2;return t.month===12&&Lv(t.year)&&n++,n}getMonthsInYear(){return 12}getDaysInYear(t){return Lv(t.year)?355:354}getMaximumMonthsInYear(){return 12}getMaximumDaysInMonth(){return 30}getYearsInEra(){return 9665}getEras(){return["AH"]}constructor(){this.identifier="islamic-civil"}}class vE extends nf{fromJulianDay(t){return Fg(this,Nv,t)}toJulianDay(t){return ys(Nv,t.year,t.month,t.day)}constructor(...t){super(...t),this.identifier="islamic-tbla"}}const mE="qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=";let Qc,Dl;function Yi(e){return pE+Dl[e-kn]}function ko(e,t){let n=e-kn,a=1<<11-(t-1);return(Qc[n]&a)===0?29:30}function Bv(e,t){let n=Yi(e);for(let a=1;at.charCodeAt(0)).buffer)),!Dl){Dl=new Uint32Array(ll-kn+1);let t=0;for(let n=kn;n<=ll;n++){Dl[n-kn]=t;for(let a=1;a<=12;a++)t+=ko(n,a)}}}fromJulianDay(t){let n=t-hs,a=Yi(kn),r=Yi(ll);if(nr)return super.fromJulianDay(t);{let l=kn-1,o=1,i=1;for(;i>0;){l++,i=n-Yi(l)+1;let s=Fv(l);if(i===s){o=12;break}else if(ic;)i-=c,o++,c=ko(l,o);break}}return new mt(this,l,o,n-Bv(l,o)+1)}}toJulianDay(t){return t.yearll?super.toJulianDay(t):hs+Bv(t.year,t.month)+(t.day-1)}getDaysInMonth(t){return t.yearll?super.getDaysInMonth(t):ko(t.year,t.month)}getDaysInYear(t){return t.yearll?super.getDaysInYear(t):Fv(t.year)}}const Vv=347997,Vg=1080,zg=24*Vg,yE=29,gE=12*Vg+793,bE=yE*zg+gE;function Dr(e){return El(e*7+1,19)<7}function Ji(e){let t=Math.floor((235*e-234)/19),n=12084+13753*t,a=t*29+Math.floor(n/25920);return El(3*(a+1),7)<3&&(a+=1),a}function _E(e){let t=Ji(e-1),n=Ji(e);return Ji(e+1)-n===356?2:n-t===382?1:0}function Ro(e){return Ji(e)+_E(e)}function jg(e){return Ro(e+1)-Ro(e)}function xE(e){let t=jg(e);switch(t>380&&(t-=30),t){case 353:return 0;case 354:return 1;case 355:return 2}}function Ti(e,t){if(t>=6&&!Dr(e)&&t++,t===4||t===7||t===9||t===11||t===13)return 29;let n=xE(e);return t===2?n===2?30:29:t===3?n===0?29:30:t===6?Dr(e)?30:0:30}class kE{fromJulianDay(t){let n=t-Vv,a=n*zg/bE,r=Math.floor((19*a+234)/235)+1,l=Ro(r),o=Math.floor(n-l);for(;o<1;)r--,l=Ro(r),o=Math.floor(n-l);let i=1,s=0;for(;s6?t.month--:!Dr(n.year)&&Dr(t.year)&&n.month>6&&t.month++)}constructor(){this.identifier="hebrew"}}const ed=1723856,zv=1824665,td=5500;function Io(e,t,n,a){return e+365*t+Math.floor(t/4)+30*(n-1)+a-1}function af(e,t){let n=Math.floor(4*(t-e)/1461);t>=Io(e,n+1,1,1)&&n++;let a=1+Math.floor((t-Io(e,n,1,1))/30),r=t+1-Io(e,n,a,1);return[n,a,r]}function Ug(e){return Math.floor(e%4/3)}function Hg(e,t){return t%13!==0?30:Ug(e)+5}class rf{fromJulianDay(t){let[n,a,r]=af(ed,t),l="AM";return n<=0&&(l="AA",n+=td),new mt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="AA"&&(n-=td),Io(ed,n,t.month,t.day)}getDaysInMonth(t){return Hg(t.year,t.month)}getMonthsInYear(){return 13}getDaysInYear(t){return 365+Ug(t.year)}getMaximumMonthsInYear(){return 13}getMaximumDaysInMonth(){return 30}getYearsInEra(t){return t.era==="AA"?9999:9991}getEras(){return["AA","AM"]}constructor(){this.identifier="ethiopic"}}class wE extends rf{fromJulianDay(t){let[n,a,r]=af(ed,t);return n+=td,new mt(this,"AA",n,a,r)}getEras(){return["AA"]}getYearsInEra(){return 9999}constructor(...t){super(...t),this.identifier="ethioaa"}}class $E extends rf{fromJulianDay(t){let[n,a,r]=af(zv,t),l="CE";return n<=0&&(l="BCE",n=1-n),new mt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="BCE"&&(n=1-n),Io(zv,n,t.month,t.day)}getDaysInMonth(t){let n=t.year;return t.era==="BCE"&&(n=1-n),Hg(n,t.month)}isInverseEra(t){return t.era==="BCE"}balanceDate(t){t.year<=0&&(t.era=t.era==="BCE"?"CE":"BCE",t.year=1-t.year)}getEras(){return["BCE","CE"]}getYearsInEra(t){return t.era==="BCE"?9999:9715}constructor(...t){super(...t),this.identifier="coptic"}}function CE(e){switch(e){case"buddhist":return new uE;case"ethiopic":return new rf;case"ethioaa":return new wE;case"coptic":return new $E;case"hebrew":return new kE;case"indian":return new fE;case"islamic-civil":return new nf;case"islamic-tbla":return new vE;case"islamic-umalqura":return new hE;case"japanese":return new sE;case"persian":return new dE;case"roc":return new cE;default:return new qn}}let Gu=new Map;class An{constructor(t,n={}){this.formatter=Wg(t,n),this.options=n}format(t){return this.formatter.format(t)}formatToParts(t){return this.formatter.formatToParts(t)}formatRange(t,n){if(typeof this.formatter.formatRange=="function")return this.formatter.formatRange(t,n);if(n= start date");return`${this.formatter.format(t)} – ${this.formatter.format(n)}`}formatRangeToParts(t,n){if(typeof this.formatter.formatRangeToParts=="function")return this.formatter.formatRangeToParts(t,n);if(n= start date");let a=this.formatter.formatToParts(t),r=this.formatter.formatToParts(n);return[...a.map(l=>({...l,source:"startRange"})),{type:"literal",value:" – ",source:"shared"},...r.map(l=>({...l,source:"endRange"}))]}resolvedOptions(){let t=this.formatter.resolvedOptions();return AE()&&(this.resolvedHourCycle||(this.resolvedHourCycle=TE(t.locale,this.options)),t.hourCycle=this.resolvedHourCycle,t.hour12=this.resolvedHourCycle==="h11"||this.resolvedHourCycle==="h12"),t.calendar==="ethiopic-amete-alem"&&(t.calendar="ethioaa"),t}}const SE={true:{ja:"h11"},false:{}};function Wg(e,t={}){if(typeof t.hour12=="boolean"&&EE()){t={...t};let r=SE[String(t.hour12)][e.split("-")[0]],l=t.hour12?"h12":"h23";t.hourCycle=r??l,delete t.hour12}let n=e+(t?Object.entries(t).sort((r,l)=>r[0]l.type==="hour").value,10),r=parseInt(n.formatToParts(new Date(2020,2,3,23)).find(l=>l.type==="hour").value,10);if(a===0&&r===23)return"h23";if(a===24&&r===23)return"h24";if(a===0&&r===11)return"h11";if(a===12&&r===11)return"h12";throw new Error("Unexpected hour cycle result")}function wn(e,t=Nn()){return Wo(e)?e.toDate():e.toDate(t)}function DE(e){return e instanceof lr}function Wo(e){return e instanceof $a}function nd(e){return DE(e)||Wo(e)}function Qa(e){if(e instanceof Date){const t=e.getFullYear(),n=e.getMonth()+1;return new Date(t,n,0).getDate()}else return e.set({day:100}).day}function Ja(e,t){return e.compare(t)<0}function Zu(e,t){return e.compare(t)>0}function OE(e,t,n){const a=nu(e,n,"sun");return t>a?e.subtract({days:a+7-t}):t===a?e:e.subtract({days:a-t})}function ME(e,t,n){const a=nu(e,n,"sun"),r=t===0?6:t-1;return a===r?e:a>r?e.add({days:7-a+r}):e.add({days:r-a})}function lf(e){const{defaultValue:t,defaultPlaceholder:n,granularity:a="day",locale:r="en"}=e;if(Array.isArray(t)&&t.length)return t.at(-1).copy();if(t&&!Array.isArray(t))return t.copy();if(n)return n.copy();const l=new Date,o=l.getFullYear(),i=l.getMonth()+1,s=l.getDate(),c=["hour","minute","second"],d=new An(r),f=CE(d.resolvedOptions().calendar);return c.includes(a??"day")?on(new lr(o,i,s,0,0,0),f):on(new mt(o,i,s),f)}function PE(e){const{defaultValue:t,defaultPlaceholder:n}=e;return t?t.copy():n?n.copy():new Gn(0,0,0)}function RE(e,t){const n=[];for(let a=0;at.set({day:g+1})),i=Yc(t),s=$v(t),c=OE(i,n,r),d=ME(s,n,r),f=jv(c.subtract({days:1}),i),m=jv(s,d.add({days:1})),p=f.length+o.length+m.length;if(a&&p<42){const k=42-p;let g=m.at(-1);g||(g=$v(t));const C=Array.from({length:k},(E,D)=>{const O=D+1;return g.add({days:O})});m.push(...C)}const h=f.concat(o,m),x=RE(h,7);return{value:t,cells:h,rows:x}}function wr(e){const{numberOfMonths:t,dateObj:n,...a}=e,r=[];if(!t||t===1)return r.push(Qu({...a,dateObj:n})),r;r.push(Qu({...a,dateObj:n}));for(let l=1;l({label:s(wn(k.set({month:C}))),value:C}))}function d(k,g={}){return new An(n.value,{...t,year:"numeric",...g}).format(k)}function f(k,g){return Wo(k)?new An(n.value,{...t,...g,timeZone:k.timeZone}).formatToParts(wn(k)):new An(n.value,{...t,...g}).formatToParts(wn(k))}function m(k,g="narrow"){return new An(n.value,{...t,weekday:g}).format(k)}function p(k){const C=new An(n.value,{...t,hour:"numeric",minute:"numeric"}).formatToParts(k).find(E=>E.type==="dayPeriod")?.value;return C==="PM"||C==="pm"||C==="p.m."?"PM":"AM"}const h={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"};function x(k,g,C={}){const E={...h,...C},O=f(k,E).find(L=>L.type===g);return O?O.value:""}return{setLocale:r,getLocale:a,fullMonth:s,fullYear:d,fullMonthAndYear:i,toParts:f,custom:l,part:x,dayPeriod:p,selectedDate:o,dayOfWeek:m,getMonths:c}}function Ta(e){const t=eu({dir:P("ltr")});return _(()=>e?.value||t.dir?.value||"ltr")}function zl(e){const t=ra(),n=t?.type.emits,a={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(r=>{a[Co(Vt(r))]=(...l)=>e(r,...l)}),a}let ec=0;function Zg(){gn(e=>{if(!Aa)return;const t=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",t[0]??Uv()),document.body.insertAdjacentElement("beforeend",t[1]??Uv()),ec++,e(()=>{ec===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(n=>n.remove()),ec--})})}function Uv(){const e=document.createElement("span");return e.setAttribute("data-reka-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}function sf(e){return _(()=>en(e)?!!Hr(e)?.closest("form"):!0)}function tt(){const e=ra(),t=P(),n=_(()=>a());Ad(()=>{n.value!==a()&&O0(t)});function a(){return t.value&&"$el"in t.value&&["#text","#comment"].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:Hr(t)}const r=Object.assign({},e.exposed),l={};for(const i in e.props)Object.defineProperty(l,i,{enumerable:!0,configurable:!0,get:()=>e.props[i]});if(Object.keys(r).length>0)for(const i in r)Object.defineProperty(l,i,{enumerable:!0,configurable:!0,get:()=>r[i]});Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=l;function o(i){if(t.value=i,!!i&&(Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>i instanceof Element?i:i.$el}),!(i instanceof Element)&&!Object.hasOwn(i,"$el"))){const s=i.$.exposed,c=Object.assign({},l);for(const d in s)Object.defineProperty(c,d,{enumerable:!0,configurable:!0,get:()=>s[d]});e.exposed=c}}return{forwardRef:o,currentRef:t,currentElement:n}}function Xg(e){const t=ra(),n=Object.keys(t?.type.props??{}).reduce((r,l)=>{const o=(t?.type.props[l]).default;return o!==void 0&&(r[l]=o),r},{}),a=N0(e);return _(()=>{const r={},l=t?.vnode.props??{};return Object.keys(l).forEach(o=>{r[Vt(o)]=l[o]}),Object.keys({...n,...r}).reduce((o,i)=>(a.value[i]!==void 0&&(o[i]=a.value[i]),o),{})})}function Da(e,t){const n=Xg(e),a=t?zl(t):{};return _(()=>({...n.value,...a}))}var NE=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ol=new WeakMap,Di=new WeakMap,Oi={},tc=0,Qg=function(e){return e&&(e.host||Qg(e.parentNode))},LE=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=Qg(n);return a&&e.contains(a)?a:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},BE=function(e,t,n,a){var r=LE(t,Array.isArray(e)?e:[e]);Oi[n]||(Oi[n]=new WeakMap);var l=Oi[n],o=[],i=new Set,s=new Set(r),c=function(f){!f||i.has(f)||(i.add(f),c(f.parentNode))};r.forEach(c);var d=function(f){!f||s.has(f)||Array.prototype.forEach.call(f.children,function(m){if(i.has(m))d(m);else try{var p=m.getAttribute(a),h=p!==null&&p!=="false",x=(ol.get(m)||0)+1,k=(l.get(m)||0)+1;ol.set(m,x),l.set(m,k),o.push(m),x===1&&h&&Di.set(m,!0),k===1&&m.setAttribute(n,"true"),h||m.setAttribute(a,"true")}catch(g){console.error("aria-hidden: cannot operate on ",m,g)}})};return d(t),i.clear(),tc++,function(){o.forEach(function(f){var m=ol.get(f)-1,p=l.get(f)-1;ol.set(f,m),l.set(f,p),m||(Di.has(f)||f.removeAttribute(a),Di.delete(f)),p||f.removeAttribute(n)}),tc--,tc||(ol=new WeakMap,ol=new WeakMap,Di=new WeakMap,Oi={})}},FE=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),r=NE(e);return r?(a.push.apply(a,Array.from(r.querySelectorAll("[aria-live], script"))),BE(a,r,n,"aria-hidden")):function(){return null}};function uf(e){let t;je(()=>Hr(e),n=>{let a=!1;try{a=!!n?.closest("[popover]:not(:popover-open)")}catch{}n&&!a?t=FE(n):t&&t()}),Ea(()=>{t&&t()})}function Lr(e,t="reka"){let n;const a=eu({useId:void 0});return a.useId?n=a.useId():n=n_?.(),t?`${t}-${n}`:n}function jl(){return{ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",BACKSPACE:"Backspace",CAPS_LOCK:"CapsLock",CONTROL:"Control",DELETE:"Delete",END:"End",ENTER:"Enter",ESCAPE:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",HOME:"Home",META:"Meta",PAGE_DOWN:"PageDown",PAGE_UP:"PageUp",SHIFT:"Shift",SPACE:" ",TAB:"Tab",CTRL:"Control",ASTERISK:"*",SPACE_CODE:"Space"}}function lu(e){const t=eu({locale:P("en")});return _(()=>e?.value||t.locale?.value||"en")}function VE(e){const t=P(),n=_(()=>t.value?.width??0),a=_(()=>t.value?.height??0);return wt(()=>{const r=Hr(e);if(r){t.value={width:r.offsetWidth,height:r.offsetHeight};const l=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let s,c;if("borderBoxSize"in i){const d=i.borderBoxSize,f=Array.isArray(d)?d[0]:d;s=f.inlineSize,c=f.blockSize}else s=r.offsetWidth,c=r.offsetHeight;t.value={width:s,height:c}});return l.observe(r,{box:"border-box"}),()=>l.unobserve(r)}else t.value=void 0}),{width:n,height:a}}function zE(e,t){const n=P(e);function a(l){return t[n.value][l]??n.value}return{state:n,dispatch:l=>{n.value=a(l)}}}function jE(e){const t=ES("",1e3);return{search:t,handleTypeaheadSearch:(r,l)=>{t.value=t.value+r;{const o=It(),i=l.map(m=>({...m,textValue:m.value?.textValue??m.ref.textContent?.trim()??""})),s=i.find(m=>m.ref===o),c=i.map(m=>m.textValue),d=HE(c,t.value,s?.textValue),f=i.find(m=>m.textValue===d);return f&&f.ref.focus(),f?.ref}},resetTypeahead:()=>{t.value=""}}}function UE(e,t){return e.map((n,a)=>e[(t+a)%e.length])}function HE(e,t,n){const r=t.length>1&&Array.from(t).every(c=>c===t[0])?t[0]:t,l=n?e.indexOf(n):-1;let o=UE(e,Math.max(l,0));r.length===1&&(o=o.filter(c=>c!==n));const s=o.find(c=>c.toLowerCase().startsWith(r.toLowerCase()));return s!==n?s:void 0}function WE(e,t){const n=P({}),a=P("none"),r=P(e),l=e.value?"mounted":"unmounted";let o;const i=t.value?.ownerDocument.defaultView??Hd,{state:s,dispatch:c}=zE(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),d=k=>{if(Aa){const g=new CustomEvent(k,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(g)}};je(e,async(k,g)=>{const C=g!==k;if(await Ze(),C){const E=a.value,D=Mi(t.value);k?(c("MOUNT"),d("enter"),D==="none"&&d("after-enter")):D==="none"||D==="undefined"||n.value?.display==="none"?(c("UNMOUNT"),d("leave"),d("after-leave")):g&&E!==D?(c("ANIMATION_OUT"),d("leave")):(c("UNMOUNT"),d("after-leave"))}},{immediate:!0});const f=k=>{const g=Mi(t.value),C=g.includes(CSS.escape(k.animationName)),E=s.value==="mounted"?"enter":"leave";if(k.target===t.value&&C&&(d(`after-${E}`),c("ANIMATION_END"),!r.value)){const D=t.value.style.animationFillMode;t.value.style.animationFillMode="forwards",o=i?.setTimeout(()=>{t.value?.style.animationFillMode==="forwards"&&(t.value.style.animationFillMode=D)})}k.target===t.value&&g==="none"&&c("ANIMATION_END")},m=k=>{k.target===t.value&&(a.value=Mi(t.value))},p=je(t,(k,g)=>{k?(n.value=getComputedStyle(k),k.addEventListener("animationstart",m),k.addEventListener("animationcancel",f),k.addEventListener("animationend",f)):(c("ANIMATION_END"),o!==void 0&&i?.clearTimeout(o),g?.removeEventListener("animationstart",m),g?.removeEventListener("animationcancel",f),g?.removeEventListener("animationend",f))},{immediate:!0}),h=je(s,()=>{const k=Mi(t.value);a.value=s.value==="mounted"?k:"none"});return Ea(()=>{p(),h()}),{isPresent:_(()=>["mounted","unmountSuspended"].includes(s.value))}}function Mi(e){return e&&getComputedStyle(e).animationName||"none"}var pi=le({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){const{present:a,forceMount:r}=Gt(e),l=P(),{isPresent:o}=WE(a,l);n({present:o});let i=t.default({present:o.value});i=Wd(i||[]);const s=ra();if(i&&i?.length>1){const c=s?.parent?.type.name?`<${s.parent.type.name} />`:"component";throw new Error([`Detected an invalid children for \`${c}\` for \`Presence\` component.`,"","Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.","You can apply a few solutions:",["Provide a single child element so that `presence` directive attach correctly.","Ensure the first child is an actual element instead of a raw text node or comment node."].map(d=>` - ${d}`).join(` +`)].join(` +`))}return()=>r.value||a.value||o.value?Cn(t.default({present:o.value})[0],{ref:c=>{const d=Hr(c);return typeof d?.hasAttribute>"u"||(d?.hasAttribute("data-reka-popper-content-wrapper")?l.value=d.firstElementChild:l.value=d),d}}):null}});const ad=le({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;const a=Wd(n.default()),r=a.findIndex(s=>s.type!==Pn);if(r===-1)return a;const l=a[r];delete l.props?.ref;const o=l.props?He(t,l.props):t,i=er({...l,props:{}},o);return a.length===1?i:(a[r]=i,a)}}}),KE=["area","img","input"],nt=le({name:"Primitive",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:"div"}},setup(e,{attrs:t,slots:n}){const a=e.asChild?"template":e.as;return typeof a=="string"&&KE.includes(a)?()=>Cn(a,t):a!=="template"?()=>Cn(e.as,t,{default:n.default}):()=>Cn(ad,t,{default:n.default})}});function Br(){const e=P(),t=_(()=>["#text","#comment"].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Hr(e));return{primitiveElement:e,currentElement:t}}const[Oa,GE]=Ct("DialogRoot");var YE=le({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:t}){const n=e,r=Pt(n,"open",t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=P(),o=P(),{modal:i}=Gt(n);return GE({open:r,modal:i,openModal:()=>{r.value=!0},onOpenChange:s=>{r.value=s},onOpenToggle:()=>{r.value=!r.value},contentId:"",titleId:"",descriptionId:"",triggerElement:l,contentElement:o}),(s,c)=>_e(s.$slots,"default",{open:u(r),close:()=>r.value=!1})}}),Ul=YE,JE=le({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;tt();const n=Oa();return(a,r)=>(v(),U(u(nt),He(t,{type:a.as==="button"?"button":void 0,onClick:r[0]||(r[0]=l=>u(n).onOpenChange(!1))}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["type"]))}}),Vl=JE;const ZE="dismissableLayer.pointerDownOutside",XE="dismissableLayer.focusOutside";function eb(e,t){if(!(t instanceof Element))return!1;const n=t.closest("[data-dismissable-layer]"),a=e.dataset.dismissableLayer===""?e:e.querySelector("[data-dismissable-layer]"),r=Array.from(e.ownerDocument.querySelectorAll("[data-dismissable-layer]"));return!!(n&&(a===n||r.indexOf(a){});return gn(o=>{if(!Aa||!en(n))return;const i=async c=>{const d=c.target;if(!(!t?.value||!d)){if(eb(t.value,d)){r.value=!1;return}if(c.target&&!r.value){let m=function(){Ud(ZE,e,f)};const f={originalEvent:c};c.pointerType==="touch"?(a.removeEventListener("click",l.value),l.value=m,a.addEventListener("click",l.value,{once:!0})):m()}else a.removeEventListener("click",l.value);r.value=!1}},s=window.setTimeout(()=>{a.addEventListener("pointerdown",i)},0);o(()=>{window.clearTimeout(s),a.removeEventListener("pointerdown",i),a.removeEventListener("click",l.value)})}),{onPointerDownCapture:()=>{en(n)&&(r.value=!0)}}}function eA(e,t,n=!0){const a=t?.value?.ownerDocument??globalThis?.document,r=P(!1);return gn(l=>{if(!Aa||!en(n))return;const o=async i=>{if(!t?.value)return;await Ze(),await Ze();const s=i.target;!t.value||!s||eb(t.value,s)||i.target&&!r.value&&Ud(XE,e,{originalEvent:i})};a.addEventListener("focusin",o),l(()=>a.removeEventListener("focusin",o))}),{onFocusCapture:()=>{en(n)&&(r.value=!0)},onBlurCapture:()=>{en(n)&&(r.value=!1)}}}const cn=On({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set});var tA=le({__name:"DismissableLayer",props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","dismiss"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=tt(),o=_(()=>l.value?.ownerDocument??globalThis.document),i=_(()=>cn.layersRoot),s=_(()=>l.value?Array.from(i.value).indexOf(l.value):-1),c=_(()=>cn.layersWithOutsidePointerEventsDisabled.size>0),d=_(()=>{const p=Array.from(i.value),[h]=[...cn.layersWithOutsidePointerEventsDisabled].slice(-1),x=p.indexOf(h);return s.value>=x}),f=QE(async p=>{const h=[...cn.branches].some(x=>x?.contains(p.target));!d.value||h||(a("pointerDownOutside",p),a("interactOutside",p),await Ze(),p.defaultPrevented||a("dismiss"))},l),m=eA(p=>{[...cn.branches].some(x=>x?.contains(p.target))||(a("focusOutside",p),a("interactOutside",p),p.defaultPrevented||a("dismiss"))},l);return MS("Escape",p=>{s.value===i.value.size-1&&(a("escapeKeyDown",p),p.defaultPrevented||a("dismiss"))}),je([l,()=>n.disableOutsidePointerEvents],([p,h],x,k)=>{p&&(h&&(cn.layersWithOutsidePointerEventsDisabled.size===0&&(cn.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents="none"),cn.layersWithOutsidePointerEventsDisabled.add(p),k(()=>{cn.layersWithOutsidePointerEventsDisabled.delete(p),cn.layersWithOutsidePointerEventsDisabled.size===0&&!vn(cn.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=cn.originalBodyPointerEvents)})),i.value.add(p))},{immediate:!0}),gn(p=>{p(()=>{l.value&&(i.value.delete(l.value),cn.layersWithOutsidePointerEventsDisabled.delete(l.value))})}),(p,h)=>(v(),U(u(nt),{ref:u(r),"as-child":p.asChild,as:p.as,"data-dismissable-layer":"",style:Tn({pointerEvents:c.value?d.value?"auto":"none":void 0}),onFocusCapture:u(m).onFocusCapture,onBlurCapture:u(m).onBlurCapture,onPointerdownCapture:u(f).onPointerDownCapture},{default:B(()=>[_e(p.$slots,"default")]),_:3},8,["as-child","as","style","onFocusCapture","onBlurCapture","onPointerdownCapture"]))}}),cf=tA;const nA=gS(()=>P([]));function aA(){const e=nA();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=Hv(e.value,t),e.value.unshift(t)},remove(t){e.value=Hv(e.value,t),e.value[0]?.resume()}}}function Hv(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}const nc="focusScope.autoFocusOnMount",ac="focusScope.autoFocusOnUnmount",Wv={bubbles:!1,cancelable:!0};function rA(e,{select:t=!1}={}){const n=It();for(const a of e)if(Ha(a,{select:t}),It()!==n)return!0}function lA(e){const t=tb(e),n=Kv(t,e),a=Kv(t.reverse(),e);return[n,a]}function tb(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const r=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||r?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Kv(e,t){for(const n of e)if(!oA(n,{upTo:t}))return n}function oA(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function iA(e){return e instanceof HTMLInputElement&&"select"in e}function Ha(e,{select:t=!1}={}){if(e&&e.focus){const n=It();e.focus({preventScroll:!0}),e!==n&&iA(e)&&t&&e.select()}}var sA=le({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:t}){const n=e,a=t,{currentRef:r,currentElement:l}=tt(),o=P(null),i=aA(),s=On({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});gn(d=>{if(!Aa)return;const f=l.value;if(!n.trapped)return;function m(k){if(s.paused||!f)return;const g=k.target;f.contains(g)?o.value=g:Ha(o.value,{select:!0})}function p(k){if(s.paused||!f)return;const g=k.relatedTarget;g!==null&&(f.contains(g)||Ha(o.value,{select:!0}))}function h(k){const g=o.value;if(g===null||!k.some(D=>D.removedNodes.length>0))return;f.contains(g)||Ha(f)}document.addEventListener("focusin",m),document.addEventListener("focusout",p);const x=new MutationObserver(h);f&&x.observe(f,{childList:!0,subtree:!0}),d(()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",p),x.disconnect()})}),gn(async d=>{const f=l.value;if(await Ze(),!f)return;i.add(s);const m=It();if(!f.contains(m)){const h=new CustomEvent(nc,Wv);f.addEventListener(nc,x=>a("mountAutoFocus",x)),f.dispatchEvent(h),h.defaultPrevented||(rA(tb(f),{select:!0}),It()===m&&Ha(f))}d(()=>{f.removeEventListener(nc,k=>a("mountAutoFocus",k));const h=new CustomEvent(ac,Wv),x=k=>{a("unmountAutoFocus",k)};f.addEventListener(ac,x),f.dispatchEvent(h),f.setAttribute("data-focus-scope-unmounting",""),setTimeout(()=>{h.defaultPrevented||Ha(m??document.body,{select:!0}),f.removeEventListener(ac,x),i.remove(s),f.removeAttribute("data-focus-scope-unmounting")},0)})});function c(d){if(!n.loop&&!n.trapped||s.paused)return;const f=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,m=It();if(f&&m){const p=d.currentTarget,[h,x]=lA(p);h&&x?!d.shiftKey&&m===x?(d.preventDefault(),n.loop&&Ha(h,{select:!0})):d.shiftKey&&m===h&&(d.preventDefault(),n.loop&&Ha(x,{select:!0})):m===p&&d.preventDefault()}}return(d,f)=>(v(),U(u(nt),{ref_key:"currentRef",ref:r,tabindex:"-1","as-child":d.asChild,as:d.as,onKeydown:c},{default:B(()=>[_e(d.$slots,"default")]),_:3},8,["as-child","as"]))}}),df=sA;const uA="menu.itemSelect",rd=["Enter"," "],cA=["ArrowDown","PageUp","Home"],nb=["ArrowUp","PageDown","End"],dA=[...cA,...nb];[...rd],[...rd];function ab(e){return e?"open":"closed"}function fA(e){const t=It();for(const n of e)if(n===t||(n.focus(),It()!==t))return}function pA(e,t){const{x:n,y:a}=e;let r=!1;for(let l=0,o=t.length-1;la!=d>a&&n<(c-i)*(a-s)/(d-s)+i&&(r=!r)}return r}function vA(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return pA(n,t)}function gs(e){return e.pointerType==="mouse"}var mA=le({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Oa(),{forwardRef:l,currentElement:o}=tt();return r.titleId||=Lr(void 0,"reka-dialog-title"),r.descriptionId||=Lr(void 0,"reka-dialog-description"),wt(()=>{r.contentElement=o,It()!==document.body&&(r.triggerElement.value=It())}),(i,s)=>(v(),U(u(df),{"as-child":"",loop:"",trapped:n.trapFocus,onMountAutoFocus:s[5]||(s[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:s[6]||(s[6]=c=>a("closeAutoFocus",c))},{default:B(()=>[F(u(cf),He({id:u(r).contentId,ref:u(l),as:i.as,"as-child":i.asChild,"disable-outside-pointer-events":i.disableOutsidePointerEvents,role:"dialog","aria-describedby":u(r).descriptionId,"aria-labelledby":u(r).titleId,"data-state":u(ab)(u(r).open.value)},i.$attrs,{onDismiss:s[0]||(s[0]=c=>u(r).onOpenChange(!1)),onEscapeKeyDown:s[1]||(s[1]=c=>a("escapeKeyDown",c)),onFocusOutside:s[2]||(s[2]=c=>a("focusOutside",c)),onInteractOutside:s[3]||(s[3]=c=>a("interactOutside",c)),onPointerDownOutside:s[4]||(s[4]=c=>a("pointerDownOutside",c))}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16,["id","as","as-child","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped"]))}}),rb=mA,hA=le({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Oa(),l=zl(a),{forwardRef:o,currentElement:i}=tt();return uf(i),(s,c)=>(v(),U(rb,He({...n,...u(l)},{ref:u(o),"trap-focus":u(r).open.value,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onCloseAutoFocus:c[0]||(c[0]=d=>{d.defaultPrevented||(d.preventDefault(),u(r).triggerElement.value?.focus())}),onPointerDownOutside:c[1]||(c[1]=d=>{const f=d.detail.originalEvent,m=f.button===0&&f.ctrlKey===!0;(f.button===2||m)&&d.preventDefault()}),onFocusOutside:c[2]||(c[2]=d=>{d.preventDefault()})}),{default:B(()=>[_e(s.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),yA=hA,gA=le({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=zl(t);tt();const l=Oa(),o=P(!1),i=P(!1);return(s,c)=>(v(),U(rb,He({...n,...u(r)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:c[0]||(c[0]=d=>{d.defaultPrevented||(o.value||u(l).triggerElement.value?.focus(),d.preventDefault()),o.value=!1,i.value=!1}),onInteractOutside:c[1]||(c[1]=d=>{d.defaultPrevented||(o.value=!0,d.detail.originalEvent.type==="pointerdown"&&(i.value=!0));const f=d.target;u(l).triggerElement.value?.contains(f)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&i.value&&d.preventDefault()})}),{default:B(()=>[_e(s.$slots,"default")]),_:3},16))}}),bA=gA,_A=le({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Oa(),l=zl(a),{forwardRef:o}=tt();return(i,s)=>(v(),U(u(pi),{present:i.forceMount||u(r).open.value},{default:B(()=>[u(r).modal.value?(v(),U(yA,He({key:0,ref:u(o)},{...n,...u(l),...i.$attrs}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16)):(v(),U(bA,He({key:1,ref:u(o)},{...n,...u(l),...i.$attrs}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Hl=_A,xA=le({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;tt();const n=Oa();return(a,r)=>(v(),U(u(nt),He(t,{id:u(n).descriptionId}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["id"]))}}),Fr=xA,kA=le({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Oa();return Kd(!0),tt(),(n,a)=>(v(),U(u(nt),{as:n.as,"as-child":n.asChild,"data-state":u(t).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:a[0]||(a[0]=vt(()=>{},["left","self","prevent"]))},{default:B(()=>[_e(n.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),wA=kA,$A=le({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Oa(),{forwardRef:n}=tt();return(a,r)=>u(t)?.modal.value?(v(),U(u(pi),{key:0,present:a.forceMount||u(t).open.value},{default:B(()=>[F(wA,He(a.$attrs,{ref:u(n),as:a.as,"as-child":a.asChild}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["as","as-child"])]),_:3},8,["present"])):re("v-if",!0)}}),Wl=$A,CA=le({__name:"Teleport",props:{to:{type:null,required:!1,default:"body"},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=DS();return(n,a)=>u(t)||n.forceMount?(v(),U(X0,{key:0,to:n.to,disabled:n.disabled,defer:n.defer},[_e(n.$slots,"default")],8,["to","disabled","defer"])):re("v-if",!0)}}),ou=CA,SA=le({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(ou),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),vi=SA,EA=le({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e,n=Oa();return tt(),(a,r)=>(v(),U(u(nt),He(t,{id:u(n).titleId}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["id"]))}}),Kl=EA;const[AA,TA]=Ct("AlertDialogContent");var DA=le({__name:"AlertDialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=zl(t);tt();const l=P();return TA({onCancelElementChange:o=>{l.value=o}}),(o,i)=>(v(),U(u(Hl),He({...n,...u(r)},{role:"alertdialog",onPointerDownOutside:i[0]||(i[0]=vt(()=>{},["prevent"])),onInteractOutside:i[1]||(i[1]=vt(()=>{},["prevent"])),onOpenAutoFocus:i[2]||(i[2]=()=>{Ze(()=>{l.value?.focus({preventScroll:!0})})})}),{default:B(()=>[_e(o.$slots,"default")]),_:3},16))}}),OA=DA,MA=le({__name:"AlertDialogCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=AA(),{forwardRef:a,currentElement:r}=tt();return wt(()=>{n.onCancelElementChange(r.value)}),(l,o)=>(v(),U(u(Vl),He(t,{ref:u(a)}),{default:B(()=>[_e(l.$slots,"default")]),_:3},16))}}),PA=MA,RA=le({__name:"AlertDialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;return tt(),(n,a)=>(v(),U(u(Fr),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),IA=RA,qA=le({__name:"AlertDialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return tt(),(n,a)=>(v(),U(u(Wl),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),NA=qA,LA=le({__name:"AlertDialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(ou),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),BA=LA,FA=le({__name:"AlertDialogRoot",props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1}},emits:["update:open"],setup(e,{emit:t}){const r=Da(e,t);return tt(),(l,o)=>(v(),U(u(Ul),He(u(r),{modal:!0}),{default:B(i=>[_e(l.$slots,"default",lt(it(i)))]),_:3},16))}}),VA=FA,zA=le({__name:"AlertDialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e;return tt(),(n,a)=>(v(),U(u(Kl),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),jA=zA;const Gv="data-reka-collection-item";function ff(e={}){const{key:t="",isProvider:n=!1}=e,a=`${t}CollectionProvider`;let r;n?(r={collectionRef:P(),itemMap:P(new Map)},kt(a,r)):r=ct(a);const l=(d=!1)=>{const f=r.collectionRef.value;if(!f)return[];const m=Array.from(f.querySelectorAll(`[${Gv}]`)),h=Array.from(r.itemMap.value.values()).sort((x,k)=>m.indexOf(x.ref)-m.indexOf(k.ref));return d?h:h.filter(x=>x.ref.dataset.disabled!=="")},o=le({name:"CollectionSlot",inheritAttrs:!1,setup(d,{slots:f,attrs:m}){const{primitiveElement:p,currentElement:h}=Br();return je(h,()=>{r.collectionRef.value=h.value}),()=>Cn(ad,{ref:p,...m},f)}}),i=le({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(d,{slots:f,attrs:m}){const{primitiveElement:p,currentElement:h}=Br();return gn(x=>{if(h.value){const k=Xi(h.value);r.itemMap.value.set(k,{ref:h.value,value:d.value}),x(()=>r.itemMap.value.delete(k))}}),()=>Cn(ad,{...m,[Gv]:"",ref:p},f)}}),s=_(()=>Array.from(r.itemMap.value.values())),c=_(()=>r.itemMap.value.size);return{getItems:l,reactiveItems:s,itemMapSize:c,CollectionSlot:o,CollectionItem:i}}var UA=le({__name:"VisuallyHidden",props:{feature:{type:String,required:!1,default:"focusable"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){return(t,n)=>(v(),U(u(nt),{as:t.as,"as-child":t.asChild,"aria-hidden":t.feature==="focusable"?"true":void 0,"data-hidden":t.feature==="fully-hidden"?"":void 0,tabindex:t.feature==="fully-hidden"?"-1":void 0,style:{position:"absolute",border:0,width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",wordWrap:"normal",top:"-1px",left:"-1px"}},{default:B(()=>[_e(t.$slots,"default")]),_:3},8,["as","as-child","aria-hidden","data-hidden","tabindex"]))}}),pf=UA,HA=le({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,{primitiveElement:n,currentElement:a}=Br(),r=_(()=>t.checked??t.value);return je(r,(l,o)=>{if(!a.value)return;const i=a.value,s=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(s,"value").set;if(d&&l!==o){const f=new Event("input",{bubbles:!0}),m=new Event("change",{bubbles:!0});d.call(i,l),i.dispatchEvent(f),i.dispatchEvent(m)}}),(l,o)=>(v(),U(pf,He({ref_key:"primitiveElement",ref:n},{...t,...l.$attrs},{as:"input"}),null,16))}}),Yv=HA,WA=le({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,n=_(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),a=_(()=>typeof t.value=="string"||typeof t.value=="number"||typeof t.value=="boolean"||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value=="object"&&Array.isArray(t.value)?t.value.flatMap((r,l)=>typeof r=="object"?Object.entries(r).map(([o,i])=>({name:`${t.name}[${l}][${o}]`,value:i})):{name:`${t.name}[${l}]`,value:r}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([r,l])=>({name:`${t.name}[${r}]`,value:l})):[]);return(r,l)=>(v(),b(ye,null,[re(" We render single input if it's required "),n.value?(v(),U(Yv,He({key:r.name},{...t,...r.$attrs},{name:r.name,value:r.value}),null,16,["name","value"])):(v(!0),b(ye,{key:1},qe(a.value,o=>(v(),U(Yv,He({key:o.name},{ref_for:!0},{...t,...r.$attrs},{name:o.name,value:o.value}),null,16,["name","value"]))),128))],2112))}}),vf=WA;const KA="rovingFocusGroup.onEntryFocus",GA={bubbles:!1,cancelable:!0},YA={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function JA(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ZA(e,t,n){const a=JA(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return YA[a]}function lb(e,t=!1){const n=It();for(const a of e)if(a===n||(a.focus({preventScroll:t}),It()!==n))return}function XA(e,t){return e.map((n,a)=>e[(t+a)%e.length])}const[ob,QA]=Ct("PopperRoot");var e3=le({inheritAttrs:!1,__name:"PopperRoot",setup(e){const t=P();return QA({anchor:t,onAnchorChange:n=>t.value=n}),(n,a)=>_e(n.$slots,"default")}}),ib=e3,t3=le({__name:"PopperAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{forwardRef:n,currentElement:a}=tt(),r=ob();return Ph(()=>{r.onAnchorChange(t.reference??a.value)}),(l,o)=>(v(),U(u(nt),{ref:u(n),as:l.as,"as-child":l.asChild},{default:B(()=>[_e(l.$slots,"default")]),_:3},8,["as","as-child"]))}}),mf=t3;function n3(e){return e!==null}function a3(e){return{name:"transformOrigin",options:e,fn(t){const{placement:n,rects:a,middlewareData:r}=t,o=r.arrow?.centerOffset!==0,i=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[c,d]=ld(n),f={start:"0%",center:"50%",end:"100%"}[d],m=(r.arrow?.x??0)+i/2,p=(r.arrow?.y??0)+s/2;let h="",x="";return c==="bottom"?(h=o?f:`${m}px`,x=`${-s}px`):c==="top"?(h=o?f:`${m}px`,x=`${a.floating.height+s}px`):c==="right"?(h=`${-s}px`,x=o?f:`${p}px`):c==="left"&&(h=`${a.floating.width+s}px`,x=o?f:`${p}px`),{data:{x:h,y:x}}}}}function ld(e){const[t,n="center"]=e.split("-");return[t,n]}const r3=["top","right","bottom","left"],or=Math.min,ga=Math.max,bs=Math.round,Pi=Math.floor,ba=e=>({x:e,y:e}),l3={left:"right",right:"left",bottom:"top",top:"bottom"};function sb(e,t,n){return ga(e,or(t,n))}function Ca(e,t){return typeof e=="function"?e(t):e}function ir(e){return e.split("-")[0]}function Gl(e){return e.split("-")[1]}function hf(e){return e==="x"?"y":"x"}function yf(e){return e==="y"?"height":"width"}function Yn(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function gf(e){return hf(Yn(e))}function o3(e,t,n){n===void 0&&(n=!1);const a=Gl(e),r=gf(e),l=yf(r);let o=r==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(o=_s(o)),[o,_s(o)]}function i3(e){const t=_s(e);return[od(e),t,od(t)]}function od(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Jv=["left","right"],Zv=["right","left"],s3=["top","bottom"],u3=["bottom","top"];function c3(e,t,n){switch(e){case"top":case"bottom":return n?t?Zv:Jv:t?Jv:Zv;case"left":case"right":return t?s3:u3;default:return[]}}function d3(e,t,n,a){const r=Gl(e);let l=c3(ir(e),n==="start",a);return r&&(l=l.map(o=>o+"-"+r),t&&(l=l.concat(l.map(od)))),l}function _s(e){const t=ir(e);return l3[t]+e.slice(t.length)}function f3(e){var t,n,a,r;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(a=e.bottom)!=null?a:0,left:(r=e.left)!=null?r:0}}function ub(e){return typeof e!="number"?f3(e):{top:e,right:e,bottom:e,left:e}}function xs(e){const{x:t,y:n,width:a,height:r}=e;return{width:a,height:r,top:n,left:t,right:t+a,bottom:n+r,x:t,y:n}}function Xv(e,t,n){let{reference:a,floating:r}=e;const l=Yn(t),o=gf(t),i=yf(o),s=ir(t),c=l==="y",d=a.x+a.width/2-r.width/2,f=a.y+a.height/2-r.height/2,m=a[i]/2-r[i]/2;let p;switch(s){case"top":p={x:d,y:a.y-r.height};break;case"bottom":p={x:d,y:a.y+a.height};break;case"right":p={x:a.x+a.width,y:f};break;case"left":p={x:a.x-r.width,y:f};break;default:p={x:a.x,y:a.y}}const h=Gl(t);return h&&(p[o]+=m*(h==="end"?1:-1)*(n&&c?-1:1)),p}async function p3(e,t){var n;t===void 0&&(t={});const{x:a,y:r,platform:l,rects:o,elements:i,strategy:s}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:m=!1,padding:p=0}=Ca(t,e),h=ub(p),k=i[m?f==="floating"?"reference":"floating":f],g=xs(await l.getClippingRect({element:(n=await(l.isElement==null?void 0:l.isElement(k)))==null||n?k:k.contextElement||await(l.getDocumentElement==null?void 0:l.getDocumentElement(i.floating)),boundary:c,rootBoundary:d,strategy:s})),C=f==="floating"?{x:a,y:r,width:o.floating.width,height:o.floating.height}:o.reference,E=await(l.getOffsetParent==null?void 0:l.getOffsetParent(i.floating)),D=await(l.isElement==null?void 0:l.isElement(E))&&await(l.getScale==null?void 0:l.getScale(E))||{x:1,y:1},O=xs(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:i,rect:C,offsetParent:E,strategy:s}):C);return{top:(g.top-O.top+h.top)/D.y,bottom:(O.bottom-g.bottom+h.bottom)/D.y,left:(g.left-O.left+h.left)/D.x,right:(O.right-g.right+h.right)/D.x}}const v3=50,m3=async(e,t,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:l=[],platform:o}=n,i=o.detectOverflow?o:{...o,detectOverflow:p3},s=await(o.isRTL==null?void 0:o.isRTL(t));let c=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:f}=Xv(c,a,s),m=a,p=0;const h={};for(let x=0;x({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:r,rects:l,platform:o,elements:i,middlewareData:s}=t,{element:c,padding:d=0}=Ca(e,t)||{};if(c==null)return{};const f=ub(d),m={x:n,y:a},p=gf(r),h=yf(p),x=await o.getDimensions(c),k=p==="y",g=k?"top":"left",C=k?"bottom":"right",E=k?"clientHeight":"clientWidth",D=l.reference[h]+l.reference[p]-m[p]-l.floating[h],O=m[p]-l.reference[p],L=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let z=L?L[E]:0;(!z||!await(o.isElement==null?void 0:o.isElement(L)))&&(z=i.floating[E]||l.floating[h]);const W=D/2-O/2,$=z/2-x[h]/2-1,q=or(f[g],$),J=or(f[C],$),R=z-x[h]-J,j=z/2-x[h]/2+W,Q=sb(q,j,R),N=!s.arrow&&Gl(r)!=null&&j!==Q&&l.reference[h]/2-(jQ<=0)){var J,R;const Q=(((J=l.flip)==null?void 0:J.index)||0)+1,N=z[Q];if(N&&(!(f==="alignment"?C!==Yn(N):!1)||q.every(de=>Yn(de.placement)===C?de.overflows[0]>0:!0)))return{data:{index:Q,overflows:q},reset:{placement:N}};let ne=(R=q.filter(te=>te.overflows[0]<=0).sort((te,de)=>te.overflows[1]-de.overflows[1])[0])==null?void 0:R.placement;if(!ne)switch(p){case"bestFit":{var j;const te=(j=q.filter(de=>{if(L){const pe=Yn(de.placement);return pe===C||pe==="y"}return!0}).map(de=>[de.placement,de.overflows.filter(pe=>pe>0).reduce((pe,xe)=>pe+xe,0)]).sort((de,pe)=>de[1]-pe[1])[0])==null?void 0:j[0];te&&(ne=te);break}case"initialPlacement":ne=i;break}if(r!==ne)return{reset:{placement:ne}}}return{}}}};function Qv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function em(e){return r3.some(t=>e[t]>=0)}const g3=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:a}=t,{strategy:r="referenceHidden",...l}=Ca(e,t);switch(r){case"referenceHidden":{const o=await a.detectOverflow(t,{...l,elementContext:"reference"}),i=Qv(o,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:em(i)}}}case"escaped":{const o=await a.detectOverflow(t,{...l,altBoundary:!0}),i=Qv(o,n.floating);return{data:{escapedOffsets:i,escaped:em(i)}}}default:return{}}}}},cb=new Set(["left","top"]);async function b3(e,t){const{placement:n,platform:a,elements:r}=e,l=await(a.isRTL==null?void 0:a.isRTL(r.floating)),o=ir(n),i=Gl(n),s=Yn(n)==="y",c=cb.has(o)?-1:1,d=l&&s?-1:1,f=Ca(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:h}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return i&&typeof h=="number"&&(p=i==="end"?h*-1:h),s?{x:p*d,y:m*c}:{x:m*c,y:p*d}}const _3=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:r,y:l,placement:o,middlewareData:i}=t,s=await b3(t,e);return o===((n=i.offset)==null?void 0:n.placement)&&(a=i.arrow)!=null&&a.alignmentOffset?{}:{x:r+s.x,y:l+s.y,data:{...s,placement:o}}}}},x3=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:a,placement:r,platform:l}=t,{mainAxis:o=!0,crossAxis:i=!1,limiter:s={fn:C=>{let{x:E,y:D}=C;return{x:E,y:D}}},...c}=Ca(e,t),d={x:n,y:a},f=await l.detectOverflow(t,c),m=Yn(r),p=hf(m);let h=d[p],x=d[m];const k=(C,E)=>sb(E+f[C==="y"?"top":"left"],E,E-f[C==="y"?"bottom":"right"]);o&&(h=k(p,h)),i&&(x=k(m,x));const g=s.fn({...t,[p]:h,[m]:x});return{...g,data:{x:g.x-n,y:g.y-a,enabled:{[p]:o,[m]:i}}}}}},k3=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,a;const{x:r,y:l,placement:o,rects:i,middlewareData:s}=t,{offset:c=0,mainAxis:d=!0,crossAxis:f=!0}=Ca(e,t),m={x:r,y:l},p=Yn(o),h=hf(p);let x=m[h],k=m[p];const g=Ca(c,t),C=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:(n=g.mainAxis)!=null?n:0,crossAxis:(a=g.crossAxis)!=null?a:0};if(d){const O=h==="y"?"height":"width",L=i.reference[h]-i.floating[O]+C.mainAxis,z=i.reference[h]+i.reference[O]-C.mainAxis;xz&&(x=z)}if(f){var E,D;const O=h==="y"?"width":"height",L=cb.has(ir(o)),z=i.reference[p]-i.floating[O]+(L&&((E=s.offset)==null?void 0:E[p])||0)+(L?0:C.crossAxis),W=i.reference[p]+i.reference[O]+(L?0:((D=s.offset)==null?void 0:D[p])||0)-(L?C.crossAxis:0);kW&&(k=W)}return{[h]:x,[p]:k}}}},w3=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:a,platform:r,elements:l}=t,{apply:o=()=>{},...i}=Ca(e,t),s=await r.detectOverflow(t,i),c=ir(n),d=Gl(n),f=Yn(n)==="y",{width:m,height:p}=a.floating;let h,x;c==="top"||c==="bottom"?(h=c,x=d===(await(r.isRTL==null?void 0:r.isRTL(l.floating))?"start":"end")?"left":"right"):(x=c,h=d==="end"?"top":"bottom");const k=p-s.top-s.bottom,g=m-s.left-s.right,C=or(p-s[h],k),E=or(m-s[x],g),D=t.middlewareData.shift,O=!D;let L=C,z=E;D!=null&&D.enabled.x&&(z=g),D!=null&&D.enabled.y&&(L=k),O&&!d&&(f?z=m-2*ga(s.left,s.right):L=p-2*ga(s.top,s.bottom)),await o({...t,availableWidth:z,availableHeight:L});const W=await r.getDimensions(l.floating);return m!==W.width||p!==W.height?{reset:{rects:!0}}:{}}}};function iu(){return typeof window<"u"}function Wr(e){return bf(e)?(e.nodeName||"").toLowerCase():"#document"}function sn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ma(e){var t;return(t=(bf(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function bf(e){return iu()?e instanceof Node||e instanceof sn(e).Node:!1}function na(e){return iu()?e instanceof Element||e instanceof sn(e).Element:!1}function pr(e){return iu()?e instanceof HTMLElement||e instanceof sn(e).HTMLElement:!1}function tm(e){return!iu()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof sn(e).ShadowRoot}function su(e){const{overflow:t,overflowX:n,overflowY:a,display:r}=aa(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&r!=="inline"&&r!=="contents"}function $3(e){return/^(table|td|th)$/.test(Wr(e))}function uu(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const C3=/transform|translate|scale|rotate|perspective|filter/,S3=/paint|layout|strict|content/,$r=e=>!!e&&e!=="none";let rc;function _f(e){const t=na(e)?aa(e):e;return $r(t.transform)||$r(t.translate)||$r(t.scale)||$r(t.rotate)||$r(t.perspective)||!xf()&&($r(t.backdropFilter)||$r(t.filter))||C3.test(t.willChange||"")||S3.test(t.contain||"")}function E3(e){let t=Vr(e);for(;pr(t)&&!Go(t);){if(_f(t))return t;if(uu(t))return null;t=Vr(t)}return null}function xf(){return rc==null&&(rc=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),rc}function Go(e){return/^(html|body|#document)$/.test(Wr(e))}function aa(e){return sn(e).getComputedStyle(e)}function cu(e){return na(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Vr(e){if(Wr(e)==="html")return e;const t=e.assignedSlot||e.parentNode||tm(e)&&e.host||Ma(e);return tm(t)?t.host:t}function db(e){const t=Vr(e);return Go(t)?(e.ownerDocument||e).body:pr(t)&&su(t)?t:db(t)}function Yo(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=db(e),l=r===((a=e.ownerDocument)==null?void 0:a.body),o=sn(r);if(l){const i=id(o);return t.concat(o,o.visualViewport||[],su(r)?r:[],i&&n?Yo(i):[])}else return t.concat(r,Yo(r,[],n))}function id(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function fb(e){const t=aa(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const r=pr(e),l=r?e.offsetWidth:n,o=r?e.offsetHeight:a,i=bs(n)!==l||bs(a)!==o;return i&&(n=l,a=o),{width:n,height:a,$:i}}function kf(e){return na(e)?e:e.contextElement}function Ol(e){const t=kf(e);if(!pr(t))return ba(1);const n=t.getBoundingClientRect(),{width:a,height:r,$:l}=fb(t);let o=(l?bs(n.width):n.width)/a,i=(l?bs(n.height):n.height)/r;return(!o||!Number.isFinite(o))&&(o=1),(!i||!Number.isFinite(i))&&(i=1),{x:o,y:i}}const A3=ba(0);function pb(e){const t=sn(e);return!xf()||!t.visualViewport?A3:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function T3(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===sn(e)}function zr(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),l=kf(e);let o=ba(1);t&&(a?na(a)&&(o=Ol(a)):o=Ol(e));const i=T3(l,n,a)?pb(l):ba(0);let s=(r.left+i.x)/o.x,c=(r.top+i.y)/o.y,d=r.width/o.x,f=r.height/o.y;if(l&&a){const m=sn(l),p=na(a)?sn(a):a;let h=m,x=id(h);for(;x&&p!==h;){const k=Ol(x),g=x.getBoundingClientRect(),C=aa(x),E=g.left+(x.clientLeft+parseFloat(C.paddingLeft))*k.x,D=g.top+(x.clientTop+parseFloat(C.paddingTop))*k.y;s*=k.x,c*=k.y,d*=k.x,f*=k.y,s+=E,c+=D,h=sn(x),x=id(h)}}return xs({width:d,height:f,x:s,y:c})}function du(e,t){const n=cu(e).scrollLeft;return t?t.left+n:zr(Ma(e)).left+n}function vb(e,t){const n=e.getBoundingClientRect(),a=n.left+t.scrollLeft-du(e,n),r=n.top+t.scrollTop;return{x:a,y:r}}function D3(e){let{elements:t,rect:n,offsetParent:a,strategy:r}=e;const l=r==="fixed",o=Ma(a),i=t?uu(t.floating):!1;if(a===o||i&&l)return n;let s={scrollLeft:0,scrollTop:0},c=ba(1);const d=ba(0),f=pr(a);if((f||!l)&&((Wr(a)!=="body"||su(o))&&(s=cu(a)),f)){const p=zr(a);c=Ol(a),d.x=p.x+a.clientLeft,d.y=p.y+a.clientTop}const m=o&&!f&&!l?vb(o,s):ba(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-s.scrollLeft*c.x+d.x+m.x,y:n.y*c.y-s.scrollTop*c.y+d.y+m.y}}function O3(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function M3(e){const t=cu(e),n=e.ownerDocument.body,a=ga(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=ga(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let l=-t.scrollLeft+du(e);const o=-t.scrollTop;return aa(n).direction==="rtl"&&(l+=ga(e.clientWidth,n.clientWidth)-a),{width:a,height:r,x:l,y:o}}const P3=25;function R3(e,t,n){n===void 0&&(n="viewport");const a=n==="layoutViewport",r=sn(e),l=Ma(e),o=r.visualViewport;let i=l.clientWidth,s=l.clientHeight,c=0,d=0;if(o){const m=!xf()||t==="fixed";a?m||(c=-o.offsetLeft,d=-o.offsetTop):(i=o.width,s=o.height,m&&(c=o.offsetLeft,d=o.offsetTop))}if(du(l)<=0){const m=l.ownerDocument,p=m.body,h=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,k=Math.abs(l.clientWidth-p.clientWidth-x),g=getComputedStyle(l).scrollbarGutter==="stable both-edges"?k/2:k;g<=P3&&(i-=g)}return{width:i,height:s,x:c,y:d}}function I3(e,t){const n=zr(e,!0,t==="fixed"),a=n.top+e.clientTop,r=n.left+e.clientLeft,l=Ol(e),o=e.clientWidth*l.x,i=e.clientHeight*l.y,s=r*l.x,c=a*l.y;return{width:o,height:i,x:s,y:c}}function nm(e,t,n){let a;if(t==="viewport"||t==="layoutViewport")a=R3(e,n,t);else if(t==="document")a=M3(Ma(e));else if(na(t))a=I3(t,n);else{const r=pb(e);a={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return xs(a)}function q3(e,t){const n=t.get(e);if(n)return n;let a=Yo(e,[],!1).filter(i=>na(i)&&Wr(i)!=="body"),r=null;const l=aa(e).position==="fixed";let o=l?Vr(e):e;for(;na(o)&&!Go(o);){const i=aa(o),s=_f(o),c=r?r.position:l?"fixed":"";!s&&(c==="fixed"||c==="absolute"&&i.position==="static")?a=a.filter(f=>f!==o):r=i,o=Vr(o)}return t.set(e,a),a}function N3(e){let{element:t,boundary:n,rootBoundary:a,strategy:r}=e;const o=[...n==="clippingAncestors"?uu(t)?[]:q3(t,this._c):[].concat(n),a],i=nm(t,o[0],r);let s=i.top,c=i.right,d=i.bottom,f=i.left;for(let m=1;m{i(!1,1e-7)},1e3)}z=!1}try{a=new IntersectionObserver(W,{...L,root:l.ownerDocument})}catch{a=new IntersectionObserver(W,L)}a.observe(e)}const s=sn(e),c=()=>i(n);return s.addEventListener("resize",c),i(!0),()=>{s.removeEventListener("resize",c),o()}}function U3(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:r=!0,ancestorResize:l=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:i=typeof IntersectionObserver=="function",animationFrame:s=!1}=a,c=kf(e),d=r||l?[...c?Yo(c):[],...t?Yo(t):[]]:[];d.forEach(g=>{r&&g.addEventListener("scroll",n),l&&g.addEventListener("resize",n)});const f=c&&i?j3(c,n,l):null;let m=-1,p=null;o&&(p=new ResizeObserver(g=>{let[C]=g;C&&C.target===c&&p&&t&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var E;(E=p)==null||E.observe(t)})),n()}),c&&!s&&p.observe(c),t&&p.observe(t));let h,x=s?zr(e):null;s&&k();function k(){const g=zr(e);x&&!hb(x,g)&&n(),x=g,h=requestAnimationFrame(k)}return n(),()=>{var g;d.forEach(C=>{r&&C.removeEventListener("scroll",n),l&&C.removeEventListener("resize",n)}),f?.(),(g=p)==null||g.disconnect(),p=null,s&&cancelAnimationFrame(h)}}const H3=_3,W3=x3,rm=y3,K3=w3,G3=g3,Y3=h3,J3=k3,Z3=(e,t,n)=>{const a=new Map,r=n??{},l={...z3,...r.platform,_c:a};return m3(e,t,{...r,platform:l})};function X3(e){return e!=null&&typeof e=="object"&&"$el"in e}function sd(e){if(X3(e)){const t=e.$el;return bf(t)&&Wr(t)==="#comment"?null:t}return e}function ml(e){return typeof e=="function"?e():u(e)}function Q3(e){return{name:"arrow",options:e,fn(t){const n=sd(ml(e.element));return n==null?{}:Y3({element:n,padding:e.padding}).fn(t)}}}function yb(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function lm(e,t){const n=yb(e);return Math.round(t*n)/n}function eT(e,t,n){n===void 0&&(n={});const a=n.whileElementsMounted,r=_(()=>{var z;return(z=ml(n.open))!=null?z:!0}),l=_(()=>ml(n.middleware)),o=_(()=>{var z;return(z=ml(n.placement))!=null?z:"bottom"}),i=_(()=>{var z;return(z=ml(n.strategy))!=null?z:"absolute"}),s=_(()=>{var z;return(z=ml(n.transform))!=null?z:!0}),c=_(()=>sd(e.value)),d=_(()=>sd(t.value)),f=P(0),m=P(0),p=P(i.value),h=P(o.value),x=ni({}),k=P(!1),g=_(()=>{const z={position:p.value,left:"0",top:"0"};if(!d.value)return z;const W=lm(d.value,f.value),$=lm(d.value,m.value);return s.value?{...z,transform:"translate("+W+"px, "+$+"px)",...yb(d.value)>=1.5&&{willChange:"transform"}}:{position:p.value,left:W+"px",top:$+"px"}});let C;function E(){if(c.value==null||d.value==null)return;const z=r.value;Z3(c.value,d.value,{middleware:l.value,placement:o.value,strategy:i.value}).then(W=>{f.value=W.x,m.value=W.y,p.value=W.strategy,h.value=W.placement,x.value=W.middlewareData,k.value=z!==!1})}function D(){typeof C=="function"&&(C(),C=void 0)}function O(){if(D(),a===void 0){E();return}if(c.value!=null&&d.value!=null){C=a(c.value,d.value,E);return}}function L(){r.value||(k.value=!1)}return je([l,o,i,r],E,{flush:"sync"}),je([c,d],O,{flush:"sync"}),je(r,L,{flush:"sync"}),wd()&&ih(D),{x:al(f),y:al(m),strategy:al(p),placement:al(h),middlewareData:al(x),isPositioned:al(k),floatingStyles:g,update:E}}const gb={side:"bottom",sideOffset:0,sideFlip:!0,align:"center",alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:"partial",hideWhenDetached:!1,positionStrategy:"fixed",updatePositionStrategy:"optimized",prioritizePosition:!1},[iV,tT]=Ct("PopperContent");var nT=le({inheritAttrs:!1,__name:"PopperContent",props:Gh({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...gb}),emits:["placed"],setup(e,{emit:t}){const n=e,a=t,r=ob(),{forwardRef:l,currentElement:o}=tt(),i=P(),s=P(),{width:c,height:d}=VE(s),f=_(()=>n.side+(n.align!=="center"?`-${n.align}`:"")),m=_(()=>typeof n.collisionPadding=="number"?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),p=_(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),h=_(()=>({padding:m.value,boundary:p.value.filter(n3),altBoundary:p.value.length>0})),x=_(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),k=yS(()=>[H3({mainAxis:n.sideOffset+d.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&rm({...h.value,...x.value}),n.avoidCollisions&&W3({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky==="partial"?J3():void 0,...h.value}),!n.prioritizePosition&&n.avoidCollisions&&rm({...h.value,...x.value}),K3({...h.value,apply:({elements:R,rects:j,availableWidth:Q,availableHeight:N})=>{const{width:ne,height:te}=j.reference,de=R.floating.style;de.setProperty("--reka-popper-available-width",`${Q}px`),de.setProperty("--reka-popper-available-height",`${N}px`),de.setProperty("--reka-popper-anchor-width",`${ne}px`),de.setProperty("--reka-popper-anchor-height",`${te}px`)}}),s.value&&Q3({element:s.value,padding:n.arrowPadding}),a3({arrowWidth:c.value,arrowHeight:d.value}),n.hideWhenDetached&&G3({strategy:"referenceHidden",...h.value})]),g=_(()=>n.reference??r.anchor.value),{floatingStyles:C,placement:E,isPositioned:D,middlewareData:O}=eT(g,i,{strategy:n.positionStrategy,placement:f,whileElementsMounted:(...R)=>U3(...R,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy==="always"}),middleware:k}),L=_(()=>ld(E.value)[0]),z=_(()=>ld(E.value)[1]);Ph(()=>{D.value&&a("placed")});const W=_(()=>{const R=O.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&R}),$=P("");gn(()=>{o.value&&($.value=window.getComputedStyle(o.value).zIndex)});const q=_(()=>O.value.arrow?.x??0),J=_(()=>O.value.arrow?.y??0);return tT({placedSide:L,onArrowChange:R=>s.value=R,arrowX:q,arrowY:J,shouldHideArrow:W}),(R,j)=>(v(),b("div",{ref_key:"floatingRef",ref:i,"data-reka-popper-content-wrapper":"",style:Tn({...u(C),transform:u(D)?u(C).transform:"translate(0, -200%)",minWidth:"max-content",zIndex:$.value,"--reka-popper-transform-origin":[u(O).transformOrigin?.x,u(O).transformOrigin?.y].join(" "),...u(O).hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}})},[F(u(nt),He({ref:u(l)},R.$attrs,{"as-child":n.asChild,as:R.as,"data-side":L.value,"data-align":z.value,style:{animation:u(D)?void 0:"none"}}),{default:B(()=>[_e(R.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","style"])],4))}}),bb=nT;const wf=["day","month","year"],$f=["hour","minute","second","dayPeriod"],_b=[...wf,...$f];function aT(e){return wf.includes(e)}function xb(e){return _b.includes(e)}const rT=["ach","af","am","an","ar","ast","az","be","bg","bn","br","bs","ca","cak","ckb","cs","cy","da","de","dsb","el","en","eo","es","et","eu","fa","ff","fi","fr","fy","ga","gd","gl","he","hr","hsb","hu","ia","id","it","ja","ka","kk","kn","ko","lb","lo","lt","lv","meh","ml","ms","nl","nn","no","oc","pl","pt","rm","ro","ru","sc","scn","sk","sl","sr","sv","szl","tg","th","tr","uk","zh-CN","zh-TW"],lT=["year","month","day"],oc={ach:{year:"mwaka",month:"dwe",day:"nino"},af:{year:"jjjj",month:"mm",day:"dd"},am:{year:"ዓዓዓዓ",month:"ሚሜ",day:"ቀቀ"},an:{year:"aaaa",month:"mm",day:"dd"},ar:{year:"سنة",month:"شهر",day:"يوم"},ast:{year:"aaaa",month:"mm",day:"dd"},az:{year:"iiii",month:"aa",day:"gg"},be:{year:"гггг",month:"мм",day:"дд"},bg:{year:"гггг",month:"мм",day:"дд"},bn:{year:"yyyy",month:"মিমি",day:"dd"},br:{year:"bbbb",month:"mm",day:"dd"},bs:{year:"gggg",month:"mm",day:"dd"},ca:{year:"aaaa",month:"mm",day:"dd"},cak:{year:"jjjj",month:"ii",day:"q'q'"},ckb:{year:"ساڵ",month:"مانگ",day:"ڕۆژ"},cs:{year:"rrrr",month:"mm",day:"dd"},cy:{year:"bbbb",month:"mm",day:"dd"},da:{year:"åååå",month:"mm",day:"dd"},de:{year:"jjjj",month:"mm",day:"tt"},dsb:{year:"llll",month:"mm",day:"źź"},el:{year:"εεεε",month:"μμ",day:"ηη"},en:{year:"yyyy",month:"mm",day:"dd"},eo:{year:"jjjj",month:"mm",day:"tt"},es:{year:"aaaa",month:"mm",day:"dd"},et:{year:"aaaa",month:"kk",day:"pp"},eu:{year:"uuuu",month:"hh",day:"ee"},fa:{year:"سال",month:"ماه",day:"روز"},ff:{year:"hhhh",month:"ll",day:"ññ"},fi:{year:"vvvv",month:"kk",day:"pp"},fr:{year:"aaaa",month:"mm",day:"jj"},fy:{year:"jjjj",month:"mm",day:"dd"},ga:{year:"bbbb",month:"mm",day:"ll"},gd:{year:"bbbb",month:"mm",day:"ll"},gl:{year:"aaaa",month:"mm",day:"dd"},he:{year:"שנה",month:"חודש",day:"יום"},hr:{year:"gggg",month:"mm",day:"dd"},hsb:{year:"llll",month:"mm",day:"dd"},hu:{year:"éééé",month:"hh",day:"nn"},ia:{year:"aaaa",month:"mm",day:"dd"},id:{year:"tttt",month:"bb",day:"hh"},it:{year:"aaaa",month:"mm",day:"gg"},ja:{year:" 年 ",month:"月",day:"日"},ka:{year:"წწწწ",month:"თთ",day:"რრ"},kk:{year:"жжжж",month:"аа",day:"кк"},kn:{year:"ವವವವ",month:"ಮಿಮೀ",day:"ದಿದಿ"},ko:{year:"연도",month:"월",day:"일"},lb:{year:"jjjj",month:"mm",day:"dd"},lo:{year:"ປປປປ",month:"ດດ",day:"ວວ"},lt:{year:"mmmm",month:"mm",day:"dd"},lv:{year:"gggg",month:"mm",day:"dd"},meh:{year:"aaaa",month:"mm",day:"dd"},ml:{year:"വർഷം",month:"മാസം",day:"തീയതി"},ms:{year:"tttt",month:"mm",day:"hh"},nl:{year:"jjjj",month:"mm",day:"dd"},nn:{year:"åååå",month:"mm",day:"dd"},no:{year:"åååå",month:"mm",day:"dd"},oc:{year:"aaaa",month:"mm",day:"jj"},pl:{year:"rrrr",month:"mm",day:"dd"},pt:{year:"aaaa",month:"mm",day:"dd"},rm:{year:"oooo",month:"mm",day:"dd"},ro:{year:"aaaa",month:"ll",day:"zz"},ru:{year:"гггг",month:"мм",day:"дд"},sc:{year:"aaaa",month:"mm",day:"dd"},scn:{year:"aaaa",month:"mm",day:"jj"},sk:{year:"rrrr",month:"mm",day:"dd"},sl:{year:"llll",month:"mm",day:"dd"},sr:{year:"гггг",month:"мм",day:"дд"},sv:{year:"åååå",month:"mm",day:"dd"},szl:{year:"rrrr",month:"mm",day:"dd"},tg:{year:"сссс",month:"мм",day:"рр"},th:{year:"ปปปป",month:"ดด",day:"วว"},tr:{year:"yyyy",month:"aa",day:"gg"},uk:{year:"рррр",month:"мм",day:"дд"},"zh-CN":{year:"年",month:"月",day:"日"},"zh-TW":{year:"年",month:"月",day:"日"}};function oT(e){if(om(e))return oc[e];{const t=cT(e);return om(t)?oc[t]:oc.en}}function ic(e,t,n){return iT(e)?oT(n)[e]:uT(e)?t:sT(e)?"––":""}function om(e){return rT.includes(e)}function iT(e){return lT.includes(e)}function sT(e){return e==="hour"||e==="minute"||e==="second"}function uT(e){return e==="era"||e==="dayPeriod"}function cT(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}const dT=["hour","minute","second"];function ud(e){return Object.fromEntries($f.map(t=>t==="dayPeriod"?[t,e.formatter.dayPeriod(wn(e.value))]:[t,e.value[t]]))}function im(e){const{formatter:t}=e,n=wf.map(a=>[a,e.value[a]]);if("hour"in e.value){const a=ud({value:e.value,formatter:t});return{...Object.fromEntries(n),...a}}return Object.fromEntries(n)}function fT(e){return Object.fromEntries($f.map(t=>t==="dayPeriod"?[t,"AM"]:[t,null]).filter(([t])=>!(t==="literal"||t===null||e==="minute"&&t==="second"||e==="hour"&&(t==="second"||t==="minute"))))}function pT(e){const t=_b.map(n=>n==="dayPeriod"?[n,"AM"]:[n,null]).filter(([n])=>n==="literal"||n===null||e==="minute"&&n==="second"||e==="hour"&&(n==="second"||n==="minute")?!1:e==="day"?!dT.includes(n)&&n!=="dayPeriod":!0);return Object.fromEntries(t)}function vT(e){const{segmentValues:t,formatter:n,locale:a}=e;function r(o){if("hour"in t){const i=t[o];return i!==null?o==="day"?n.part(e.dateRef.set({[o]:i,month:t.month??1}),o,{hourCycle:Ko(e.hourCycle)}):n.part(e.dateRef.set({[o]:i}),o,{hourCycle:Ko(e.hourCycle)}):ic(o,"",a.value)}else{if(aT(o)){const i=t[o];return i!==null?o==="day"?n.part(e.dateRef.set({[o]:i,month:t.month??1}),o):n.part(e.dateRef.set({[o]:i}),o):ic(o,"",a.value)}return""}}return Object.keys(t).reduce((o,i)=>{if(!xb(i))return o;if("hour"in t&&i==="dayPeriod"){const s=t[i];s!==null?o[i]=s:o[i]=ic(i,"AM",a.value)}else o[i]=r(i);return o},{})}function mT(e){const{granularity:t,formatter:n,contentObj:a,hideTimeZone:r,hourCycle:l,isTimeValue:o}=e;return n.toParts(e.dateRef,IE(t,l,o)).map(c=>["literal","timeZoneName",null].includes(c.type)||!xb(c.type)?{part:c.type,value:c.value}:{part:c.type,value:a[c.type]}).filter(c=>!(c.part===null||c.value===null||c.part==="timeZoneName"&&(!Wo(e.dateRef)||r)||(!Wo(e.dateRef)||r)&&c.part==="literal"&&["[","]"].includes(c.value.trim())))}function kb(e){const t=vT(e),n=mT({contentObj:t,...e});return{obj:t,arr:n}}function ca(e){const t=jl();return e===t.ARROW_RIGHT||e===t.ARROW_LEFT}function Sr(e){return!Number.isNaN(Number.parseInt(e))}function Fa(e){const t=jl();return!!([t.ENTER,t.ARROW_UP,t.ARROW_DOWN,t.ARROW_LEFT,t.ARROW_RIGHT,t.BACKSPACE,t.SPACE,"a","A","p","P"].includes(e)||Sr(e))}function sm(e){return Array.from(e.querySelectorAll("[data-reka-date-field-segment]")).filter(t=>t.getAttribute("data-reka-date-field-segment")!=="literal")}function um(e){return Array.from(e.querySelectorAll("[data-reka-time-field-segment]")).filter(t=>t.getAttribute("data-reka-time-field-segment")!=="literal")}const hT=/^\d$/;function vr(e){return{role:"spinbutton",contenteditable:!0,tabindex:e.disabled?void 0:0,spellcheck:!1,inputmode:"numeric",autocorrect:"off",enterkeyhint:"next",style:"caret-color: transparent;"}}function yT(e){const{segmentValues:t,placeholder:n}=e,a=t.day===null,r={};t.day&&(r.day=t.day),t.month&&(r.month=t.month);const l=Object.keys(r).length>0?n.set(r):n,o=l.day,i=1,s=Qa(l),c=a?"Empty":`${o}`;return{...vr(e),"aria-label":"day,","aria-valuemin":i,"aria-valuemax":s,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":a?"":void 0}}function gT(e){const{segmentValues:t,placeholder:n,formatter:a}=e,r=t.month===null,l=t.month?n.set({month:t.month}):n,o=l.month,i=1,s=12,c=r?"Empty":`${o} - ${a.fullMonth(wn(l))}`;return{...vr(e),"aria-label":"month, ",contenteditable:!0,"aria-valuemin":i,"aria-valuemax":s,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function bT(e){const{segmentValues:t,placeholder:n}=e,a=t.year===null,r=t.year?n.set({year:t.year}):n,l=1,o=9999,i=r.year,s=a?"Empty":`${i}`;return{...vr(e),"aria-label":"year, ","aria-valuemin":l,"aria-valuemax":o,"aria-valuenow":i,"aria-valuetext":s,"data-placeholder":a?"":void 0}}function _T(e){const{segmentValues:t,hourCycle:n,placeholder:a}=e;if(!("hour"in t)||!("hour"in a))return{};const r=t.hour===null,l=t.hour?a.set({hour:t.hour}):a,o=n===12?1:0,i=n===12?12:23,s=l.hour,c=r?"Empty":`${s} ${t.dayPeriod??""}`;return{...vr(e),"aria-label":"hour, ","aria-valuemin":o,"aria-valuemax":i,"aria-valuenow":s,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function xT(e){const{segmentValues:t,placeholder:n}=e;if(!("minute"in t)||!("minute"in n))return{};const a=t.minute===null,l=(t.minute?n.set({minute:t.minute}):n).minute,o=0,i=59,s=a?"Empty":`${l}`;return{...vr(e),"aria-label":"minute, ","aria-valuemin":o,"aria-valuemax":i,"aria-valuenow":l,"aria-valuetext":s,"data-placeholder":a?"":void 0}}function kT(e){const{segmentValues:t,placeholder:n}=e;if(!("second"in t)||!("second"in n))return{};const a=t.second===null,l=(t.second?n.set({second:t.second}):n).second,o=0,i=59,s=a?"Empty":`${l}`;return{...vr(e),"aria-label":"second, ","aria-valuemin":o,"aria-valuemax":i,"aria-valuenow":l,"aria-valuetext":s,"data-placeholder":a?"":void 0}}function wT(e){const{segmentValues:t}=e;if(!("dayPeriod"in t))return{};const n=0,a=12,r=t.hour?t.hour>12?t.hour-12:t.hour:0,l=t.dayPeriod??"AM";return{...vr(e),inputmode:"text","aria-label":"AM/PM","aria-valuemin":n,"aria-valuemax":a,"aria-valuenow":r,"aria-valuetext":l}}function $T(e){return{"aria-hidden":!0,"data-segment":"literal"}}function CT(e){return{role:"textbox","aria-label":"timezone, ","data-readonly":!0,"data-segment":"timeZoneName",tabindex:e.disabled?void 0:0,style:"caret-color: transparent;"}}function ST(e){const{segmentValues:t,placeholder:n}=e,a=0,r=0,l=0,o="era"in t?t.era:n.era;return{...vr(e),"aria-label":"era","aria-valuemin":a,"aria-valuemax":r,"aria-valuenow":l,"aria-valuetext":o}}const ET={day:{attrs:yT},month:{attrs:gT},year:{attrs:bT},hour:{attrs:_T},minute:{attrs:xT},second:{attrs:kT},dayPeriod:{attrs:wT},literal:{attrs:$T},timeZoneName:{attrs:CT},era:{attrs:ST}};function wb(e){const t=jl();function n({e:$,part:q,dateRef:J,prevValue:R}){const j=e.step.value[q]??1,Q=$.key===t.ARROW_UP?j:-j,N=0,ne=59;if(R===null)return Q>0?N:ne;const te=[q,Q];return J.set({[q]:R}).cycle(...te)[q]}function a($){if(e.hasLeftFocus.value=!1,$===null)return $;const q=$.toString();return q.length===1?(e.modelValue.value=void 0,null):Number.parseInt(q.slice(0,-1))}function r({e:$,part:q,dateRef:J,prevValue:R}){const j=e.step.value[q]??1,Q=$.key===t.ARROW_UP?j:-j;if(R===null)return J[q];if(q==="hour"&&"hour"in J){const ne=[q,Q];return J.set({[q]:R}).cycle(...ne)[q]}const N=[q,Q];return q==="day"?J.set({[q]:R,month:e.segmentValues.value.month??1}).cycle(...N)[q]:J.set({[q]:R}).cycle(...N)[q]}function l($,q,J){let R=!1;const j=Math.floor($/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,J=null),J===null)return q===0?(e.lastKeyZero.value=!0,{value:null,moveToNext:R}):((e.lastKeyZero.value||q>j)&&(R=!0),e.lastKeyZero.value=!1,{value:q,moveToNext:R});const Q=J.toString().length,N=Number.parseInt(J.toString()+q.toString());return Q===2||N>$?((q>j||N>$)&&(R=!0),{value:q,moveToNext:R}):(R=!0,{value:N,moveToNext:R})}function o($,q){let R=!1;const j=Math.floor(59/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,q=null),q===null)return $===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:R}):((e.lastKeyZero.value||$>j)&&(R=!0),e.lastKeyZero.value=!1,{value:$,moveToNext:R});const Q=q.toString().length,N=Number.parseInt(q.toString()+$.toString());return Q===2||N>59?($>j&&(R=!0),{value:$,moveToNext:R}):(R=!0,{value:N,moveToNext:R})}function i($,q,J){let R=!1;const j=Math.floor($/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,J=null),J===null)return q===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:R}):((e.lastKeyZero.value||q>j)&&(R=!0),e.lastKeyZero.value=!1,{value:q,moveToNext:R});const Q=J.toString().length,N=Number.parseInt(J.toString()+q.toString());return Q===2||N>$?(q>j&&(R=!0),{value:q,moveToNext:R}):(R=!0,{value:N,moveToNext:R})}function s($,q){let J=!1;if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,q=null),q===null)return{value:$===0?1:$,moveToNext:J};const R=q.toString()+$.toString();return R.length>4?{value:$===0?1:$,moveToNext:J}:(R.length===4&&(J=!0),{value:Number.parseInt(R),moveToNext:J})}const c=_(()=>ET[e.part]?.attrs({disabled:e.disabled.value,placeholder:e.placeholder.value,hourCycle:e.hourCycle,segmentValues:e.segmentValues.value,formatter:e.formatter})??{});function d($){if(!Fa($.key)||ca($.key))return;const q=e.segmentValues.value.day;if($.key===t.ARROW_DOWN||$.key===t.ARROW_UP){e.segmentValues.value.day=r({e:$,part:"day",dateRef:e.placeholder.value,prevValue:q});return}if(Sr($.key)){const J=Number.parseInt($.key),R=e.segmentValues.value.month,j=R?Qa(e.placeholder.value.set({month:R})):31,{value:Q,moveToNext:N}=l(j,J,q);e.segmentValues.value.day=Q,N&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.day=a(q))}function f($){if(!Fa($.key)||ca($.key))return;const q=e.segmentValues.value.month;if($.key===t.ARROW_DOWN||$.key===t.ARROW_UP){e.segmentValues.value.month=r({e:$,part:"month",dateRef:e.placeholder.value,prevValue:q});return}if(Sr($.key)){const J=Number.parseInt($.key),{value:R,moveToNext:j}=l(12,J,q);e.segmentValues.value.month=R,j&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.month=a(q))}function m($){if(!Fa($.key)||ca($.key))return;const q=e.segmentValues.value.year;if($.key===t.ARROW_DOWN||$.key===t.ARROW_UP){e.segmentValues.value.year=r({e:$,part:"year",dateRef:e.placeholder.value,prevValue:q});return}if(Sr($.key)){const J=Number.parseInt($.key),{value:R,moveToNext:j}=s(J,q);e.segmentValues.value.year=R,j&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.year=a(q))}function p($){const q=new An($,{hour:"numeric"}).resolvedOptions().hourCycle;return q==="h11"||q==="h12"}function h($){const q=e.placeholder.value;if(!Fa($.key)||ca($.key)||!("hour"in q)||!("hour"in e.segmentValues.value))return;const J=e.segmentValues.value.hour;if($.key===t.ARROW_UP||$.key===t.ARROW_DOWN){const R=r({e:$,part:"hour",dateRef:e.placeholder.value,prevValue:J});e.segmentValues.value.hour=R,"dayPeriod"in e.segmentValues.value&&R!==null&&(e.segmentValues.value.dayPeriod=R>=12?"PM":"AM");return}if(Sr($.key)){const R=Number.parseInt($.key),j=e.hourCycle!==void 0?e.hourCycle===12:p(e.formatter.getLocale()),Q=j?12:24;let N=J;j&&J!==null&&(N=J%12===0?0:J>12?J-12:J);const{value:ne,moveToNext:te}=i(Q,R,N);let de=ne;if(j&&ne!==null){const pe=e.segmentValues.value.dayPeriod||"AM";ne===12?de=pe==="AM"?0:12:de=pe==="PM"?ne+12:ne}e.segmentValues.value.hour=de,te&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.hour=a(J))}function x($){const q=e.placeholder.value;if(!Fa($.key)||ca($.key)||!("minute"in q)||!("minute"in e.segmentValues.value))return;const J=e.segmentValues.value.minute;if(($.key===t.ARROW_UP||$.key===t.ARROW_DOWN)&&(e.segmentValues.value.minute=n({e:$,part:"minute",dateRef:e.placeholder.value,prevValue:J})),Sr($.key)){const R=Number.parseInt($.key),{value:j,moveToNext:Q}=o(R,J);e.segmentValues.value.minute=j,Q&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.minute=a(J))}function k($){const q=e.placeholder.value;if(!Fa($.key)||ca($.key)||!("second"in q)||!("second"in e.segmentValues.value))return;const J=e.segmentValues.value.second;if(($.key===t.ARROW_UP||$.key===t.ARROW_DOWN)&&(e.segmentValues.value.second=n({e:$,part:"second",dateRef:e.placeholder.value,prevValue:J})),Sr($.key)){const R=Number.parseInt($.key),{value:j,moveToNext:Q}=o(R,J);e.segmentValues.value.second=j,Q&&e.focusNext()}$.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.second=a(J))}function g($){if(!((!Fa($.key)||ca($.key))&&$.key!=="a"&&$.key!=="p"||!("hour"in e.placeholder.value)||!("dayPeriod"in e.segmentValues.value))){if($.key===t.ARROW_UP||$.key===t.ARROW_DOWN){if(e.segmentValues.value.dayPeriod==="AM"){e.segmentValues.value.dayPeriod="PM",e.segmentValues.value.hour=e.segmentValues.value.hour+12;return}e.segmentValues.value.dayPeriod="AM",e.segmentValues.value.hour=e.segmentValues.value.hour-12;return}if(["a","A"].includes($.key)&&e.segmentValues.value.dayPeriod!=="AM"){e.segmentValues.value.dayPeriod="AM",e.segmentValues.value.hour=e.segmentValues.value.hour-12;return}["p","P"].includes($.key)&&e.segmentValues.value.dayPeriod!=="PM"&&(e.segmentValues.value.dayPeriod="PM",e.segmentValues.value.hour=e.segmentValues.value.hour+12)}}function C($){e.disabled.value&&$.preventDefault()}function E($){if($.isComposing||$.key==="Process")return;const q=e.disabled.value,J=e.readonly.value;if(q||J)return;if($.key!==t.TAB&&$.preventDefault(),{day:d,month:f,year:m,hour:h,minute:x,second:k,dayPeriod:g,timeZoneName:()=>{}}[e.part]($),![t.ARROW_LEFT,t.ARROW_RIGHT].includes($.key)&&$.key!==t.TAB&&$.key!==t.SHIFT&&Fa($.key)&&Object.values(e.segmentValues.value).every(j=>j!==null)){const j={...e.segmentValues.value},Q=e.placeholder.value.set(j);e.modelValue.value=Q.copy()}}function D(){if(e.stepSnapping?.value&&(e.part==="hour"&&"hour"in e.segmentValues.value&&e.segmentValues.value.hour!==null&&e.step.value.hour&&e.step.value.hour>1?(e.segmentValues.value.hour=Vu(e.segmentValues.value.hour,0,23,e.step.value.hour),"dayPeriod"in e.segmentValues.value&&(e.segmentValues.value.hour<12?e.segmentValues.value.dayPeriod="AM":e.segmentValues.value.hour&&(e.segmentValues.value.dayPeriod="PM"))):e.part==="minute"&&"minute"in e.segmentValues.value&&e.segmentValues.value.minute!==null&&e.step.value.minute&&e.step.value.minute>1?e.segmentValues.value.minute=Vu(e.segmentValues.value.minute,0,59,e.step.value.minute):e.part==="second"&&"second"in e.segmentValues.value&&e.segmentValues.value.second!==null&&e.step.value.second&&e.step.value.second>1&&(e.segmentValues.value.second=Vu(e.segmentValues.value.second,0,59,e.step.value.second)),Object.values(e.segmentValues.value).every($=>$!==null))){const $=e.placeholder.value.set({...e.segmentValues.value});e.modelValue.value=$.copy()}}let O=null;function L($){$.isComposing||$.preventDefault()}function z($){const q=$.target;O=Array.from(q.childNodes,J=>({node:J,value:J.nodeValue}))}function W($){const q=$.target,J=O;if(O=null,J){for(const{node:j,value:Q}of J)j.nodeValue=Q;q.replaceChildren(...J.map(j=>j.node))}const R=$.data;if(R)for(const j of R){if(!hT.test(j))continue;const Q=It();if(!(Q instanceof HTMLElement))break;Q.dispatchEvent(new KeyboardEvent("keydown",{key:j,bubbles:!0,cancelable:!0}))}}return{handleSegmentClick:C,handleSegmentKeydown:E,handleSegmentBeforeInput:L,handleSegmentCompositionStart:z,handleSegmentCompositionEnd:W,handleSegmentFocusOut:D,attributes:c}}function AT(e){function t(l){return Array.isArray(e.date.value)?e.date.value.some(o=>rr(o,l)):e.date.value?rr(e.date.value,l):!1}const n=_(()=>{if(Array.isArray(e.date.value)){if(!e.date.value.length)return!1;for(const l of e.date.value)if(e.isDateDisabled?.(l)||e.isDateUnavailable?.(l))return!0}else{if(!e.date.value)return!1;if(e.isDateDisabled?.(e.date.value)||e.isDateUnavailable?.(e.date.value))return!0}return!1}),a=_(()=>Array.isArray(e.date.value)?e.date.value.length>0:!!e.date.value),r=_(()=>Array.isArray(e.date.value)?e.date.value.length?e.date.value.some(l=>e.isDateDisabled?.(l)):!1:e.date.value?!!e.isDateDisabled?.(e.date.value):!1);return{isDateSelected:t,isInvalid:n,hasSelectedDate:a,isSelectedDateDisabled:r}}function TT(e,t){const n=t(e),a=n.compare(e),r={};return a>=7&&(r.day=1),a>=Qa(e)&&(r.month=1),n.set({...r})}function DT(e,t){const n=t(e),a=e.compare(n),r={};return a>=7&&(r.day=35),a>=Qa(e)&&(r.month=13),n.set({...r})}function OT(e,t){return t(e)}function MT(e,t){return t(e)}function PT(e){const t=of(e.locale.value),n=_(()=>{const g={calendar:e.placeholder.value.calendar.identifier};return e.placeholder.value.calendar.identifier==="gregory"&&e.placeholder.value.era==="BC"&&(g.era="short"),g}),a=P(wr({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})),r=_(()=>a.value.map(g=>g.value));function l(g){return!r.value.some(C=>kv(g,C))}const o=g=>{if(!e.maxValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const C=a.value.at(-1).value;if(!g&&!e.nextPage.value){const D=C.add({months:1}).set({day:1});return Zu(D,e.maxValue.value)}const E=TT(C,g||e.nextPage.value);return Zu(E,e.maxValue.value)},i=g=>{if(!e.minValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const C=a.value[0].value;if(!g&&!e.prevPage.value){const D=C.subtract({months:1}).set({day:35});return Ja(D,e.minValue.value)}const E=DT(C,g||e.prevPage.value);return Ja(E,e.minValue.value)};function s(g){return!!(e.isDateDisabled?.(g)||e.disabled.value||e.maxValue.value&&Zu(g,e.maxValue.value)||e.minValue.value&&Ja(g,e.minValue.value))}const c=g=>!!e.isDateUnavailable?.(g),d=_(()=>a.value.length?a.value[0].rows[0].map(g=>t.dayOfWeek(wn(g),e.weekdayFormat.value)):[]),f=g=>{const C=a.value[0].value;if(!g&&!e.nextPage.value){const L=C.add({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),z=wr({dateObj:L,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=z,e.placeholder.value=z[0].value.set({day:1});return}const E=OT(C,g||e.nextPage.value),D=wr({dateObj:E,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=D;const O={};if(!g){const L=D[0].value.compare(C);L>=Qa(C)&&(O.day=1),L>=365&&(O.month=1)}e.placeholder.value=D[0].value.set({...O})},m=g=>{const C=a.value[0].value;if(!g&&!e.prevPage.value){const L=C.subtract({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),z=wr({dateObj:L,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=z,e.placeholder.value=z[0].value.set({day:1});return}const E=MT(C,g||e.prevPage.value),D=wr({dateObj:E,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=D;const O={};if(!g){const L=C.compare(D[0].value);L>=Qa(C)&&(O.day=1),L>=365&&(O.month=1)}e.placeholder.value=D[0].value.set({...O})};je(e.placeholder,g=>{r.value.some(C=>kv(C,g))||(a.value=wr({dateObj:g,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value}))}),je([e.locale,e.weekStartsOn,e.fixedWeeks,e.numberOfMonths],()=>{a.value=wr({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})});const p=_(()=>{if(!a.value.length)return"";if(e.locale.value!==t.getLocale()&&t.setLocale(e.locale.value),a.value.length===1){const W=a.value[0].value;return`${t.fullMonthAndYear(wn(W),n.value)}`}const g=wn(a.value[0].value),C=wn(a.value.at(-1).value),E=t.fullMonth(g,n.value),D=t.fullMonth(C,n.value),O=t.fullYear(g,n.value),L=t.fullYear(C,n.value);return O===L?`${E} - ${D} ${L}`:`${E} ${O} - ${D} ${L}`}),h=_(()=>`${e.calendarLabel.value??"Event Date"}, ${p.value}`),x=_(()=>!(s(e.placeholder.value)||c(e.placeholder.value)||l(e.placeholder.value))),k=_(()=>{for(const g of a.value){if(e.minValue.value&&Ja(g.value,e.minValue.value))continue;const C=Qa(g.value),E=e.minValue.value&&Gd(e.minValue.value,g.value)?e.minValue.value.day:1;for(let D=E;D<=C;D++){const O=g.value.set({day:D});if(!(s(O)||c(O)))return O}}});return{isDateDisabled:s,isDateUnavailable:c,isNextButtonDisabled:o,isPrevButtonDisabled:i,grid:a,weekdays:d,visibleView:r,isOutsideVisibleView:l,formatter:t,nextPage:f,prevPage:m,headingValue:p,fullCalendarLabel:h,isPlaceholderFocusable:x,firstFocusableDate:k}}const RT={style:{border:"0px",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(50%)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0px",position:"absolute","white-space":"nowrap",width:"1px"}},IT={role:"heading","aria-level":"2"},[Yl,qT]=Ct("CalendarRoot");var NT=le({__name:"CalendarRoot",props:{defaultValue:{type:null,required:!1,default:void 0},defaultPlaceholder:{type:null,required:!1},placeholder:{type:null,required:!1,default:void 0},pagedNavigation:{type:Boolean,required:!1,default:!1},preventDeselect:{type:Boolean,required:!1,default:!1},weekStartsOn:{type:Number,required:!1},weekdayFormat:{type:String,required:!1,default:"narrow"},calendarLabel:{type:String,required:!1},fixedWeeks:{type:Boolean,required:!1,default:!1},maxValue:{type:null,required:!1},minValue:{type:null,required:!1},locale:{type:String,required:!1},numberOfMonths:{type:Number,required:!1,default:1},disabled:{type:Boolean,required:!1,default:!1},readonly:{type:Boolean,required:!1,default:!1},initialFocus:{type:Boolean,required:!1,default:!1},isDateDisabled:{type:Function,required:!1,default:void 0},isDateUnavailable:{type:Function,required:!1,default:void 0},dir:{type:String,required:!1},nextPage:{type:Function,required:!1},prevPage:{type:Function,required:!1},modelValue:{type:null,required:!1},multiple:{type:Boolean,required:!1,default:!1},disableDaysOutsideCurrentView:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["update:modelValue","update:placeholder"],setup(e,{emit:t}){const n=e,a=t,{disabled:r,readonly:l,initialFocus:o,pagedNavigation:i,weekdayFormat:s,fixedWeeks:c,multiple:d,minValue:f,maxValue:m,numberOfMonths:p,preventDeselect:h,isDateDisabled:x,isDateUnavailable:k,calendarLabel:g,defaultValue:C,nextPage:E,prevPage:D,dir:O,locale:L,disableDaysOutsideCurrentView:z}=Gt(n),{primitiveElement:W,currentElement:$}=Br(),q=lu(L),J=Ta(O),R=_(()=>n.weekStartsOn??Jg(q.value)),j=Pt(n,"modelValue",a,{defaultValue:C.value,passive:n.modelValue===void 0}),Q=lf({defaultPlaceholder:n.placeholder,defaultValue:j.value,locale:n.locale}),N=Pt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??Q.copy(),passive:n.placeholder===void 0});function ne(Y){N.value=Y.copy()}const{fullCalendarLabel:te,headingValue:de,isDateDisabled:pe,isDateUnavailable:xe,isNextButtonDisabled:me,isPrevButtonDisabled:fe,weekdays:Te,isOutsideVisibleView:H,nextPage:ke,prevPage:ae,formatter:Z,grid:ue,isPlaceholderFocusable:V,firstFocusableDate:K}=PT({locale:q,placeholder:N,weekStartsOn:R,fixedWeeks:c,numberOfMonths:p,minValue:f,maxValue:m,disabled:r,weekdayFormat:s,pagedNavigation:i,isDateDisabled:x.value,isDateUnavailable:k.value,calendarLabel:g,nextPage:E,prevPage:D}),{isInvalid:ee,isDateSelected:y,hasSelectedDate:A,isSelectedDateDisabled:M}=AT({date:j,isDateDisabled:pe,isDateUnavailable:xe});je(j,Y=>{if(Array.isArray(Y)&&Y.length){const ce=Y.at(-1);ce&&!Al(N.value,ce)&&ne(ce)}else!Array.isArray(Y)&&Y&&!Al(N.value,Y)&&ne(Y)});function oe(Y){if(d.value){if(!j.value)j.value=[Y.copy()];else if(Array.isArray(j.value)){if(j.value.findIndex($e=>rr($e,Y))===-1)j.value=[...j.value,Y];else if(!h.value){const $e=j.value.filter(Ae=>!rr(Ae,Y));if(!$e.length){N.value=Y.copy(),j.value=void 0;return}j.value=$e.map(Ae=>Ae.copy())}}}else{if(!j.value){j.value=Y.copy();return}!h.value&&Al(j.value,Y)?(N.value=Y.copy(),j.value=void 0):j.value=Y.copy()}}return wt(()=>{o.value&&Gg($.value)}),qT({isDateUnavailable:xe,dir:J,isDateDisabled:pe,locale:q,formatter:Z,modelValue:j,placeholder:N,disabled:r,initialFocus:o,pagedNavigation:i,grid:ue,weekDays:Te,weekStartsOn:R,weekdayFormat:s,fixedWeeks:c,multiple:d,numberOfMonths:p,readonly:l,preventDeselect:h,fullCalendarLabel:te,headingValue:de,isInvalid:ee,isDateSelected:y,isNextButtonDisabled:me,isPrevButtonDisabled:fe,isOutsideVisibleView:H,nextPage:ke,prevPage:ae,parentElement:$,onPlaceholderChange:ne,onDateChange:oe,disableDaysOutsideCurrentView:z,minValue:f,maxValue:m,isPlaceholderFocusable:V,firstFocusableDate:K,hasSelectedDate:A,isSelectedDateDisabled:M}),(Y,ce)=>(v(),U(u(nt),{ref_key:"primitiveElement",ref:W,as:Y.as,"as-child":Y.asChild,"aria-label":u(te),"data-readonly":u(l)?"":void 0,"data-disabled":u(r)?"":void 0,"data-invalid":u(ee)?"":void 0,dir:u(J)},{default:B(()=>[_e(Y.$slots,"default",{date:u(N),grid:u(ue),weekDays:u(Te),weekStartsOn:R.value,locale:u(q),fixedWeeks:u(c),modelValue:u(j)}),S("div",RT,[S("div",IT,T(u(te)),1)])]),_:3},8,["as","as-child","aria-label","data-readonly","data-disabled","data-invalid","dir"]))}}),LT=NT,BT=le({__name:"CalendarCell",props:{date:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"td"}},setup(e){const t=Yl();return(n,a)=>(v(),U(u(nt),{as:n.as,"as-child":n.asChild,role:"gridcell","aria-selected":u(t).isDateSelected(n.date)?!0:void 0,"aria-disabled":u(t).isDateDisabled(n.date)||u(t).isDateUnavailable?.(n.date)||u(t).disableDaysOutsideCurrentView.value,"data-disabled":u(t).isDateDisabled(n.date)||u(t).disableDaysOutsideCurrentView.value?"":void 0},{default:B(()=>[_e(n.$slots,"default")]),_:3},8,["as","as-child","aria-selected","aria-disabled","data-disabled"]))}}),FT=BT,VT=le({__name:"CalendarCellTrigger",props:{day:{type:null,required:!0},month:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,n=jl(),a=Yl(),{primitiveElement:r}=Br(),l=_(()=>t.day.day.toLocaleString(a.locale.value)),o=_(()=>a.formatter.custom(wn(t.day),{weekday:"long",month:"long",day:"numeric",year:"numeric"})),i=_(()=>a.isDateUnavailable?.(t.day)??!1),s=_(()=>FS(t.day,Nn())),c=_(()=>!Gd(t.day,t.month)),d=_(()=>a.isOutsideVisibleView(t.day)),f=_(()=>a.isDateDisabled(t.day)||a.disableDaysOutsideCurrentView.value&&c.value),m=_(()=>c.value||f.value?!1:!a.disabled.value&&a.isPlaceholderFocusable.value&&rr(t.day,a.placeholder.value)?!0:(!a.hasSelectedDate.value||a.isSelectedDateDisabled.value)&&!a.isPlaceholderFocusable.value?a.firstFocusableDate.value&&rr(t.day,a.firstFocusableDate.value):!1),p=_(()=>a.isDateSelected(t.day));function h(g){a.readonly.value||a.isDateDisabled(g)||a.isDateUnavailable?.(g)||a.onDateChange(g)}function x(){f.value||h(t.day)}function k(g){if(f.value)return;g.preventDefault(),g.stopPropagation();const C=a.parentElement.value,E=7,D=a.dir.value==="rtl"?-1:1;switch(g.code){case n.ARROW_RIGHT:O(t.day,D);break;case n.ARROW_LEFT:O(t.day,-D);break;case n.ARROW_UP:O(t.day,-E);break;case n.ARROW_DOWN:O(t.day,E);break;case n.ENTER:case n.SPACE_CODE:h(t.day)}function O(L,z){const W=L.add({days:z});if(a.minValue.value&&W.compare(a.minValue.value)<0||a.maxValue.value&&W.compare(a.maxValue.value)>0)return;const $=C.querySelector(`[data-value='${W.toString()}']:not([data-outside-view])`);if(!$){if(z>0){if(a.isNextButtonDisabled())return;a.nextPage()}else{if(a.isPrevButtonDisabled())return;a.prevPage()}Ze(()=>{O(L,z)});return}if($&&$.hasAttribute("data-disabled"))return O(W,z);a.onPlaceholderChange(W),$?.focus()}}return(g,C)=>(v(),U(u(nt),{ref_key:"primitiveElement",ref:r,as:t.as,"as-child":t.asChild,role:"button","aria-label":o.value,"data-reka-calendar-cell-trigger":"","aria-disabled":f.value||i.value?!0:void 0,"data-selected":p.value?!0:void 0,"data-value":g.day.toString(),"data-disabled":f.value?"":void 0,"data-unavailable":i.value?"":void 0,"data-today":s.value?"":void 0,"data-outside-view":c.value?"":void 0,"data-outside-visible-view":d.value?"":void 0,"data-focused":m.value?"":void 0,tabindex:m.value?0:c.value||f.value?void 0:-1,onClick:x,onKeydown:[tr(k,["up","down","left","right","space","enter"]),C[0]||(C[0]=tr(vt(()=>{},["prevent"]),["enter"]))]},{default:B(()=>[_e(g.$slots,"default",{dayValue:l.value,disabled:f.value,today:s.value,selected:p.value,outsideView:c.value,outsideVisibleView:d.value,unavailable:i.value},()=>[we(T(l.value),1)])]),_:3},8,["as","as-child","aria-label","aria-disabled","data-selected","data-value","data-disabled","data-unavailable","data-today","data-outside-view","data-outside-visible-view","data-focused","tabindex"]))}}),zT=VT,jT=le({__name:"CalendarGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"table"}},setup(e){const t=e,n=Yl(),a=_(()=>n.disabled.value?!0:void 0),r=_(()=>n.readonly.value?!0:void 0);return(l,o)=>(v(),U(u(nt),He(t,{tabindex:"-1",role:"application","aria-readonly":r.value,"aria-disabled":a.value,"data-readonly":r.value&&"","data-disabled":a.value&&""}),{default:B(()=>[_e(l.$slots,"default")]),_:3},16,["aria-readonly","aria-disabled","data-readonly","data-disabled"]))}}),UT=jT,HT=le({__name:"CalendarGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tbody"}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),WT=HT,KT=le({__name:"CalendarGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"thead"}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),He(t,{"aria-hidden":"true"}),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),GT=KT,YT=le({__name:"CalendarGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tr"}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),JT=YT,ZT=le({__name:"CalendarHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"th"}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),XT=ZT,QT=le({__name:"CalendarHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),e4=QT,t4=le({__name:"CalendarHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,n=Yl();return(a,r)=>(v(),U(u(nt),He(t,{"data-disabled":u(n).disabled.value?"":void 0}),{default:B(()=>[_e(a.$slots,"default",{headingValue:u(n).headingValue.value},()=>[we(T(u(n).headingValue.value),1)])]),_:3},16,["data-disabled"]))}}),n4=t4,a4=le({__name:"CalendarNext",props:{nextPage:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=_(()=>a.disabled.value||a.isNextButtonDisabled(t.nextPage)),a=Yl();function r(){n.value||a.nextPage(t.nextPage)}return(l,o)=>(v(),U(u(nt),{as:t.as,"as-child":t.asChild,"aria-label":"Next page",type:t.as==="button"?"button":void 0,"aria-disabled":n.value||void 0,"data-disabled":n.value||void 0,disabled:n.value,onClick:r},{default:B(()=>[_e(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=we(" Next page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),r4=a4,l4=le({__name:"CalendarPrev",props:{prevPage:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=_(()=>a.disabled.value||a.isPrevButtonDisabled(t.prevPage)),a=Yl();function r(){n.value||a.prevPage(t.prevPage)}return(l,o)=>(v(),U(u(nt),{"aria-label":"Previous page",as:t.as,"as-child":t.asChild,type:t.as==="button"?"button":void 0,"aria-disabled":n.value||void 0,"data-disabled":n.value||void 0,disabled:n.value,onClick:r},{default:B(()=>[_e(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=we(" Prev page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),o4=l4;const[i4,s4]=Ct("RovingFocusGroup");var u4=le({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(e,{expose:t,emit:n}){const a=e,r=n,{loop:l,orientation:o,dir:i}=Gt(a),s=Ta(i),c=Pt(a,"currentTabStopId",r,{defaultValue:a.defaultCurrentTabStopId,passive:a.currentTabStopId===void 0}),d=P(!1),f=P(!1),m=P(0),{getItems:p,CollectionSlot:h}=ff({isProvider:!0});function x(g){const C=!f.value;if(g.currentTarget&&g.target===g.currentTarget&&C&&!d.value){const E=new CustomEvent(KA,GA);if(g.currentTarget.dispatchEvent(E),r("entryFocus",E),!E.defaultPrevented){const D=p().map($=>$.ref).filter($=>$.dataset.disabled!==""),O=D.find($=>$.getAttribute("data-active")===""),L=D.find($=>$.getAttribute("data-highlighted")===""),z=D.find($=>$.id===c.value),W=[O,L,z,...D].filter(Boolean);lb(W,a.preventScrollOnEntryFocus)}}f.value=!1}function k(){setTimeout(()=>{f.value=!1},1)}return t({getItems:p}),s4({loop:l,dir:s,orientation:o,currentTabStopId:c,onItemFocus:g=>{c.value=g},onItemShiftTab:()=>{d.value=!0},onFocusableItemAdd:()=>{m.value++},onFocusableItemRemove:()=>{m.value--}}),(g,C)=>(v(),U(u(h),null,{default:B(()=>[F(u(nt),{tabindex:d.value||m.value===0?-1:0,"data-orientation":u(o),as:g.as,"as-child":g.asChild,dir:u(s),style:{outline:"none"},onMousedown:C[0]||(C[0]=E=>f.value=!0),onMouseup:k,onFocus:x,onBlur:C[1]||(C[1]=E=>d.value=!1)},{default:B(()=>[_e(g.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),Cf=u4,c4=le({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,n=i4(),a=Lr(),r=_(()=>t.tabStopId||a),l=_(()=>n.currentTabStopId.value===r.value),{getItems:o,CollectionItem:i}=ff();wt(()=>{t.focusable&&n.onFocusableItemAdd()}),Ea(()=>{t.focusable&&n.onFocusableItemRemove()});function s(c){if(c.key==="Tab"&&c.shiftKey){n.onItemShiftTab();return}if(c.target!==c.currentTarget)return;const d=ZA(c,n.orientation.value,n.dir.value);if(d!==void 0){if(c.metaKey||c.ctrlKey||c.altKey||!t.allowShiftKey&&c.shiftKey)return;c.preventDefault();let f=[...o().map(m=>m.ref).filter(m=>m.dataset.disabled!=="")];if(d==="last")f.reverse();else if(d==="prev"||d==="next"){d==="prev"&&f.reverse();const m=f.indexOf(c.currentTarget);f=n.loop.value?XA(f,m+1):f.slice(m+1)}Ze(()=>lb(f))}}return(c,d)=>(v(),U(u(i),null,{default:B(()=>[F(u(nt),{tabindex:l.value?0:-1,"data-orientation":u(n).orientation.value,"data-active":c.active?"":void 0,"data-disabled":c.focusable?void 0:"",as:c.as,"as-child":c.asChild,onMousedown:d[0]||(d[0]=f=>{c.focusable?u(n).onItemFocus(r.value):f.preventDefault()}),onFocus:d[1]||(d[1]=f=>u(n).onItemFocus(r.value)),onKeydown:s},{default:B(()=>[_e(c.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),Sf=c4;const[d4]=Ct("CheckboxGroupRoot");function Ef(e){return e==="indeterminate"}function $b(e){return Ef(e)?"indeterminate":e?"checked":"unchecked"}const[f4,p4]=Ct("CheckboxRoot");var v4=le({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=tt(),o=d4(null),i=Pt(n,"modelValue",a,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),s=_(()=>o?.disabled.value||n.disabled),c=_(()=>Uo(i.value,n.trueValue)),d=_(()=>vn(o?.modelValue.value)?i.value==="indeterminate"?"indeterminate":c.value:bv(o.modelValue.value,n.value));function f(){if(vn(o?.modelValue.value))i.value==="indeterminate"?i.value=n.trueValue:i.value=c.value?n.falseValue:n.trueValue;else{const h=[...o.modelValue.value||[]];if(bv(h,n.value)){const x=h.findIndex(k=>Uo(k,n.value));h.splice(x,1)}else h.push(n.value);o.modelValue.value=h}}const m=sf(l),p=_(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return p4({disabled:s,state:d}),(h,x)=>(v(),U(zt(u(o)?.rovingFocus.value?u(Sf):u(nt)),He(h.$attrs,{id:h.id,ref:u(r),role:"checkbox","as-child":h.asChild,as:h.as,type:h.as==="button"?"button":void 0,"aria-checked":u(Ef)(d.value)?"mixed":d.value,"aria-required":h.required,"aria-label":h.$attrs["aria-label"]||p.value,"data-state":u($b)(d.value),"data-disabled":s.value?"":void 0,disabled:s.value,focusable:u(o)?.rovingFocus.value?!s.value:void 0,onKeydown:tr(vt(()=>{},["prevent"]),["enter"]),onClick:f}),{default:B(()=>[_e(h.$slots,"default",{modelValue:u(i),state:d.value}),u(m)&&h.name&&!u(o)?(v(),U(u(vf),{key:0,type:"checkbox",checked:!!d.value,name:h.name,value:h.value,disabled:s.value,required:h.required},null,8,["checked","name","value","disabled","required"])):re("v-if",!0)]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"]))}}),m4=v4,h4=le({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const{forwardRef:t}=tt(),n=f4();return(a,r)=>(v(),U(u(pi),{present:a.forceMount||u(Ef)(u(n).state.value)||u(n).state.value===!0},{default:B(()=>[F(u(nt),He({ref:u(t),"data-state":u($b)(u(n).state.value),"data-disabled":u(n).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":a.asChild,as:a.as},a.$attrs),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),y4=h4,g4=le({__name:"MenuAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(mf),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),b4=g4;function _4(){const e=P(!1);return wt(()=>{Bl("keydown",()=>{e.value=!0},{capture:!0,passive:!0}),Bl(["pointerdown","pointermove"],()=>{e.value=!1},{capture:!0,passive:!0})}),e}const x4=hg(_4),[fu,k4]=Ct(["MenuRoot","MenuSub"],"MenuContext"),[Af,w4]=Ct("MenuRoot");var $4=le({__name:"MenuRoot",props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:t}){const n=e,a=t,{modal:r,dir:l}=Gt(n),o=Ta(l),i=Pt(n,"open",a),s=P(),c=x4();return k4({open:i,onOpenChange:d=>{i.value=d},content:s,onContentChange:d=>{s.value=d}}),w4({onClose:()=>{i.value=!1},isUsingKeyboardRef:c,dir:o,modal:r}),(d,f)=>(v(),U(u(ib),null,{default:B(()=>[_e(d.$slots,"default")]),_:3}))}}),C4=$4;const[Cb,S4]=Ct("MenuContent");var E4=le({__name:"MenuContentImpl",props:Gh({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...gb}),emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus","dismiss"],setup(e,{emit:t}){const n=e,a=t,r=fu(),l=Af(),{trapFocus:o,disableOutsidePointerEvents:i,loop:s}=Gt(n);Zg(),Kd(i.value);const c=P(""),d=P(0),f=P(0),m=P(null),p=P("right"),h=P(0),x=P(null),k=P(),{forwardRef:g,currentElement:C}=tt(),{handleTypeaheadSearch:E}=jE(),D=P();function O(N){const ne=xv(N,D.value||It(),C.value,{loop:s.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!1,attributeName:"[data-reka-collection-item]:not([data-disabled])"});ne&&(D.value=ne,ne.scrollIntoView({block:"nearest"}))}function L(){D.value&&D.value.click()}const z=P(),W=P();je(D,N=>{W.value&&(N===void 0||N!==W.value.trigger.value)&&(W.value.onOpenChange(!1),W.value=void 0)}),je(C,N=>{r.onContentChange(N)}),Ea(()=>{window.clearTimeout(d.value)});function $(N){return p.value===m.value?.side&&vA(N,m.value?.area)}async function q(N){a("openAutoFocus",N),!N.defaultPrevented&&(N.preventDefault(),C.value?.focus({preventScroll:!0}))}function J(N){if(N.defaultPrevented)return;const ne=N.target,te=ne.closest("[data-reka-menu-content]")===N.currentTarget,de=["input","textarea"].includes(ne.tagName.toLowerCase()),pe=N.ctrlKey||N.altKey||N.metaKey,xe=N.key.length===1,me=xv(N,It(),C.value,{loop:s.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!0,attributeName:"[data-reka-collection-item]:not([data-disabled])"});if(me)return me?.focus();if(N.code==="Space")return;const fe=k.value?.getItems()??[];if(te&&(N.key==="Tab"&&N.preventDefault(),!pe&&xe&&!de&&E(N.key,fe)),N.target!==C.value||!dA.includes(N.key))return;N.preventDefault();const Te=[...fe.map(H=>H.ref)];nb.includes(N.key)&&Te.reverse(),fA(Te)}function R(N){N?.currentTarget?.contains?.(N.target)||(window.clearTimeout(d.value),c.value="")}function j(N){if(!gs(N))return;const ne=N.target,te=h.value!==N.clientX;if(N?.currentTarget?.contains(ne)&&te){const de=N.clientX>h.value?"right":"left";p.value=de,h.value=N.clientX}}function Q(N){gs(N)&&z.value&&z.value.focus()}return S4({onItemEnter:N=>!!$(N),onItemLeave:N=>$(N)?!0:(["INPUT","TEXTAREA"].includes(It()?.tagName||"")||C.value?.focus(),x.value=null,!1),onTriggerLeave:N=>!!$(N),searchRef:c,highlightedElement:D,onKeydownNavigation:O,onKeydownEnter:L,filterElement:z,onFilterElementChange:N=>{z.value=N},activeSubmenuContext:W,pointerGraceTimerRef:f,onPointerGraceIntentChange:N=>{m.value=N}}),(N,ne)=>(v(),U(u(df),{"as-child":"",trapped:u(o),onMountAutoFocus:q,onUnmountAutoFocus:ne[7]||(ne[7]=te=>a("closeAutoFocus",te))},{default:B(()=>[F(u(cf),{"as-child":"","disable-outside-pointer-events":u(i),onEscapeKeyDown:ne[2]||(ne[2]=te=>a("escapeKeyDown",te)),onPointerDownOutside:ne[3]||(ne[3]=te=>a("pointerDownOutside",te)),onFocusOutside:ne[4]||(ne[4]=te=>a("focusOutside",te)),onInteractOutside:ne[5]||(ne[5]=te=>a("interactOutside",te)),onDismiss:ne[6]||(ne[6]=te=>a("dismiss"))},{default:B(()=>[F(u(Cf),{ref_key:"rovingFocusGroupRef",ref:k,"current-tab-stop-id":x.value,"onUpdate:currentTabStopId":ne[0]||(ne[0]=te=>x.value=te),"as-child":"",orientation:"vertical",dir:u(l).dir.value,loop:u(s),onEntryFocus:ne[1]||(ne[1]=te=>{a("entryFocus",te),u(l).isUsingKeyboardRef.value||te.preventDefault()})},{default:B(()=>[F(u(bb),{ref:u(g),role:"menu",as:N.as,"as-child":N.asChild,"aria-orientation":"vertical","data-reka-menu-content":"","data-state":u(ab)(u(r).open.value),dir:u(l).dir.value,side:N.side,"side-offset":N.sideOffset,align:N.align,"align-offset":N.alignOffset,"avoid-collisions":N.avoidCollisions,"collision-boundary":N.collisionBoundary,"collision-padding":N.collisionPadding,"arrow-padding":N.arrowPadding,"prioritize-position":N.prioritizePosition,"position-strategy":N.positionStrategy,"update-position-strategy":N.updatePositionStrategy,sticky:N.sticky,"hide-when-detached":N.hideWhenDetached,reference:N.reference,onKeydown:J,onBlur:R,onPointermove:j,onPointerenter:Q},{default:B(()=>[_e(N.$slots,"default")]),_:3},8,["as","as-child","data-state","dir","side","side-offset","align","align-offset","avoid-collisions","collision-boundary","collision-padding","arrow-padding","prioritize-position","position-strategy","update-position-strategy","sticky","hide-when-detached","reference"])]),_:3},8,["current-tab-stop-id","dir","loop"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),Sb=E4,A4=le({inheritAttrs:!1,__name:"MenuItemImpl",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=Cb(),{forwardRef:a,currentElement:r}=tt(),{CollectionItem:l}=ff(),o=P(!1),i=_(()=>o.value||r.value!=null&&n.highlightedElement.value===r.value);async function s(d){if(!(d.defaultPrevented||!gs(d))){if(t.disabled)n.onItemLeave(d);else if(!n.onItemEnter(d)){const m=d.currentTarget;n.highlightedElement.value=m,["INPUT","TEXTAREA"].includes(It()?.tagName||"")||m.focus({preventScroll:!0})}}}async function c(d){if(await Ze(),d.defaultPrevented||!gs(d)||n.highlightedElement.value!==r.value)return;!n.onItemLeave(d)&&n.highlightedElement.value===r.value&&(n.highlightedElement.value=void 0)}return(d,f)=>(v(),U(u(l),{value:{textValue:d.textValue}},{default:B(()=>[F(u(nt),He({ref:u(a),role:"menuitem",tabindex:"-1"},d.$attrs,{as:d.as,"as-child":d.asChild,"aria-disabled":d.disabled||void 0,"data-disabled":d.disabled?"":void 0,"data-highlighted":i.value?"":void 0,onPointermove:s,onPointerleave:c,onFocus:f[0]||(f[0]=async m=>{await Ze(),!(m.defaultPrevented||d.disabled)&&(o.value=!0,u(n).highlightedElement.value=m.currentTarget)}),onBlur:f[1]||(f[1]=async m=>{await Ze(),!m.defaultPrevented&&(o.value=!1)})}),{default:B(()=>[_e(d.$slots,"default")]),_:3},16,["as","as-child","aria-disabled","data-disabled","data-highlighted"])]),_:3},8,["value"]))}}),T4=A4,D4=le({__name:"MenuItem",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=tt(),o=Af(),i=Cb(),s=P(!1);async function c(){const d=l.value;if(!n.disabled&&d){const f=new CustomEvent(uA,{bubbles:!0,cancelable:!0});a("select",f),await Ze(),f.defaultPrevented?s.value=!1:o.onClose()}}return(d,f)=>(v(),U(T4,He(n,{ref:u(r),onClick:c,onPointerdown:f[0]||(f[0]=()=>{s.value=!0}),onPointerup:f[1]||(f[1]=async m=>{await Ze(),!m.defaultPrevented&&(s.value||m.currentTarget?.click())}),onKeydown:f[2]||(f[2]=async m=>{const p=u(i).searchRef.value!=="";d.disabled||p&&m.key===" "||u(rd).includes(m.key)&&(m.currentTarget?.click(),m.preventDefault())})}),{default:B(()=>[_e(d.$slots,"default")]),_:3},16))}}),O4=D4,M4=le({__name:"MenuRootContentModal",props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Da(n,a),l=fu(),{forwardRef:o,currentElement:i}=tt();return uf(i),(s,c)=>(v(),U(Sb,He(u(r),{ref:u(o),"trap-focus":u(l).open.value,"disable-outside-pointer-events":u(l).open.value,"disable-outside-scroll":!0,onDismiss:c[0]||(c[0]=d=>u(l).onOpenChange(!1)),onFocusOutside:c[1]||(c[1]=vt(d=>a("focusOutside",d),["prevent"]))}),{default:B(()=>[_e(s.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),P4=M4,R4=le({__name:"MenuRootContentNonModal",props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const r=Da(e,t),l=fu();return(o,i)=>(v(),U(Sb,He(u(r),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:i[0]||(i[0]=s=>u(l).onOpenChange(!1))}),{default:B(()=>[_e(o.$slots,"default")]),_:3},16))}}),I4=R4,q4=le({__name:"MenuContent",props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const r=Da(e,t),l=fu(),o=Af();return(i,s)=>(v(),U(u(pi),{present:i.forceMount||u(l).open.value},{default:B(()=>[u(o).modal.value?(v(),U(P4,lt(He({key:0},{...i.$attrs,...u(r)})),{default:B(()=>[_e(i.$slots,"default")]),_:3},16)):(v(),U(I4,lt(He({key:1},{...i.$attrs,...u(r)})),{default:B(()=>[_e(i.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),N4=q4,L4=le({__name:"MenuPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(ou),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),B4=L4,F4=le({__name:"MenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(nt),He(t,{role:"separator","aria-orientation":"horizontal"}),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),V4=F4;const[z4,j4]=Ct("DateFieldRoot");var U4=le({inheritAttrs:!1,__name:"DateFieldRoot",props:{defaultValue:{type:null,required:!1,default:void 0},defaultPlaceholder:{type:null,required:!1},placeholder:{type:null,required:!1,default:void 0},modelValue:{type:null,required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:null,required:!1},minValue:{type:null,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:!1},readonly:{type:Boolean,required:!1,default:!1},isDateUnavailable:{type:Function,required:!1,default:void 0},id:{type:String,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:placeholder"],setup(e,{expose:t,emit:n}){const a=e,r=n,{disabled:l,readonly:o,isDateUnavailable:i,granularity:s,defaultValue:c,dir:d,locale:f}=Gt(a),m=lu(f),p=Ta(d),h=of(m.value,{hourCycle:Ko(a.hourCycle)}),{primitiveElement:x,currentElement:k}=Br(),g=P(new Set);wt(()=>{sm(k.value).forEach(H=>g.value.add(H))});const C=Pt(a,"modelValue",r,{defaultValue:c.value,passive:a.modelValue===void 0}),E=lf({defaultPlaceholder:a.placeholder,granularity:s.value,defaultValue:C.value,locale:a.locale}),D=Pt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??E.copy(),passive:a.placeholder===void 0}),O=_(()=>Kg(a)),L=_(()=>a.granularity?nd(D.value)?a.granularity:"day":nd(D.value)?"minute":"day"),z=_(()=>C.value?!!(i.value?.(C.value)||a.minValue&&Ja(C.value,a.minValue)||a.maxValue&&Ja(a.maxValue,C.value)):!1),W=pT(L.value),$=P(C.value?{...im({value:C.value,formatter:h})}:{...W}),q=_(()=>kb({granularity:L.value,dateRef:D.value,formatter:h,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:$.value,locale:m})),J=_(()=>q.value.arr),R=_(()=>J.value.filter(({part:H})=>H!=="literal"));je(m,H=>{h.getLocale()!==H&&(h.setLocale(H),Ze(()=>{g.value.clear(),sm(k.value).forEach(ke=>g.value.add(ke))}))}),je(C,H=>{!vn(H)&&D.value.compare(H)!==0&&(D.value=H.copy())}),je([C,m],([H])=>{vn(H)?Object.values($.value).every(ke=>ke!==null)&&vn(H)&&($.value={...W}):$.value={...im({value:H,formatter:h})}});const j=P(null),Q=_(()=>Array.from(g.value).findIndex(H=>H.getAttribute("data-reka-date-field-segment")===j.value?.getAttribute("data-reka-date-field-segment"))),N=_(()=>{const H=p.value==="rtl"?-1:1;return(H<0?Q.value<0:Q.value>g.value.size-1)?null:Array.from(g.value)[Q.value+H]}),ne=_(()=>{const H=p.value==="rtl"?-1:1;return(H>0?Q.value<0:Q.value>g.value.size-1)?null:Array.from(g.value)[Q.value-H]}),te=_(()=>Yg(L.value)),de=_(()=>Xu(C.value,L.value)),pe=_(()=>a.maxValue?Xu(a.maxValue,L.value):void 0),xe=_(()=>a.minValue?Xu(a.minValue,L.value):void 0),me=jl();function fe(H){H.isComposing||ca(H.key)&&(H.key===me.ARROW_LEFT&&ne.value?.focus(),H.key===me.ARROW_RIGHT&&N.value?.focus())}function Te(H){j.value=H}return j4({isDateUnavailable:i.value,locale:m,modelValue:C,placeholder:D,disabled:l,formatter:h,hourCycle:a.hourCycle,step:O,readonly:o,segmentValues:$,isInvalid:z,segmentContents:R,elements:g,setFocusedElement:Te,focusNext(){N.value?.focus()}}),t({setFocusedElement:Te}),(H,ke)=>(v(),U(u(nt),He(H.$attrs,{ref_key:"primitiveElement",ref:x,role:"group","aria-disabled":u(l)?!0:void 0,"data-disabled":u(l)?"":void 0,"data-readonly":u(o)?"":void 0,"data-invalid":z.value?"":void 0,dir:u(p),onKeydown:tr(fe,["left","right"])}),{default:B(()=>[_e(H.$slots,"default",{modelValue:u(C),segments:J.value,isInvalid:z.value}),F(u(pf),{id:H.id,as:"input",type:te.value,feature:"focusable",tabindex:"-1",value:de.value,name:H.name,disabled:u(l),required:H.required,max:pe.value,min:xe.value,onFocus:ke[0]||(ke[0]=ae=>Array.from(g.value)?.[0]?.focus())},null,8,["id","type","value","name","disabled","required","max","min"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),H4=U4,W4=le({__name:"DateFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=z4(),a=P(!0),r=P(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:i,handleSegmentCompositionStart:s,handleSegmentCompositionEnd:c,attributes:d}=wb({hasLeftFocus:a,lastKeyZero:r,placeholder:n.placeholder,hourCycle:n.hourCycle,step:n.step,segmentValues:n.segmentValues,formatter:n.formatter,part:t.part,disabled:n.disabled,readonly:n.readonly,focusNext:n.focusNext,modelValue:n.modelValue}),f=_(()=>n.disabled.value),m=_(()=>n.readonly.value),p=_(()=>n.isInvalid.value);return(h,x)=>(v(),U(u(nt),He({as:h.as,"as-child":h.asChild},u(d),{contenteditable:f.value||m.value?!1:h.part!=="literal","data-reka-date-field-segment":h.part,"aria-disabled":f.value?!0:void 0,"aria-readonly":m.value?!0:void 0,"data-disabled":f.value?"":void 0,"data-invalid":p.value?"":void 0,"aria-invalid":p.value?!0:void 0},Kh(h.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(i),compositionstart:u(s),compositionend:u(c),focusout:()=>{a.value=!0},focusin:k=>{u(n).setFocusedElement(k.target)}}:{})),{default:B(()=>[_e(h.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-date-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),K4=W4;const[Jl,G4]=Ct("PopoverRoot");var Y4=le({__name:"PopoverRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:["update:open"],setup(e,{emit:t}){const n=e,a=t,{modal:r}=Gt(n),l=Pt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0});return G4({contentId:"",triggerId:"",modal:r,open:l,onOpenChange:s=>{l.value=s},onOpenToggle:()=>{l.value=!l.value},triggerElement:P(),hasCustomAnchor:P(!1)}),(s,c)=>(v(),U(u(ib),null,{default:B(()=>[_e(s.$slots,"default",{open:u(l),close:()=>l.value=!1})]),_:3}))}}),Eb=Y4,J4=le({__name:"PopoverAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;tt();const n=Jl();return zh(()=>{n.hasCustomAnchor.value=!0}),Ea(()=>{n.hasCustomAnchor.value=!1}),(a,r)=>(v(),U(u(mf),lt(it(t)),{default:B(()=>[_e(a.$slots,"default")]),_:3},16))}}),Z4=J4;const[Tf,X4]=Ct("DatePickerRoot");var Q4=le({inheritAttrs:!1,__name:"DatePickerRoot",props:{defaultValue:{type:null,required:!1,default:void 0},defaultPlaceholder:{type:null,required:!1},placeholder:{type:null,required:!1,default:void 0},modelValue:{type:null,required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:null,required:!1},minValue:{type:null,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:!1},readonly:{type:Boolean,required:!1,default:!1},isDateUnavailable:{type:Function,required:!1,default:void 0},id:{type:String,required:!1},dir:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1},isDateDisabled:{type:Function,required:!1,default:void 0},pagedNavigation:{type:Boolean,required:!1,default:!1},weekStartsOn:{type:Number,required:!1},weekdayFormat:{type:String,required:!1,default:"narrow"},fixedWeeks:{type:Boolean,required:!1,default:!1},numberOfMonths:{type:Number,required:!1,default:1},preventDeselect:{type:Boolean,required:!1,default:!1},closeOnSelect:{type:Boolean,required:!1,default:!1}},emits:["update:open","update:modelValue","update:placeholder"],setup(e,{emit:t}){const n=e,a=t,{locale:r,disabled:l,readonly:o,pagedNavigation:i,weekdayFormat:s,fixedWeeks:c,numberOfMonths:d,preventDeselect:f,isDateDisabled:m,isDateUnavailable:p,defaultOpen:h,modal:x,id:k,name:g,required:C,minValue:E,maxValue:D,granularity:O,hideTimeZone:L,hourCycle:z,defaultValue:W,dir:$,step:q,closeOnSelect:J}=Gt(n),R=Ta($),j=lu(r),Q=_(()=>n.weekStartsOn??Jg(j.value)),N=Pt(n,"modelValue",a,{defaultValue:W.value,passive:n.modelValue===void 0}),ne=_(()=>lf({defaultPlaceholder:n.placeholder,granularity:n.granularity,defaultValue:N.value,locale:j.value})),te=Pt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??ne.value.copy(),passive:n.placeholder===void 0}),de=Pt(n,"open",a,{defaultValue:h.value,passive:n.open===void 0}),pe=P();function xe(me){return"hour"in me?me.set({hour:0,minute:0,second:0,millisecond:0}):me}return je(N,me=>{me&&me.compare(te.value)!==0?te.value=me.copy():!me&&"hour"in te.value&&(te.value=xe(te.value)),J.value&&(de.value=!1)}),X4({isDateUnavailable:p.value,isDateDisabled:m.value,locale:j,disabled:l,pagedNavigation:i,weekStartsOn:Q,weekdayFormat:s,fixedWeeks:c,numberOfMonths:d,readonly:o,preventDeselect:f,modelValue:N,placeholder:te,defaultOpen:h,modal:x,open:de,id:k,name:g,required:C,minValue:E,maxValue:D,granularity:O,hideTimeZone:L,hourCycle:z,dateFieldRef:pe,dir:R,step:q,onDateChange(me){me?N.value&&!f.value&&me&&N.value.compare(me)===0?N.value=void 0:N.value=me.copy():N.value=void 0},onPlaceholderChange(me){te.value=me.copy()},closeOnSelect:J}),(me,fe)=>(v(),U(u(Eb),{open:u(de),"onUpdate:open":fe[0]||(fe[0]=Te=>_t(de)?de.value=Te:null),"default-open":u(h),modal:u(x)},{default:B(()=>[_e(me.$slots,"default")]),_:3},8,["open","default-open","modal"]))}}),eD=Q4,tD=le({__name:"DatePickerCalendar",setup(e){const t=Tf();return(n,a)=>(v(),U(u(LT),He({isDateDisabled:u(t).isDateDisabled,isDateUnavailable:u(t).isDateUnavailable,minValue:u(t).minValue.value,maxValue:u(t).maxValue.value,locale:u(t).locale.value,disabled:u(t).disabled.value,pagedNavigation:u(t).pagedNavigation.value,weekStartsOn:u(t).weekStartsOn.value,weekdayFormat:u(t).weekdayFormat.value,fixedWeeks:u(t).fixedWeeks.value,numberOfMonths:u(t).numberOfMonths.value,readonly:u(t).readonly.value,preventDeselect:u(t).preventDeselect.value,dir:u(t).dir.value},{"model-value":u(t).modelValue.value,placeholder:u(t).placeholder.value,multiple:!1,"onUpdate:modelValue":a[0]||(a[0]=r=>{r&&u(t).modelValue.value&&u(Al)(r,u(t).modelValue.value)||u(t).onDateChange(r)}),"onUpdate:placeholder":a[1]||(a[1]=r=>{u(Al)(r,u(t).placeholder.value)||u(t).onPlaceholderChange(r)})}),{default:B(({weekDays:r,grid:l,date:o,weekStartsOn:i,locale:s,fixedWeeks:c})=>[_e(n.$slots,"default",{date:o,grid:l,weekDays:r,weekStartsOn:i,locale:s,fixedWeeks:c})]),_:3},16,["model-value","placeholder"]))}}),nD=tD,aD=le({__name:"DatePickerCell",props:{date:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(FT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),rD=aD,lD=le({__name:"DatePickerCellTrigger",props:{day:{type:null,required:!0},month:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(zT),lt(it(t)),{default:B(r=>[_e(n.$slots,"default",lt(it(r)))]),_:3},16))}}),oD=lD,iD=le({__name:"PopoverContentImpl",props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Xg(SS(n,"trapFocus","disableOutsidePointerEvents")),{forwardRef:l}=tt(),o=Jl();return Zg(),(i,s)=>(v(),U(u(df),{"as-child":"",loop:"",trapped:i.trapFocus,onMountAutoFocus:s[5]||(s[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:s[6]||(s[6]=c=>a("closeAutoFocus",c))},{default:B(()=>[F(u(cf),{"as-child":"","disable-outside-pointer-events":i.disableOutsidePointerEvents,onPointerDownOutside:s[0]||(s[0]=c=>a("pointerDownOutside",c)),onInteractOutside:s[1]||(s[1]=c=>a("interactOutside",c)),onEscapeKeyDown:s[2]||(s[2]=c=>a("escapeKeyDown",c)),onFocusOutside:s[3]||(s[3]=c=>a("focusOutside",c)),onDismiss:s[4]||(s[4]=c=>u(o).onOpenChange(!1))},{default:B(()=>[F(u(bb),He(u(r),{id:u(o).contentId,ref:u(l),"data-state":u(o).open.value?"open":"closed","aria-labelledby":u(o).triggerId,style:{"--reka-popover-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-popover-content-available-width":"var(--reka-popper-available-width)","--reka-popover-content-available-height":"var(--reka-popper-available-height)","--reka-popover-trigger-width":"var(--reka-popper-anchor-width)","--reka-popover-trigger-height":"var(--reka-popper-anchor-height)"},role:"dialog"}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16,["id","data-state","aria-labelledby"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),Ab=iD,sD=le({__name:"PopoverContentModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Jl(),l=P(!1);Kd(!0);const o=Da(n,a),{forwardRef:i,currentElement:s}=tt();return uf(s),(c,d)=>(v(),U(Ab,He(u(o),{ref:u(i),"trap-focus":u(r).open.value,"disable-outside-pointer-events":"",onCloseAutoFocus:d[0]||(d[0]=vt(f=>{a("closeAutoFocus",f),l.value||u(r).triggerElement.value?.focus()},["prevent"])),onPointerDownOutside:d[1]||(d[1]=f=>{a("pointerDownOutside",f);const m=f.detail.originalEvent,p=m.button===0&&m.ctrlKey===!0,h=m.button===2||p;l.value=h}),onFocusOutside:d[2]||(d[2]=vt(()=>{},["prevent"]))}),{default:B(()=>[_e(c.$slots,"default")]),_:3},16,["trap-focus"]))}}),uD=sD,cD=le({__name:"PopoverContentNonModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Jl(),l=P(!1),o=P(!1),i=Da(n,a);return(s,c)=>(v(),U(Ab,He(u(i),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:c[0]||(c[0]=d=>{a("closeAutoFocus",d),d.defaultPrevented||(l.value||u(r).triggerElement.value?.focus(),d.preventDefault()),l.value=!1,o.value=!1}),onInteractOutside:c[1]||(c[1]=async d=>{a("interactOutside",d),d.defaultPrevented||(l.value=!0,d.detail.originalEvent.type==="pointerdown"&&(o.value=!0));const f=d.target;u(r).triggerElement.value?.contains(f)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&o.value&&d.preventDefault()})}),{default:B(()=>[_e(s.$slots,"default")]),_:3},16))}}),dD=cD,fD=le({__name:"PopoverContent",props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=Jl(),l=Da(n,a),{forwardRef:o}=tt();return r.contentId||=Lr(void 0,"reka-popover-content"),(i,s)=>(v(),U(u(pi),{present:i.forceMount||u(r).open.value},{default:B(()=>[u(r).modal.value?(v(),U(uD,He({key:0},u(l),{ref:u(o)}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16)):(v(),U(dD,He({key:1},u(l),{ref:u(o)}),{default:B(()=>[_e(i.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Tb=fD,pD=le({__name:"PopoverPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(ou),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),Db=pD,vD=le({__name:"DatePickerContent",props:{portal:{type:Object,required:!1},forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>({...n,portal:void 0})),l=Da(r,a);return(o,i)=>(v(),U(u(Db),lt(it(o.portal)),{default:B(()=>[F(u(Tb),He({...u(l),...o.$attrs},{onOpenAutoFocus:i[0]||(i[0]=s=>{a("openAutoFocus",s),!s.defaultPrevented&&s.target&&(u(Gg)(s.target),s.preventDefault())})}),{default:B(()=>[_e(o.$slots,"default")]),_:3},16)]),_:3},16))}}),mD=vD,hD=le({__name:"DatePickerField",setup(e){const t=Tf();return(n,a)=>(v(),U(u(H4),He({ref:u(t).dateFieldRef,"model-value":u(t).modelValue.value,placeholder:u(t).placeholder.value},{id:u(t).id.value,name:u(t).name.value,disabled:u(t).disabled.value,minValue:u(t).minValue.value,maxValue:u(t).maxValue.value,readonly:u(t).readonly.value,hourCycle:u(t).hourCycle.value,granularity:u(t).granularity.value,hideTimeZone:u(t).hideTimeZone.value,locale:u(t).locale.value,isDateUnavailable:u(t).isDateUnavailable,required:u(t).required.value,dir:u(t).dir.value,step:u(t).step.value},{"onUpdate:modelValue":a[0]||(a[0]=r=>{r&&u(t).modelValue.value&&r.compare(u(t).modelValue.value)===0||u(t).onDateChange(r)}),"onUpdate:placeholder":a[1]||(a[1]=r=>{r.compare(u(t).placeholder.value)!==0&&u(t).onPlaceholderChange(r)})}),{default:B(({segments:r,modelValue:l})=>[_e(n.$slots,"default",{segments:r,modelValue:l})]),_:3},16,["model-value","placeholder"]))}}),yD=hD,gD=le({__name:"DatePickerGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(UT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),bD=gD,_D=le({__name:"DatePickerGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(WT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),xD=_D,kD=le({__name:"DatePickerGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(GT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),wD=kD,$D=le({__name:"DatePickerGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(JT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),cm=$D,CD=le({__name:"DatePickerHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(XT),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),SD=CD,ED=le({__name:"DatePickerHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(e4),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),AD=ED,TD=le({__name:"DatePickerHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(n4),lt(it(t)),{default:B(({headingValue:r})=>[_e(n.$slots,"default",{headingValue:r},()=>[we(T(r),1)])]),_:3},16))}}),DD=TD,OD=le({__name:"DatePickerInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(K4),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),MD=OD,PD=le({__name:"DatePickerNext",props:{nextPage:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(r4),lt(it(t)),{default:B(r=>[_e(n.$slots,"default",lt(it(r)))]),_:3},16))}}),RD=PD,ID=le({__name:"DatePickerPrev",props:{prevPage:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(o4),lt(it(t)),{default:B(r=>[_e(n.$slots,"default",lt(it(r)))]),_:3},16))}}),qD=ID,ND=le({__name:"PopoverTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=Jl(),{forwardRef:a,currentElement:r}=tt();return n.triggerId||=Lr(void 0,"reka-popover-trigger"),wt(()=>{n.triggerElement.value=r.value}),(l,o)=>(v(),U(zt(u(n).hasCustomAnchor.value?u(nt):u(mf)),{"as-child":""},{default:B(()=>[F(u(nt),{id:u(n).triggerId,ref:u(a),type:l.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":u(n).open.value,"aria-controls":u(n).contentId,"data-state":u(n).open.value?"open":"closed",as:l.as,"as-child":t.asChild,onClick:u(n).onOpenToggle},{default:B(()=>[_e(l.$slots,"default")]),_:3},8,["id","type","aria-expanded","aria-controls","data-state","as","as-child","onClick"])]),_:3}))}}),LD=ND,BD=le({__name:"DatePickerTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=Tf();return(a,r)=>(v(),U(u(LD),He({"data-reka-date-field-segment":"trigger"},t,{disabled:u(n).disabled.value,onFocusin:r[0]||(r[0]=l=>{u(n).dateFieldRef.value?.setFocusedElement(l.target)})}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["disabled"]))}}),FD=BD;const[Ob,VD]=Ct("DropdownMenuRoot");var zD=le({__name:"DropdownMenuRoot",props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:t}){const n=e,a=t;tt();const r=Pt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=P(),{modal:o,dir:i}=Gt(n),s=Ta(i);return VD({open:r,onOpenChange:c=>{r.value=c},onOpenToggle:()=>{r.value=!r.value},triggerId:"",triggerElement:l,contentId:"",modal:o,dir:s}),(c,d)=>(v(),U(u(C4),{open:u(r),"onUpdate:open":d[0]||(d[0]=f=>_t(r)?r.value=f:null),dir:u(s),modal:u(o)},{default:B(()=>[_e(c.$slots,"default",{open:u(r)})]),_:3},8,["open","dir","modal"]))}}),Mb=zD,jD=le({__name:"DropdownMenuContent",props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:t}){const r=Da(e,t);tt();const l=Ob(),o=P(!1);function i(s){s.defaultPrevented||(o.value||setTimeout(()=>{l.triggerElement.value?.focus()},0),o.value=!1,s.preventDefault())}return l.contentId||=Lr(void 0,"reka-dropdown-menu-content"),(s,c)=>(v(),U(u(N4),He(u(r),{id:u(l).contentId,"aria-labelledby":u(l)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-dropdown-menu-content-available-width":"var(--reka-popper-available-width)","--reka-dropdown-menu-content-available-height":"var(--reka-popper-available-height)","--reka-dropdown-menu-trigger-width":"var(--reka-popper-anchor-width)","--reka-dropdown-menu-trigger-height":"var(--reka-popper-anchor-height)"},onCloseAutoFocus:i,onInteractOutside:c[0]||(c[0]=d=>{if(d.defaultPrevented)return;const f=d.detail.originalEvent,m=f.button===0&&f.ctrlKey===!0,p=f.button===2||m;(!u(l).modal.value||p)&&(o.value=!0),u(l).triggerElement.value?.contains(d.target)&&d.preventDefault()})}),{default:B(()=>[_e(s.$slots,"default")]),_:3},16,["id","aria-labelledby"]))}}),Pb=jD,UD=le({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(e,{emit:t}){const n=e,r=zl(t);return tt(),(l,o)=>(v(),U(u(O4),lt(it({...n,...u(r)})),{default:B(()=>[_e(l.$slots,"default")]),_:3},16))}}),cd=UD,HD=le({__name:"DropdownMenuPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,a)=>(v(),U(u(B4),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),Rb=HD,WD=le({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return tt(),(n,a)=>(v(),U(u(V4),lt(it(t)),{default:B(()=>[_e(n.$slots,"default")]),_:3},16))}}),KD=WD,GD=le({__name:"DropdownMenuTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=Ob(),{forwardRef:a,currentElement:r}=tt();return wt(()=>{n.triggerElement=r}),n.triggerId||=Lr(void 0,"reka-dropdown-menu-trigger"),(l,o)=>(v(),U(u(b4),{"as-child":""},{default:B(()=>[F(u(nt),{id:u(n).triggerId,ref:u(a),type:l.as==="button"?"button":void 0,"as-child":t.asChild,as:l.as,"aria-haspopup":"menu","aria-expanded":u(n).open.value,"aria-controls":u(n).open.value?u(n).contentId:void 0,"data-disabled":l.disabled?"":void 0,disabled:l.disabled,"data-state":u(n).open.value?"open":"closed",onClick:o[0]||(o[0]=async i=>{!l.disabled&&i.button===0&&i.ctrlKey===!1&&(u(n)?.onOpenToggle(),await Ze(),u(n).open.value&&i.preventDefault())}),onKeydown:o[1]||(o[1]=tr(i=>{l.disabled||(["Enter"," "].includes(i.key)&&u(n).onOpenToggle(),i.key==="ArrowDown"&&u(n).onOpenChange(!0),["Enter"," ","ArrowDown"].includes(i.key)&&i.preventDefault())},["enter","space","arrow-down"]))},{default:B(()=>[_e(l.$slots,"default")]),_:3},8,["id","type","as-child","as","aria-expanded","aria-controls","data-disabled","disabled","data-state"])]),_:3}))}}),Ib=GD;const Jo=100,[YD,JD]=Ct("ProgressRoot"),ks=e=>typeof e=="number";function ZD(e,t){return vn(e)||ks(e)&&!Number.isNaN(e)&&e<=t&&e>=0?e:(console.error(`Invalid prop \`value\` of value \`${e}\` supplied to \`ProgressRoot\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${Jo} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`),null)}function XD(e){return ks(e)&&!Number.isNaN(e)&&e>0?e:(console.error(`Invalid prop \`max\` of value \`${e}\` supplied to \`ProgressRoot\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Jo}\`.`),Jo)}var QD=le({__name:"ProgressRoot",props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:Jo},getValueLabel:{type:Function,required:!1,default:(e,t)=>ks(e)?`${Math.round(e/t*Jo)}%`:void 0},getValueText:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:modelValue","update:max"],setup(e,{emit:t}){const n=e,a=t;tt();const r=Pt(n,"modelValue",a,{passive:n.modelValue===void 0}),l=Pt(n,"max",a,{passive:n.max===void 0});je(()=>r.value,async i=>{const s=ZD(i,n.max);s!==i&&(await Ze(),r.value=s)},{immediate:!0}),je(()=>n.max,i=>{const s=XD(n.max);s!==i&&(l.value=s)},{immediate:!0});const o=_(()=>vn(r.value)?"indeterminate":r.value===l.value?"complete":"loading");return JD({modelValue:r,max:l,progressState:o}),(i,s)=>(v(),U(u(nt),{"as-child":i.asChild,as:i.as,"aria-valuemax":u(l),"aria-valuemin":0,"aria-valuenow":ks(u(r))?u(r):void 0,"aria-valuetext":i.getValueText?.(u(r),u(l)),"aria-label":i.getValueLabel(u(r),u(l)),role:"progressbar","data-state":o.value,"data-value":u(r)??void 0,"data-max":u(l)},{default:B(()=>[_e(i.$slots,"default",{modelValue:u(r)})]),_:3},8,["as-child","as","aria-valuemax","aria-valuenow","aria-valuetext","aria-label","data-state","data-value","data-max"]))}}),sc=QD,eO=le({__name:"ProgressIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=YD();return tt(),(a,r)=>(v(),U(u(nt),He(t,{"data-state":u(n).progressState.value,"data-value":u(n).modelValue?.value??void 0,"data-max":u(n).max.value}),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["data-state","data-value","data-max"]))}}),uc=eO;const tO="radio.select";function nO(e,t,n){Ud(tO,n,{originalEvent:e,value:t})}var aO=le({__name:"Radio",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:checked","select"],setup(e,{emit:t}){const n=e,a=t,r=Pt(n,"checked",a,{passive:n.checked===void 0}),{value:l}=Gt(n),{forwardRef:o,currentElement:i}=tt(),s=sf(i),c=_(()=>n.id&&i.value?document.querySelector(`[for="${n.id}"]`)?.innerText??n.value:void 0);function d(f){n.disabled||nO(f,n.value,m=>{a("select",m),!m?.defaultPrevented&&(r.value=!0,s.value&&m.stopPropagation())})}return(f,m)=>(v(),U(u(nt),He(f.$attrs,{id:f.id,ref:u(o),role:"radio",type:f.as==="button"?"button":void 0,as:f.as,"aria-checked":u(r),"aria-label":c.value,"as-child":f.asChild,disabled:f.disabled?"":void 0,"data-state":u(r)?"checked":"unchecked","data-disabled":f.disabled?"":void 0,value:u(l),required:f.required,name:f.name,onClick:vt(d,["stop"])}),{default:B(()=>[_e(f.$slots,"default",{checked:u(r)}),u(s)&&f.name?(v(),U(u(vf),{key:0,type:"radio",tabindex:"-1",value:u(l),checked:!!u(r),name:f.name,disabled:f.disabled,required:f.required},null,8,["value","checked","name","disabled","required"])):re("v-if",!0)]),_:3},16,["id","type","as","aria-checked","aria-label","as-child","disabled","data-state","data-disabled","value","required","name"]))}}),rO=aO;const[lO,oO]=Ct("RadioGroupRoot");var iO=le({__name:"RadioGroupRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=tt(),o=Pt(n,"modelValue",a,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),{disabled:i,loop:s,orientation:c,name:d,required:f,dir:m}=Gt(n),p=Ta(m),h=sf(l);return oO({modelValue:o,changeModelValue:x=>{o.value=x},disabled:i,loop:s,orientation:c,name:d?.value,required:f}),(x,k)=>(v(),U(u(Cf),{"as-child":"",orientation:u(c),dir:u(p),loop:u(s)},{default:B(()=>[F(u(nt),{ref:u(r),role:"radiogroup","data-disabled":u(i)?"":void 0,"as-child":x.asChild,as:x.as,"aria-orientation":u(c),"aria-required":u(f),dir:u(p)},{default:B(()=>[_e(x.$slots,"default",{modelValue:u(o)}),u(h)&&u(d)?(v(),U(u(vf),{key:0,required:u(f),disabled:u(i),value:u(o),name:u(d)},null,8,["required","disabled","value","name"])):re("v-if",!0)]),_:3},8,["data-disabled","as-child","as","aria-orientation","aria-required","dir"])]),_:3},8,["orientation","dir","loop"]))}}),qb=iO;const[sV,sO]=Ct("RadioGroupItem");var uO=le({inheritAttrs:!1,__name:"RadioGroupItem",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["select"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=tt(),o=lO(),i=_(()=>o.disabled.value||n.disabled),s=_(()=>o.required.value||n.required),c=_(()=>Uo(o.modelValue?.value,n.value));sO({disabled:i,checked:c});const d=P(!1),f=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];Bl("keydown",p=>{f.includes(p.key)&&(d.value=!0)}),Bl("keyup",()=>{d.value=!1});function m(){setTimeout(()=>{d.value&&l.value?.click()},0)}return(p,h)=>(v(),U(u(Sf),{checked:c.value,disabled:i.value,"as-child":"",focusable:!i.value,active:c.value},{default:B(()=>[F(rO,He({...p.$attrs,...n},{ref:u(r),checked:c.value,required:s.value,disabled:i.value,"onUpdate:checked":h[0]||(h[0]=x=>u(o).changeModelValue(p.value)),onSelect:h[1]||(h[1]=x=>a("select",x)),onKeydown:h[2]||(h[2]=tr(vt(()=>{},["prevent"]),["enter"])),onFocus:m}),{default:B(()=>[_e(p.$slots,"default",{checked:c.value,required:s.value,disabled:i.value})]),_:3},16,["checked","required","disabled"])]),_:3},8,["checked","disabled","focusable","active"]))}}),Nb=uO,cO=le({__name:"BaseSeparator",props:{orientation:{type:String,required:!1,default:"horizontal"},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=["horizontal","vertical"];function a(i){return n.includes(i)}const r=_(()=>a(t.orientation)?t.orientation:"horizontal"),l=_(()=>r.value==="vertical"?t.orientation:void 0),o=_(()=>t.decorative?{role:"none"}:{"aria-orientation":l.value,role:"separator"});return(i,s)=>(v(),U(u(nt),He({as:i.as,"as-child":i.asChild,"data-orientation":r.value},o.value),{default:B(()=>[_e(i.$slots,"default")]),_:3},16,["as","as-child","data-orientation"]))}}),dO=cO;const[fO,pO]=Ct("TimeFieldRoot");function Ri(e,t=fi(Nn())){return e&&"day"in e?e:ta(t,e)}var vO=le({inheritAttrs:!1,__name:"TimeFieldRoot",props:{defaultValue:{type:Object,required:!1,default:void 0},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1,default:void 0},modelValue:{type:[Object,null],required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},stepSnapping:{type:Boolean,required:!1,default:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:!1},readonly:{type:Boolean,required:!1,default:!1},id:{type:String,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:placeholder"],setup(e,{expose:t,emit:n}){const a=e,r=n,{disabled:l,readonly:o,granularity:i,defaultValue:s,minValue:c,maxValue:d,stepSnapping:f,dir:m,locale:p}=Gt(a),h=lu(p),x=Ta(m),k=of(h.value,{hourCycle:Ko(a.hourCycle)}),{primitiveElement:g,currentElement:C}=Br(),E=P(new Set),D=_(()=>Kg(a)),O=_(()=>c.value?Ri(c.value):void 0),L=_(()=>d.value?Ri(d.value):void 0);wt(()=>{um(C.value).forEach(ae=>E.value.add(ae))});const z=Pt(a,"modelValue",r,{defaultValue:s.value,passive:a.modelValue===void 0}),W=_({get(){return vn(z.value)?z.value:Ri(z.value)},set(ae){return ae?z.value=z.value&&"day"in z.value?ae:new Gn(ae.hour,ae.minute,ae.second,z.value?.millisecond):z.value=ae,ae}}),$=PE({defaultPlaceholder:a.placeholder,defaultValue:z.value}),q=Pt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??$.copy(),passive:a.placeholder===void 0}),J=_({get(){return Ri(q.value)},set(ae){return ae&&(q.value="day"in q.value?ae.copy():new Gn(ae.hour,ae.minute,ae.second,q.value?.millisecond)),ae}}),R=_(()=>i.value?i.value:"minute"),j=_(()=>z.value?!!(O.value&&Ja(W.value,O.value)||L.value&&Ja(L.value,W.value)):!1),Q=fT(R.value),N=P(z.value?{...ud({value:W.value,formatter:k})}:{...Q}),ne=_(()=>kb({granularity:R.value,dateRef:J.value,formatter:k,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:N.value,locale:h,isTimeValue:!0})),te=_(()=>{const ae=ne.value.arr;return a.hourCycle===12?ae.map(Z=>{if(Z.part==="hour"&&"hour"in N.value){const ue=N.value.hour;if(ue!==null){const V=ue===0?12:ue>12?ue-12:ue;return{...Z,value:V.toString()}}}return Z}):ae}),de=_(()=>te.value.filter(({part:ae})=>ae!=="literal"));je(h,ae=>{k.getLocale()!==ae&&(k.setLocale(ae),Ze(()=>{E.value.clear(),um(C.value).forEach(Z=>E.value.add(Z))}))}),je(W,ae=>{!vn(ae)&&(!Al(J.value,ae)||J.value.compare(ae)!==0)&&(q.value=ae.copy())}),je([W,h],([ae])=>{vn(ae)?Object.values(N.value).every(Z=>Z!==null)&&vn(ae)&&(N.value={...Q}):N.value={...ud({value:ae,formatter:k})}});const pe=P(null),xe=_(()=>Array.from(E.value).findIndex(ae=>ae.getAttribute("data-reka-time-field-segment")===pe.value?.getAttribute("data-reka-time-field-segment"))),me=_(()=>{const ae=x.value==="rtl"?-1:1;return(ae<0?xe.value<0:xe.value>E.value.size-1)?null:Array.from(E.value)[xe.value+ae]}),fe=_(()=>{const ae=x.value==="rtl"?-1:1;return(ae>0?xe.value<0:xe.value>E.value.size-1)?null:Array.from(E.value)[xe.value-ae]}),Te=jl();function H(ae){ae.isComposing||ca(ae.key)&&(ae.key===Te.ARROW_LEFT&&fe.value?.focus(),ae.key===Te.ARROW_RIGHT&&me.value?.focus())}function ke(ae){pe.value=ae}return pO({locale:h,modelValue:W,placeholder:J,disabled:l,formatter:k,hourCycle:a.hourCycle,step:D,stepSnapping:f,readonly:o,segmentValues:N,isInvalid:j,segmentContents:de,elements:E,setFocusedElement:ke,focusNext(){me.value?.focus()}}),t({setFocusedElement:ke}),(ae,Z)=>(v(),U(u(nt),He(ae.$attrs,{ref_key:"primitiveElement",ref:g,role:"group","aria-disabled":u(l)?!0:void 0,"data-disabled":u(l)?"":void 0,"data-readonly":u(o)?"":void 0,"data-invalid":j.value?"":void 0,dir:u(x),onKeydown:tr(H,["left","right"])}),{default:B(()=>[_e(ae.$slots,"default",{modelValue:u(z),segments:te.value,isInvalid:j.value}),F(u(pf),{id:ae.id,as:"input",feature:"focusable",tabindex:"-1",value:u(z)?u(z).toString():"",name:ae.name,disabled:u(l),required:ae.required,onFocus:Z[0]||(Z[0]=ue=>Array.from(E.value)?.[0]?.focus())},null,8,["id","value","name","disabled","required"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),dm=vO,mO=le({__name:"TimeFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=fO(),a=P(!0),r=P(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:i,handleSegmentCompositionStart:s,handleSegmentCompositionEnd:c,handleSegmentFocusOut:d,attributes:f}=wb({hasLeftFocus:a,lastKeyZero:r,placeholder:n.placeholder,hourCycle:n.hourCycle,step:n.step,stepSnapping:n.stepSnapping,segmentValues:n.segmentValues,formatter:n.formatter,part:t.part,disabled:n.disabled,readonly:n.readonly,focusNext:n.focusNext,modelValue:n.modelValue}),m=_(()=>n.disabled.value),p=_(()=>n.readonly.value),h=_(()=>n.isInvalid.value);return(x,k)=>(v(),U(u(nt),He({as:x.as,"as-child":x.asChild},u(f),{contenteditable:m.value||p.value?!1:x.part!=="literal","data-reka-time-field-segment":x.part,"aria-disabled":m.value?!0:void 0,"aria-readonly":p.value?!0:void 0,"data-disabled":m.value?"":void 0,"data-invalid":h.value?"":void 0,"aria-invalid":h.value?!0:void 0},Kh(x.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(i),compositionstart:u(s),compositionend:u(c),focusout:()=>{a.value=!0,u(d)()},focusin:g=>{u(n).setFocusedElement(g.target)}}:{})),{default:B(()=>[_e(x.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-time-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),fm=mO,hO=le({__name:"ToolbarButton",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,{forwardRef:n}=tt();return(a,r)=>(v(),U(u(Sf),{"as-child":"",focusable:!a.disabled},{default:B(()=>[F(u(nt),He({ref:u(n),type:a.as==="button"?"button":void 0},t),{default:B(()=>[_e(a.$slots,"default")]),_:3},16,["type"])]),_:3},8,["focusable"]))}}),co=hO;const[yO,gO]=Ct("ToolbarRoot");var bO=le({__name:"ToolbarRoot",props:{orientation:{type:String,required:!1,default:"horizontal"},dir:{type:String,required:!1},loop:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{orientation:n,dir:a}=Gt(t),r=Ta(a),{forwardRef:l}=tt();return gO({orientation:n,dir:r}),(o,i)=>(v(),U(u(Cf),{"as-child":"",orientation:u(n),dir:u(r),loop:o.loop},{default:B(()=>[F(u(nt),{ref:u(l),role:"toolbar","aria-orientation":u(n),"as-child":o.asChild,as:o.as},{default:B(()=>[_e(o.$slots,"default")]),_:3},8,["aria-orientation","as-child","as"])]),_:3},8,["orientation","dir","loop"]))}}),_O=bO,xO=le({__name:"ToolbarSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=yO();return tt(),(a,r)=>(v(),U(dO,{orientation:u(n).orientation.value,"as-child":t.asChild,as:a.as},{default:B(()=>[_e(a.$slots,"default")]),_:3},8,["orientation","as-child","as"]))}}),cc=xO;const kO=/^filter\[(.+)\]$/,wO=/^[1-9]\d*$/;function il(e){const t=Array.isArray(e)?e[e.length-1]:e;return typeof t=="string"?t:""}function pm(e){return wO.test(e)?Number(e):void 0}function Lb(e){const t={},n=il(e.search).trim();n!==""&&(t.search=n);const a=il(e.sort).trim();if(a!==""){t.sort=a;const i=il(e.dir);t.dir=i==="desc"?"desc":"asc"}const r=pm(il(e.page));r!==void 0&&(t.page=r);const l=pm(il(e.per_page));l!==void 0&&(t.per_page=l);const o={};for(const i of Object.keys(e).sort()){const s=kO.exec(i)?.[1],c=il(e[i]);s&&c!==""&&(o[s]=c)}return Object.keys(o).length>0&&(t.filter=o),t}function ws(e){const t={};e.search&&(t.search=e.search),e.sort&&(t.sort=e.sort,t.dir=e.dir==="desc"?"desc":"asc"),e.page!==void 0&&e.page>1&&(t.page=String(e.page)),e.per_page!==void 0&&(t.per_page=String(e.per_page));for(const n of Object.keys(e.filter??{}).sort()){const a=e.filter?.[n];a!==void 0&&a!==""&&(t[`filter[${n}]`]=a)}return t}function _l(e){return JSON.stringify(ws(e))}const Bb="summer-admin.list:",$O=_l({});let dd=null;function pu(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function Fb(e){return`${Bb}${e}:`}function Vb(e){return dd===null?null:Fb(dd)+e}function fd(e){try{pu()?.removeItem(e)}catch{}}function vm(e){const t=pu();if(t)try{const n=[];for(let a=0;a!0);return}const n=Fb(t);vm(a=>!a.startsWith(n))}function CO(e){const t=Vb(e);if(t===null)return{};let n=null;try{n=pu()?.getItem(t)??null}catch{return{}}if(n===null)return{};let a;try{a=JSON.parse(n)}catch{return fd(t),{}}return typeof a!="object"||a===null||Array.isArray(a)||Object.getPrototypeOf(a)!==Object.prototype||!Object.values(a).every(r=>typeof r=="string")?(fd(t),{}):Lb(a)}function Ii(e,t){const n=Vb(e);if(n!==null){if(_l(t)===$O){fd(n);return}try{pu()?.setItem(n,JSON.stringify(ws(t)))}catch{}}}const Ml=P(null),zb=P(null);let qo=null;function jb(e){Ub(),zb.value=e,!(e===null||e<=0)&&(qo=setTimeout(()=>{qo=null,qd()},e*800))}function Ub(){qo!==null&&(clearTimeout(qo),qo=null)}Hk(jb);const ln=Mt(Ml);async function SO(e,t){const{data:n,response:a}=await Le.POST("/auth/login",{body:{login:e,password:t}});return!a.ok||!n?!1:(jb(typeof n.data.expires_in=="number"?n.data.expires_in:null),!0)}async function Hb(){const{data:e,response:t}=await Le.GET("/auth/me");return Ml.value=t.ok&&e?e.data:null,Df(Ml.value?.id??null),Ml.value}function Wb(e){if(!e)return"";const t=[e.first_name,e.last_name].map(n=>n.trim()).filter(Boolean);return t.length>0?t.slice(0,2).map(n=>n.charAt(0).toUpperCase()).join(""):e.login.slice(0,2).toUpperCase()}function dc(e){Ml.value=e,Df(e.id)}function Kb(){Ub(),Ml.value=null,zb.value=null,Df(null)}function EO(e){Kb();const t=e.currentRoute.value;t.name!=="login"&&e.push({name:"login",query:{redirect:t.fullPath}}).catch(()=>{})}async function AO(e){try{await Le.POST("/auth/logout")}catch{}finally{Kb(),Zk([]),ew([])}e&&await e.replace({name:"login"}).catch(()=>{})}const TO=["src"],DO={key:1,class:"flex size-[34px] shrink-0 items-center justify-center rounded-full bg-accent text-[13px] font-bold text-on-accent","aria-hidden":"true","data-user-initials":""},OO={class:"flex flex-col leading-tight max-[1099px]:hidden","data-user-identity":""},MO={class:"font-semibold"},PO={key:0,class:"text-[12px] text-muted","data-user-role":""},RO={class:"flex items-center gap-3 px-2 py-2"},IO=["src"],qO={key:1,class:"flex size-10 shrink-0 items-center justify-center rounded-full bg-accent text-[14px] font-bold text-on-accent","aria-hidden":"true"},NO={class:"flex min-w-0 flex-col leading-tight"},LO={class:"truncate font-bold"},BO={class:"truncate text-[13px] text-muted"},FO=le({__name:"UserMenu",setup(e){const t=jr(),n=_(()=>{const s=ln.value;if(!s)return"";const c=`${s.first_name} ${s.last_name}`.trim();return c===""?s.login:c}),a=_(()=>Wb(ln.value)),r=_(()=>ln.value?.avatar?.thumb_url||ln.value?.avatar?.url||""),l=_(()=>ln.value?.role?.name??"");async function o(){await t.push({name:"account"}).catch(()=>{})}async function i(){await AO(t)}return(s,c)=>(v(),U(u(Mb),{modal:!1},{default:B(()=>[F(u(Ib),{"data-user-menu":"",disabled:!u(ln),"aria-label":`${u(w)("backend::lang.nav.user_menu")}: ${n.value}`,class:"flex h-input items-center gap-2.5 rounded-inner px-2 text-left transition-colors duration-150 ease-out hover:bg-hover"},{default:B(()=>[r.value?(v(),b("img",{key:0,src:r.value,alt:"","data-user-avatar":"",class:"size-[34px] shrink-0 rounded-full object-cover"},null,8,TO)):(v(),b("span",DO,T(a.value),1)),S("span",OO,[S("span",MO,T(n.value),1),l.value?(v(),b("span",PO,T(l.value),1)):re("",!0)]),F(u(ar),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled","aria-label"]),F(u(Rb),null,{default:B(()=>[F(u(Pb),{"data-user-menu-content":"",align:"end","side-offset":8,class:"z-50 flex w-[280px] flex-col rounded-[14px] border border-border bg-surface p-2 text-text shadow-menu"},{default:B(()=>[S("div",RO,[r.value?(v(),b("img",{key:0,src:r.value,alt:"","data-user-avatar":"",class:"size-10 shrink-0 rounded-full object-cover"},null,8,IO)):(v(),b("span",qO,T(a.value),1)),S("span",NO,[S("span",LO,T(n.value),1),S("span",BO,T(u(ln)?.email),1)])]),F(u(cd),{"data-action":"account",class:"flex h-10 cursor-pointer items-center gap-2.5 rounded-control px-3 font-medium outline-none transition-colors duration-150 ease-out data-[highlighted]:bg-hover",onSelect:o},{default:B(()=>[F(u(PC),{size:18,"aria-hidden":"true"}),S("span",null,T(u(w)("backend::lang.myaccount.menu_label")),1)]),_:1}),F(u(KD),{class:"my-1 h-px bg-border"}),F(u(cd),{"data-action":"logout",class:"flex h-10 cursor-pointer items-center gap-2.5 rounded-control px-3 font-medium outline-none transition-colors duration-150 ease-out data-[highlighted]:bg-hover",onSelect:i},{default:B(()=>[F(u(tg),{size:18,"aria-hidden":"true"}),S("span",null,T(u(w)("backend::lang.auth.logout")),1)]),_:1})]),_:1})]),_:1})]),_:1}))}}),VO=4e3,Zo=P([]),pd=new Map;let zO=1;const jO=Mt(Zo);function Ne(e,t="success"){const n=zO++;return Zo.value=[{id:n,text:e,tone:t},...Zo.value],pd.set(n,setTimeout(()=>Gb(n),VO)),n}function Gb(e){const t=pd.get(e);t!==void 0&&(clearTimeout(t),pd.delete(e)),Zo.value=Zo.value.filter(n=>n.id!==e)}const UO=["role","data-tone"],HO={class:"font-medium"},WO=["aria-label","onClick"],KO=le({__name:"Toast",setup(e){return(t,n)=>(v(),U(gx,{tag:"div",name:"toast",class:"pointer-events-none fixed inset-x-0 bottom-[88px] z-50 flex flex-col items-center gap-2 px-4"},{default:B(()=>[(v(!0),b(ye,null,qe(u(jO),a=>(v(),b("div",{key:a.id,role:a.tone==="danger"?"alert":"status","data-tone":a.tone,class:"pointer-events-auto flex max-w-[560px] items-center gap-3 rounded-[14px] bg-[#1d2740] py-3 pr-2.5 pl-3.5 text-white shadow-toast"},[S("span",{class:ge([a.tone==="danger"?"bg-[#f58a8a] text-[#1d2740]":"bg-accent text-on-accent","flex size-[26px] shrink-0 items-center justify-center rounded-full"]),"aria-hidden":"true"},[a.tone==="danger"?(v(),U(u(gt),{key:0,size:16})):(v(),U(u(nr),{key:1,size:16}))],2),S("span",HO,T(a.text),1),S("button",{type:"button","aria-label":u(w)("backend::lang.form.close"),class:"flex size-8 items-center justify-center rounded-pager text-[#c3cbda] transition-colors duration-150 ease-out hover:bg-side-hover hover:text-white",onClick:r=>u(Gb)(a.id)},[F(u(hn),{size:16,"aria-hidden":"true"})],8,WO)],8,UO))),128))]),_:1}))}}),GO={class:"flex min-h-screen bg-bg text-text"},YO={class:"flex min-w-0 flex-1 flex-col"},JO={class:"flex h-header shrink-0 items-center justify-between gap-4 border-b border-border bg-surface pr-6 pl-8"},ZO={class:"flex shrink-0 items-center gap-1"},XO=["title","aria-label"],QO={class:"min-w-0 flex-1 px-8 py-7"},eM=le({__name:"AppShell",setup(e){const t=En(),{collapsed:n,watchViewport:a}=vg(),r=a();At(r);const l=`${window.location.origin}/`,o=_(()=>ii(String(t.params.vendor??""),String(t.params.plugin??"")));return(i,s)=>(v(),b("div",GO,[F(lS),o.value&&!u(n)?(v(),U(cS,{key:0,entry:o.value},null,8,["entry"])):re("",!0),S("div",YO,[S("header",JO,[F(vS),S("div",ZO,[S("a",{"data-view-site":"",href:l,target:"_blank",rel:"noopener noreferrer",title:u(w)("backend::lang.nav.view_site"),"aria-label":u(w)("backend::lang.nav.view_site"),class:"flex size-input items-center justify-center rounded-inner text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text"},[F(u(Zy),{class:"size-[18px]","aria-hidden":"true"})],8,XO),F(FO)])]),S("main",QO,[_e(i.$slots,"default")])]),F(KO)]))}}),tM=le({__name:"App",setup(e){const t=En(),n=_(()=>t.meta.shell===!0);return gn(()=>{document.title=nw(t)}),(a,r)=>n.value?(v(),U(eM,{key:0},{default:B(()=>[F(u(Uc),null,{default:B(({Component:l,route:o})=>[(v(),U(zt(l),{key:o.path}))]),_:1})]),_:1})):(v(),U(u(Uc),{key:1}))}}),nM="data-summer-controller",Yb="*",fc=new Map,vd=new Map;let Jb="";function Zb(){return`${Ks.base}/assets/`}function Xb(e){if(!e.startsWith(Zb())||e.includes("\\"))return!1;for(const n of e){const a=n.codePointAt(0)??0;if(a<=32||a===127)return!1}return!(e.split(/[?#]/,1)[0]??"").split("/").some(n=>{const a=n.toLowerCase().replaceAll("%2e",".");return a==="."||a===".."})}function Qb(e){if(!Xb(e))return Promise.reject(new Error(`plugin script outside ${Zb()}: ${e}`));const t=fc.get(e);if(t)return t;const n=new Promise((a,r)=>{const l=document.createElement("script");l.type="module",l.addEventListener("load",()=>a(),{once:!0}),l.addEventListener("error",()=>{fc.delete(e),l.remove(),r(new Error(`plugin script failed to load: ${e}`))},{once:!0}),l.src=e,document.head.appendChild(l)});return fc.set(e,n),n}function e1(e,t){for(const n of t){const a=`${e} +${n}`;if(!Xb(n)||vd.has(a))continue;const r=document.createElement("link");r.rel="stylesheet",r.setAttribute(nM,e),r.disabled=!t1(e),r.href=n,vd.set(a,{owner:e,link:r}),document.head.appendChild(r)}}function aM(e){Jb=e;for(const{owner:t,link:n}of vd.values())n.disabled=!t1(t)}function t1(e){return e===Yb||e===Jb}function rM(e){e1(Yb,e)}async function Of(e,t){e1(e,t?.styles??[]);const n=t?.scripts??[],a=await Promise.allSettled(n.map(r=>Qb(r)));return n.filter((r,l)=>a[l]?.status==="rejected")}const n1=new Map;async function a1(){let e=[];try{const{data:t,response:n}=await Le.GET("/field-types");e=n.ok&&t?t.data:[]}catch{return[]}for(const t of e){rM(t.styles??[]);const n=t.scripts??[];n1.set(t.element,Promise.allSettled(n.map(a=>Qb(a))).then(a=>n.filter((r,l)=>a[l]?.status==="rejected")))}return e}function lM(e){return n1.get(e)??Promise.resolve([])}const oM={class:"flex min-h-screen items-center justify-center px-4",style:{background:"radial-gradient(ellipse at 50% 35%, #2b3a5c 0%, #1d2740 60%)"}},iM={class:"flex w-full max-w-[400px] flex-col gap-6"},sM={class:"flex items-center justify-center gap-3"},uM={class:"flex size-[34px] items-center justify-center rounded-full bg-accent-soft"},cM={class:"text-[22px] font-bold tracking-[-0.02em]"},dM={class:"flex flex-col gap-1.5"},fM={class:"font-semibold"},pM={class:"flex flex-col gap-1.5"},vM={class:"font-semibold"},mM=["aria-invalid"],hM={key:0,role:"alert",class:"flex items-center gap-2.5 rounded-control bg-[#fdf0f0] px-3.5 py-3 text-[#c62828]"},yM=["disabled"],gM=le({__name:"LoginView",setup(e){const t=En(),n=jr(),a=P(""),r=P(""),l=P(!1),o=P(!1);async function i(){if(!o.value){o.value=!0,l.value=!1;try{if(!await SO(a.value.trim(),r.value)||!await Hb()){l.value=!0;return}r.value="",await Promise.all([Fy(),Vy().catch(()=>[]),a1()]),await n.replace(F1(t.query.redirect)??"/")}finally{o.value=!1}}}return(s,c)=>(v(),b("main",oM,[S("div",iM,[S("div",sM,[S("span",uM,[F(u(Zs),{size:20,class:"text-accent","aria-hidden":"true"})]),c[2]||(c[2]=S("span",{class:"text-[18px] font-bold text-white"},[we("Summer"),S("span",{class:"text-accent"},"CMS")],-1))]),S("form",{class:"flex flex-col gap-[18px] rounded-card bg-white p-8 text-[#141b2d] shadow-login",novalidate:"",onSubmit:vt(i,["prevent"])},[S("h1",cM,T(u(w)("backend::lang.auth.title")),1),S("label",dM,[S("span",fM,T(u(w)("backend::lang.auth.login")),1),Qn(S("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),name:"login",type:"text",autocomplete:"username",required:"",class:"h-input rounded-control border border-[#d2d8e2] bg-white px-3.5"},null,512),[[ql,a.value]])]),S("label",pM,[S("span",vM,T(u(w)("backend::lang.auth.password")),1),Qn(S("input",{"onUpdate:modelValue":c[1]||(c[1]=d=>r.value=d),name:"password",type:"password",autocomplete:"current-password",required:"","aria-invalid":l.value?"true":void 0,class:ge([l.value?"border-[#c62828]":"border-[#d2d8e2]","h-input rounded-control border bg-white px-3.5"])},null,10,mM),[[ql,r.value]])]),l.value?(v(),b("div",hM,[F(u(gt),{size:18,"aria-hidden":"true"}),S("span",null,T(u(w)("backend::lang.auth.invalid")),1)])):re("",!0),S("button",{type:"submit",disabled:o.value,class:"h-input rounded-control bg-[#22304d] font-semibold text-white disabled:opacity-60"},T(u(w)("backend::lang.auth.submit")),9,yM)],32)])]))}}),mm=/^\d+$/;function r1(e,t,n){const a=Hs(t),r=In(t);if(!a||!r)return"/";const o=((e??"").trim().split(/[?#]/,1)[0]??"").split("/").filter(d=>d!==""),i=[a.vendor,a.plugin,a.controller];if(!i.every((d,f)=>o[f]?.toLowerCase()===d.toLowerCase()))return r;const c=o.slice(i.length);if(c.length===0)return r;if(c.length===1&&c[0]==="create")return`${r}/create`;if(c.length===2&&c[0]==="update"){const d=c[1]===":id"?String(n??""):c[1]??"";return mm.test(d)?`${r}/${d}`:r}if(c.length===2&&c[0]==="preview"){const d=c[1]===":id"?String(n??""):c[1]??"";return mm.test(d)?`${r}/${d}/preview`:r}return r}const bM={key:0,"data-switch":"true",class:"inline-flex h-6 items-center gap-1 rounded-pill bg-ok-bg px-2.5 text-[12px] font-semibold text-ok-text"},_M={key:1,"data-switch":"false",class:"inline-flex h-6 items-center rounded-pill border border-border-strong px-2.5 text-[12px] font-semibold text-muted"},xM={key:1,class:"text-muted","data-empty":""},kM={key:2,class:"text-[13px] text-muted tabular-nums"},sl=le({__name:"CellValue",props:{column:{},value:{}},setup(e){const t=e;function n(f){return f==null||f===""}function a(f){return n(f)?"":Array.isArray(f)?f.map(a).filter(m=>m!=="").join(", "):typeof f=="boolean"?w(f?"backend::lang.list.column_switch_true":"backend::lang.list.column_switch_false"):typeof f=="object"?"":String(f)}function r(f){return String(f).padStart(2,"0")}function l(f){if(typeof f!="string"&&typeof f!="number")return"";const m=new Date(f);return Number.isNaN(m.getTime())?String(f):`${m.getFullYear()}-${r(m.getMonth()+1)}-${r(m.getDate())} ${r(m.getHours())}:${r(m.getMinutes())}`}function o(f){if(typeof f!="string")return"";const m=/^\d{4}-\d{2}-\d{2}/.exec(f.trim());return m?m[0]:f.trim()}function i(f){if(typeof f!="string")return"";const m=/(\d{2}):(\d{2})/.exec(f);return m?`${m[1]}:${m[2]}`:f.trim()}function s(f){return typeof f=="string"?f!==""&&f!=="0"&&f.toLowerCase()!=="false":!!f}const c=_(()=>t.column.type==="switch"?"switch":t.column.type==="datetime"?"datetime":t.column.type==="date"?"date":t.column.type==="time"?"time":"text"),d=_(()=>{switch(c.value){case"datetime":return l(t.value);case"date":return o(t.value);case"time":return i(t.value);default:return a(t.value)}});return(f,m)=>c.value==="switch"&&!n(e.value)?(v(),b(ye,{key:0},[s(e.value)?(v(),b("span",bM,[F(u(Hy),{size:14,"aria-hidden":"true"}),we(T(u(w)("backend::lang.list.column_switch_true")),1)])):(v(),b("span",_M,T(u(w)("backend::lang.list.column_switch_false")),1))],64)):d.value===""?(v(),b("span",xM,"—")):c.value==="datetime"||c.value==="date"||c.value==="time"?(v(),b("span",kM,T(d.value),1)):(v(),b(ye,{key:3},[we(T(d.value),1)],64))}}),wM={key:0,class:"flex shrink-0 gap-2"},$M=["data-row-state"],CM=le({__name:"RowStateBadges",props:{states:{},labels:{}},setup(e){const t=e,n={deleted:"border border-border-strong text-muted",negative:"bg-danger-soft text-danger",disabled:"bg-subtle text-muted"},a=["deleted","negative","disabled"],r=_(()=>a.filter(l=>t.states.includes(l)));return(l,o)=>r.value.length>0?(v(),b("span",wM,[(v(!0),b(ye,null,qe(r.value,i=>(v(),b("span",{key:i,"data-row-state":i,class:ge([n[i],"inline-flex h-6 shrink-0 items-center rounded-pill px-2.5 text-[12px] font-semibold whitespace-nowrap"])},T(e.labels[i]??i),11,$M))),128))])):re("",!0)}}),SM={class:"overflow-x-auto"},EM={class:"sticky top-0 z-10"},AM={class:"h-row-head border-y border-border bg-subtle"},TM={key:0,scope:"col","data-select":"",class:"w-[52px] pl-5"},DM=["aria-checked","aria-label","disabled"],OM=["aria-sort"],MM=["data-sort","onClick"],PM={key:1,class:"w-[56px] pr-5"},RM=["aria-busy"],IM={key:0,class:"pl-5"},qM={key:1,class:"pr-5"},NM={key:1},LM=["colspan"],BM={class:"text-muted"},FM=["aria-selected","data-row-states","onClick"],VM={key:0,"data-select":"",class:"pl-5"},zM=["aria-checked","aria-label","onClick"],jM={key:0,class:"flex items-center gap-3"},UM={"data-avatar":"",class:"flex size-[30px] shrink-0 items-center justify-center rounded-full bg-subtle text-[12px] font-bold text-text","aria-hidden":"true"},HM=["onClick"],WM={key:1,class:"flex items-center gap-2"},KM={key:1,"data-trailing":"",class:"w-[56px] pr-5"},l1=le({__name:"DataTable",props:{columns:{},rows:{},loading:{type:Boolean,default:!1},rowLink:{type:Function,default:void 0},selectable:{type:Boolean,default:!1},selected:{default:()=>[]},sortable:{type:Boolean,default:!1},sort:{default:null},variant:{default:"list"},openable:{type:Boolean,default:!1},trailing:{type:Boolean,default:!1},rowStates:{default:()=>({})},stateLabels:{default:()=>({})}},emits:["update:selected","sort","open"],setup(e,{emit:t}){const n=e,a=t,r=jr();function l(j){const Q=j.id;return typeof Q=="number"||typeof Q=="string"?Q:null}function o(j,Q){const N=l(j);return N===null?`row-${Q}`:String(N)}function i(j){return n.rowLink?n.rowLink(j):null}function s(j,Q){if(j.target?.closest("a, button, input, label, select"))return;if(n.openable){const te=j.currentTarget?.querySelector("[data-row-open]")??null;a("open",Q,te);return}const ne=i(Q);ne&&r.push(ne)}const c=_(()=>n.rows.map(l).filter(j=>j!==null)),d=_(()=>new Set(n.selected.map(String))),f=_(()=>{const j=c.value,Q=j.filter(N=>d.value.has(String(N))).length;return Q===0?"false":Q===j.length?"true":"mixed"});function m(j){const Q=l(j);return Q!==null&&d.value.has(String(Q))}function p(){a("update:selected",f.value==="true"?[]:[...c.value])}function h(j){const Q=l(j);Q!==null&&(d.value.has(String(Q))?a("update:selected",n.selected.filter(N=>String(N)!==String(Q))):a("update:selected",[...n.selected,Q]))}function x(j){if(n.sort?.column===j.key)return n.sort.dir==="desc"?"descending":"ascending"}function k(j){return n.sortable&&j.sortable}const g=_(()=>n.variant==="relation"),C=_(()=>g.value?"h-[56px]":"h-row"),E=_(()=>g.value?3:8);function D(j){return(typeof j=="string"||typeof j=="number"?String(j):"").split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(N=>N.charAt(0).toUpperCase()).join("")}const O=["deleted","negative","disabled"];function L(j){const Q=l(j),N=Q===null?void 0:n.rowStates[String(Q)];return Array.isArray(N)?O.filter(ne=>N.includes(ne)):[]}function z(j,Q,N=[]){const ne=N.includes("deleted")||N.includes("disabled");return Q===0?ne?"font-semibold text-muted":"font-semibold":ne||g.value||j.relation?"text-muted":""}function W(j){return["min-w-0 truncate",j.includes("deleted")?"line-through":"no-underline",j.includes("negative")?"text-danger":j.includes("deleted")||j.includes("disabled")?"text-muted":"text-text"]}const $=_(()=>n.columns.filter(j=>!j.invisible)),q=_(()=>Math.max($.value.length+(n.selectable?1:0)+(n.trailing?1:0),1));function J(j,Q){a("open",Q,j.currentTarget)}const R=["w-3/5","w-2/5","w-1/2","w-3/4","w-1/3","w-2/3","w-1/2","w-2/5"];return(j,Q)=>(v(),b("div",SM,[S("table",{class:ge([g.value?"min-w-[480px]":"min-w-[640px]","w-full border-collapse text-left"])},[S("thead",EM,[S("tr",AM,[e.selectable?(v(),b("th",TM,[S("button",{type:"button",role:"checkbox","aria-checked":f.value,"aria-label":u(w)("backend::lang.list.select_all"),disabled:e.loading||c.value.length===0,class:ge([f.value==="false"?"border-border-strong bg-surface":"border-primary bg-primary text-on-primary","flex size-[18px] items-center justify-center rounded-checkbox border disabled:opacity-60"]),onClick:p},[f.value==="mixed"?(v(),U(u(ng),{key:0,size:14,"aria-hidden":"true"})):f.value==="true"?(v(),U(u(nr),{key:1,size:14,"aria-hidden":"true"})):re("",!0)],10,DM)])):re("",!0),(v(!0),b(ye,null,qe($.value,N=>(v(),b("th",{key:N.key,scope:"col","aria-sort":k(N)?x(N)??"none":void 0,class:ge([x(N)?"text-text":"text-muted","px-3.5 text-[12px] font-semibold first:pl-5 last:pr-5"])},[k(N)?(v(),b("button",{key:0,type:"button","data-sort":N.key,class:"inline-flex items-center gap-1 font-semibold",onClick:ne=>a("sort",N.key)},[we(T(N.label)+" ",1),x(N)==="ascending"?(v(),U(u(Wy),{key:0,size:14,"aria-hidden":"true"})):x(N)==="descending"?(v(),U(u(jy),{key:1,size:14,"aria-hidden":"true"})):re("",!0)],8,MM)):(v(),b(ye,{key:1},[we(T(N.label),1)],64))],10,OM))),128)),e.trailing?(v(),b("td",PM)):re("",!0)])]),S("tbody",{"aria-busy":e.loading?"true":void 0},[e.loading?(v(!0),b(ye,{key:0},qe(E.value,N=>(v(),b("tr",{key:`skeleton-${N}`,"data-skeleton":"",class:ge([C.value,"border-b border-border"])},[e.selectable?(v(),b("td",IM,[...Q[0]||(Q[0]=[S("span",{class:"block size-[18px] rounded-checkbox bg-skel"},null,-1)])])):re("",!0),(v(!0),b(ye,null,qe($.value,ne=>(v(),b("td",{key:ne.key,class:"px-3.5 first:pl-5 last:pr-5"},[S("span",{class:ge([R[(N-1)%R.length],"block h-3 rounded-[6px] bg-skel"])},null,2)]))),128)),e.trailing?(v(),b("td",qM)):re("",!0)],2))),128)):e.rows.length===0?(v(),b("tr",NM,[S("td",{colspan:q.value,class:"px-5 py-20 text-center"},[_e(j.$slots,"empty",{},()=>[S("span",BM,T(u(w)("backend::lang.list.no_records")),1)])],8,LM)])):(v(!0),b(ye,{key:2},qe(e.rows,(N,ne)=>(v(),b("tr",{key:o(N,ne),class:ge([[C.value,m(N)?"bg-sel":i(N)||e.openable?"hover:bg-hover":"",i(N)||e.openable?"cursor-pointer":""],"border-b border-border transition-colors duration-150 ease-out"]),"aria-selected":e.selectable?m(N)?"true":"false":void 0,"data-row-states":L(N).length>0?L(N).join(" "):void 0,onClick:te=>s(te,N)},[e.selectable?(v(),b("td",VM,[S("button",{type:"button",role:"checkbox","aria-checked":m(N)?"true":"false","aria-label":u(w)("backend::lang.list.select_row"),class:ge([m(N)?"border-primary bg-primary text-on-primary":"border-border-strong bg-surface","flex size-[18px] items-center justify-center rounded-checkbox border"]),onClick:te=>h(N)},[m(N)?(v(),U(u(nr),{key:0,size:14,"aria-hidden":"true"})):re("",!0)],10,zM)])):re("",!0),(v(!0),b(ye,null,qe($.value,(te,de)=>(v(),b("td",{key:te.key,class:ge([z(te,de,L(N)),"px-3.5 first:pl-5 last:pr-5"])},[g.value&&de===0?(v(),b("span",jM,[S("span",UM,T(D(N[te.key])),1),e.openable?(v(),b("button",{key:0,type:"button","data-row-open":"",class:"min-w-0 truncate text-left font-semibold text-text",onClick:pe=>J(pe,N)},[F(sl,{column:te,value:N[te.key]},null,8,["column","value"])],8,HM)):(v(),U(sl,{key:1,column:te,value:N[te.key]},null,8,["column","value"]))])):de===0&&L(N).length>0?(v(),b("span",WM,[i(N)?(v(),U(u(ea),{key:0,to:i(N),class:ge(W(L(N)))},{default:B(()=>[F(sl,{column:te,value:N[te.key]},null,8,["column","value"])]),_:2},1032,["to","class"])):(v(),b("span",{key:1,class:ge(W(L(N)))},[F(sl,{column:te,value:N[te.key]},null,8,["column","value"])],2)),F(CM,{states:L(N),labels:e.stateLabels},null,8,["states","labels"])])):de===0&&i(N)?(v(),U(u(ea),{key:2,to:i(N),class:"text-text no-underline"},{default:B(()=>[F(sl,{column:te,value:N[te.key]},null,8,["column","value"])]),_:2},1032,["to"])):(v(),U(sl,{key:3,column:te,value:N[te.key]},null,8,["column","value"]))],2))),128)),e.trailing?(v(),b("td",KM,[_e(j.$slots,"trailing",{row:N})])):re("",!0)],10,FM))),128))],8,RM)],2)]))}}),GM=["aria-label"],YM={key:0,class:"flex flex-col gap-1 text-[13px]"},JM={class:"font-semibold text-muted"},ZM=["data-filter","value","onChange"],XM=["value"],QM={key:1,class:"flex flex-col gap-1 text-[13px]"},e5={class:"mb-1 font-semibold text-muted"},t5={class:"flex items-center gap-2"},n5=["data-filter","aria-label","value","onChange"],a5=["data-filter","aria-label","value","onChange"],r5={key:2,class:"flex flex-col gap-1 text-[13px]"},l5={class:"font-semibold text-muted"},o5=["data-filter","value","onChange"],i5=["value"],fo="",qi="h-button rounded-control border border-border-strong bg-surface px-3 text-text",s5=le({__name:"FilterBar",props:{filters:{},values:{},source:{}},emits:["update"],setup(e,{emit:t}){const n=e,a=t;function r(f){if(f.options&&f.options.length>0)return f.options.map(p=>({value:JSON.stringify(p.value),label:p.label}));const m=[];return f.trueValue!==void 0&&m.push({value:JSON.stringify(f.trueValue),label:w("backend::lang.list.column_switch_true")}),f.falseValue!==void 0&&m.push({value:JSON.stringify(f.falseValue),label:w("backend::lang.list.column_switch_false")}),m}const l=P({});async function o(f){const{data:m}=await Le.GET("/{vendor}/{plugin}/{controller}/filters/{scope}/options",{params:{path:{...n.source,scope:f.name}}});l.value={...l.value,[f.name]:m?.data??[]}}wt(()=>{for(const f of n.filters)f.type==="scope"&&o(f)});const i=On({});function s(){for(const f of n.filters){if(f.type!=="daterange")continue;const[m="",p=""]=(n.values[f.name]??"").split(".."),h=i[f.name];(!h||n.values[f.name]!==void 0||h.from!==""&&h.to!=="")&&(i[f.name]={from:m,to:p})}}je(()=>n.values,s,{immediate:!0,deep:!0});function c(f,m,p){const h={...i[f.name]??{from:"",to:""},[m]:p};i[f.name]=h,h.from!==""&&h.to!==""?a("update",f.name,`${h.from}..${h.to}`):(h.from===""&&h.to===""||n.values[f.name]!==void 0)&&a("update",f.name,null)}function d(f,m){a("update",f.name,m===fo?null:m)}return(f,m)=>(v(),b("div",{role:"group","aria-label":u(w)("backend::lang.list.filters"),"data-filter-bar":"",class:"flex flex-wrap items-end gap-4 border-t border-border px-5 py-3.5"},[(v(!0),b(ye,null,qe(e.filters,p=>(v(),b(ye,{key:p.name},[p.type==="switch"?(v(),b("label",YM,[S("span",JM,T(p.label||p.name),1),S("select",{"data-filter":p.name,value:e.values[p.name]??fo,class:ge(qi),onChange:h=>d(p,h.target.value)},[S("option",{value:fo},T(u(w)("backend::lang.list.filter_all")),1),(v(!0),b(ye,null,qe(r(p),h=>(v(),b("option",{key:h.value,value:h.value},T(h.label),9,XM))),128))],40,ZM)])):p.type==="daterange"?(v(),b("fieldset",QM,[S("legend",e5,T(p.label||p.name),1),S("div",t5,[S("input",{type:"date","data-filter":`${p.name}-from`,"aria-label":u(w)("backend::lang.list.filter_from"),value:i[p.name]?.from??"",class:ge(qi),onChange:h=>c(p,"from",h.target.value)},null,40,n5),m[0]||(m[0]=S("span",{"aria-hidden":"true"},"–",-1)),S("input",{type:"date","data-filter":`${p.name}-to`,"aria-label":u(w)("backend::lang.list.filter_to"),value:i[p.name]?.to??"",class:ge(qi),onChange:h=>c(p,"to",h.target.value)},null,40,a5)])])):p.type==="scope"?(v(),b("label",r5,[S("span",l5,T(p.label||p.name),1),(v(),b("select",{key:`${p.name}-${l.value[p.name]?.length??-1}`,"data-filter":p.name,value:e.values[p.name]??fo,class:ge(qi),onChange:h=>d(p,h.target.value)},[S("option",{value:fo},T(u(w)("backend::lang.list.filter_all")),1),(v(!0),b(ye,null,qe(l.value[p.name]??[],h=>(v(),b("option",{key:h.value,value:h.value},T(h.label),9,i5))),128))],40,o5))])):re("",!0)],64))),128))],8,GM))}}),u5=["type","disabled"],et=le({__name:"Button",props:{variant:{default:"outline"},size:{default:"md"},type:{default:"button"},disabled:{type:Boolean,default:!1},icon:{default:void 0},to:{default:void 0}},setup(e){const t=e,n={primary:"bg-primary text-on-primary hover:opacity-90",outline:"border border-border-strong bg-surface text-text hover:bg-hover",ghost:"text-muted hover:bg-hover hover:text-text",danger:"border border-danger bg-surface text-danger hover:bg-danger-soft"},a=_(()=>["inline-flex shrink-0 items-center justify-center gap-2 rounded-control px-4 font-semibold whitespace-nowrap no-underline transition-colors duration-150 ease-out disabled:cursor-not-allowed disabled:opacity-60",t.size==="sm"?"h-[38px]":"h-button",n[t.variant]]);return(r,l)=>e.to!==void 0?(v(),U(u(ea),{key:0,to:e.to,class:ge(a.value)},{default:B(()=>[e.icon?(v(),U(zt(e.icon),{key:0,size:16,"aria-hidden":"true"})):re("",!0),_e(r.$slots,"default")]),_:3},8,["to","class"])):(v(),b("button",{key:1,type:e.type,disabled:e.disabled,class:ge(a.value)},[e.icon?(v(),U(zt(e.icon),{key:0,size:16,"aria-hidden":"true"})):re("",!0),_e(r.$slots,"default")],10,u5))}}),c5=le({__name:"BulkActionsMenu",props:{actions:{},disabled:{type:Boolean}},emits:["select"],setup(e,{expose:t,emit:n}){const a=n,r=P(null);function l(){const o=r.value?.$el;o instanceof HTMLElement&&o.focus()}return t({focus:l}),(o,i)=>(v(),U(u(Mb),{modal:!1},{default:B(()=>[F(u(Ib),{"as-child":"",disabled:e.disabled},{default:B(()=>[F(et,{ref_key:"trigger",ref:r,variant:"outline",size:"md","data-action":"bulk-actions",disabled:e.disabled},{default:B(()=>[we(T(u(w)("backend::lang.list.bulk_actions"))+" ",1),F(u(ar),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled"])]),_:1},8,["disabled"]),F(u(Rb),null,{default:B(()=>[F(u(Pb),{"data-bulk-menu":"",align:"end","side-offset":8,class:"z-50 flex w-[240px] max-w-[320px] flex-col rounded-[14px] border border-border bg-surface p-2 text-text shadow-menu"},{default:B(()=>[(v(!0),b(ye,null,qe(e.actions,s=>(v(),U(u(cd),{key:s.name,"data-bulk-action":s.name,class:"flex min-h-10 cursor-pointer items-center rounded-control px-3 py-2 outline-none transition-colors duration-150 ease-out data-[highlighted]:bg-hover",onSelect:c=>a("select",s.name)},{default:B(()=>[we(T(s.label),1)]),_:2},1032,["data-bulk-action","onSelect"]))),128))]),_:1})]),_:1})]),_:1}))}}),d5={class:"flex flex-wrap items-center justify-between gap-3 px-5 py-4"},f5={key:0,class:"relative block w-[320px] max-w-full"},p5={class:"sr-only"},v5=["value","placeholder"],m5={key:1},h5={class:"flex flex-wrap items-center justify-end gap-2.5"},y5={key:0,"data-selected-pill":"",class:"inline-flex h-8 items-center gap-1.5 rounded-pill bg-sel px-3 text-[13px] font-semibold"},g5=le({__name:"ListToolbar",props:{showSearch:{type:Boolean},search:{},searchPrompt:{},buttons:{},selectedCount:{},selectedLabel:{},deleteLabel:{},actions:{default:()=>[]},busyAction:{default:null},bulkActions:{default:()=>[]},bulkBusy:{type:Boolean,default:!1}},emits:["update:search","delete","action","bulk"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=_(()=>new Map(a.actions.map(s=>[s.name,s.label]))),o=P(null);function i(){o.value?.focus()}return t({focusBulk:i}),(s,c)=>(v(),b("div",d5,[e.showSearch?(v(),b("label",f5,[S("span",p5,T(u(w)("backend::lang.list.search")),1),F(u(Js),{size:18,class:"pointer-events-none absolute top-1/2 left-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"}),S("input",{type:"search","data-list-search":"",value:e.search,placeholder:e.searchPrompt,class:"h-button w-full rounded-control border border-transparent bg-subtle pr-3.5 pl-10",onInput:c[0]||(c[0]=d=>r("update:search",d.target.value))},null,40,v5)])):(v(),b("span",m5)),S("div",h5,[e.selectedCount>0?(v(),b("span",y5,[F(u(nr),{size:14,"aria-hidden":"true"}),we(T(e.selectedLabel),1)])):re("",!0),e.bulkActions.length>0?(v(),U(c5,{key:1,ref_key:"bulkMenu",ref:o,actions:e.bulkActions,disabled:e.selectedCount===0||e.bulkBusy,onSelect:c[1]||(c[1]=d=>r("bulk",d))},null,8,["actions","disabled"])):re("",!0),(v(!0),b(ye,null,qe(e.buttons,d=>(v(),b(ye,{key:d},[d==="delete"?(v(),U(et,{key:0,"data-action":"delete",variant:e.selectedCount>0?"danger":"outline",icon:u(Ur),disabled:e.selectedCount===0,onClick:c[2]||(c[2]=f=>r("delete"))},{default:B(()=>[we(T(e.deleteLabel),1)]),_:1},8,["variant","icon","disabled"])):l.value.has(d)?(v(),U(et,{key:1,variant:"outline",size:"md","data-action":d,disabled:e.busyAction===d,"aria-busy":e.busyAction===d?"true":void 0,onClick:f=>r("action",d)},{default:B(()=>[we(T(l.value.get(d)),1)]),_:2},1032,["data-action","disabled","aria-busy","onClick"])):re("",!0)],64))),128))])]))}}),b5={class:"flex flex-wrap items-center gap-x-6 gap-y-3 border-t border-border px-5 py-3.5 text-[13px] text-muted"},_5={"data-range":""},x5={key:0,class:"flex items-center gap-2"},k5=["value"],w5=["value"],$5=["aria-label"],C5=["disabled"],S5={key:0,"aria-hidden":"true",class:"px-1"},E5=["data-page","aria-current","onClick"],A5=["disabled"],pc="inline-flex h-pager min-w-pager items-center justify-center gap-1 rounded-pager border border-border px-2.5 text-[13px] text-text disabled:cursor-not-allowed disabled:opacity-60 hover:bg-hover",o1=le({__name:"Pagination",props:{meta:{},loading:{type:Boolean},perPageOptions:{},perPage:{}},emits:["page","perPage"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>n.meta?.total??0),l=_(()=>n.meta?.page??1),o=_(()=>Math.max(n.meta?.last_page??1,1)),i=_(()=>{const d=n.meta;if(!d||d.total===0)return Ir("backend::lang.list.results",0);const f=(d.page-1)*d.per_page+1,m=Math.min(d.page*d.per_page,d.total);return w("backend::lang.list.pagination_range",{from:f,to:m,total:d.total})}),s=_(()=>{const d=o.value,f=l.value,m=new Set([1,d,f-1,f,f+1].filter(x=>x>=1&&x<=d));f<=3&&[2,3].forEach(x=>x<=d&&m.add(x)),f>=d-2&&[d-1,d-2].forEach(x=>x>=1&&m.add(x));const p=[...m].sort((x,k)=>x-k),h=[];return p.forEach((x,k)=>{const g=p[k-1];g!==void 0&&x-g>1&&h.push(null),h.push(x)}),h});function c(d){const f=Number(d.target.value);Number.isFinite(f)&&f>0&&a("perPage",f)}return(d,f)=>(v(),b("footer",b5,[S("span",_5,T(e.loading?u(w)("backend::lang.list.loading"):i.value),1),e.perPageOptions.length>1?(v(),b("label",x5,[S("span",null,T(u(w)("backend::lang.list.records_per_page")),1),S("select",{"data-per-page":"",value:String(e.perPage),class:"h-pager rounded-pager border border-border-strong bg-surface px-2 text-text",onChange:c},[(v(!0),b(ye,null,qe(e.perPageOptions,m=>(v(),b("option",{key:m,value:String(m)},T(m),9,w5))),128))],40,k5)])):re("",!0),!e.loading&&r.value>0?(v(),b("nav",{key:1,"aria-label":u(w)("backend::lang.list.pagination"),class:"ml-auto flex items-center gap-1.5"},[S("button",{type:"button","data-page":"prev",class:ge(pc),disabled:l.value<=1,onClick:f[0]||(f[0]=m=>a("page",l.value-1))},[F(u(Gs),{size:14,"aria-hidden":"true"}),we(T(u(w)("backend::lang.list.prev_page")),1)],8,C5),(v(!0),b(ye,null,qe(s.value,(m,p)=>(v(),b(ye,{key:m??`gap-${p}`},[m===null?(v(),b("span",S5,"…")):(v(),b("button",{key:1,type:"button","data-page":m,"aria-current":m===l.value?"page":void 0,class:ge([pc,m===l.value?"border-transparent bg-sel font-bold":""]),onClick:h=>m!==l.value&&a("page",m)},T(m),11,E5))],64))),128)),S("button",{type:"button","data-page":"next",class:ge(pc),disabled:l.value>=o.value,onClick:f[1]||(f[1]=m=>a("page",l.value+1))},[we(T(u(w)("backend::lang.list.next_page")),1),F(u(ui),{size:14,"aria-hidden":"true"})],8,A5)],8,$5)):re("",!0)]))}}),T5={role:"alert","data-extension-failure":"",class:"flex min-h-input items-center rounded-control border-[1.5px] border-dashed border-border-strong bg-subtle px-3.5 py-2.5 text-[13px] text-muted"},D5={class:"flex min-w-0 items-start gap-2.5"},O5={class:"min-w-0 [overflow-wrap:anywhere]"},vu=le({__name:"ExtensionFailure",props:{text:{}},setup(e){return(t,n)=>(v(),b("div",T5,[S("span",D5,[F(u(gt),{size:16,class:"mt-0.5 shrink-0 text-danger","aria-hidden":"true"}),S("span",O5,T(e.text),1)])]))}}),M5=new Set(["div","span","p","strong","em","b","i","u","s","small","mark","code","pre","br","hr","ul","ol","li","dl","dt","dd","h2","h3","h4","h5","h6","table","thead","tbody","tfoot","tr","th","td","caption","section","header","footer","figure","figcaption","blockquote","q","abbr","time","data","meter","progress","sup","sub","a","img"]),P5=new Set(["script","style","template","iframe","object","embed","noscript","textarea","title","xmp","svg","math","form","input","button","select","link","meta","base"]),R5=32,I5=2e3,q5=new Set(["class","title","lang","dir","role"]),N5={a:new Set(["href"]),img:new Set(["src","alt","width","height"]),td:new Set(["colspan","rowspan","scope"]),th:new Set(["colspan","rowspan","scope"]),time:new Set(["datetime"]),data:new Set(["value"]),meter:new Set(["value","min","max","low","high","optimum"]),progress:new Set(["value","max"])},L5=/^(aria|data)-[a-z0-9_-]+$/;function B5(e,t){if(e==="")return!1;for(const n of e){const a=n.codePointAt(0)??0;if(a<=32||a===127)return!1}return e.startsWith("#")?t:e.startsWith("/")?e.length===1||e[1]!=="/"&&e[1]!=="\\":!1}function F5(e,t,n){return q5.has(t)||N5[e]?.has(t)===!0||L5.test(t)?e==="a"&&t==="href"||e==="img"&&t==="src"?B5(n,e==="a"):!0:!1}function V5(e,t){const n={};for(const[a,r]of Object.entries(t??{})){const l=a.toLowerCase();typeof r=="string"&&F5(e,l,r)&&(n[l]=r)}return n}function md(e,t,n){const a=[];for(const r of e??[]){if(n.left<=0)break;if(r.tag===void 0||r.tag===""){typeof r.text=="string"&&r.text!==""&&(n.left-=1,a.push(r.text));continue}const l=r.tag.toLowerCase();if(P5.has(l))continue;if(!M5.has(l)){a.push(...md(r.children,t,n));continue}if(t+1>R5)continue;n.left-=1;const o=md(r.children,t+1,n);a.push(Cn(l,V5(l,r.attrs),o.length>0?o:void 0))}return a}function z5(e){return md(e,0,{left:I5})}const j5={key:1,"data-partial-loading":"","aria-busy":"true"},U5=["data-partial","aria-busy"],Mf=le({__name:"PartialHost",props:{source:{},name:{},recordId:{default:null},variant:{},reloadKey:{default:0},hint:{type:Boolean,default:!1}},setup(e){const t=e,n=P(null),a=P(!1),r=P(!1);let l=0;const o=s=>z5(s.nodes);o.props=["nodes"];async function i(){const s=++l;r.value=!0;let c=null;try{c=(await Le.GET("/{vendor}/{plugin}/{controller}/partials/{name}",{params:{path:{...t.source,name:t.name},query:t.recordId!=null?{id:t.recordId}:void 0}})).data?.data.nodes??null}catch{c=null}s===l&&(r.value=!1,a.value=c===null,n.value=c)}return je(()=>t.reloadKey,()=>{i()}),i(),(s,c)=>a.value?(v(),U(vu,{key:0,"data-partial-failed":"",text:u(w)("backend::lang.extension.partial_failed")},null,8,["text"])):n.value===null?(v(),b("div",j5,[S("div",{"data-partial-skeleton":"",class:ge([e.hint?"h-[68px] w-full rounded-inner":e.variant==="header"?"h-[80px] w-full rounded-card":"h-[44px] w-full rounded-control","bg-skel"]),"aria-hidden":"true"},null,2)])):n.value.length>0?(v(),b("div",{key:2,class:"summer-partial","data-partial":e.variant,"aria-busy":r.value?"true":void 0},[F(o,{nodes:n.value},null,8,["nodes"])],8,U5)):re("",!0)}}),H5={class:"flex gap-2.5"},W5=["disabled","aria-busy"],mr=le({__name:"ConfirmDialog",props:{open:{type:Boolean},message:{},title:{default:void 0},confirmLabel:{default:void 0},cancelLabel:{default:void 0},danger:{type:Boolean,default:!1},busy:{type:Boolean,default:!1}},emits:["update:open","confirm","cancel"],setup(e,{emit:t}){const n=e,a=t;function r(o){!o&&n.busy||(a("update:open",o),o||a("cancel"))}function l(){n.busy||(a("confirm"),a("update:open",!1))}return(o,i)=>(v(),U(u(VA),{open:e.open,"onUpdate:open":r},{default:B(()=>[F(u(BA),null,{default:B(()=>[F(u(NA),{class:"pointer-events-auto fixed inset-0 z-[80] bg-overlay"}),F(u(OA),{"data-confirm-dialog":"",class:"pointer-events-auto fixed top-1/2 left-1/2 z-[90] flex w-[calc(100%-32px)] max-w-[440px] -translate-x-1/2 -translate-y-1/2 flex-col gap-4 rounded-modal bg-surface p-6 text-text shadow-pop"},{default:B(()=>[F(u(jA),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[we(T(e.title??u(w)("backend::lang.form.confirm")),1)]),_:1}),F(u(IA),{class:"text-muted [overflow-wrap:anywhere]"},{default:B(()=>[we(T(e.message),1)]),_:1}),S("div",H5,[F(u(PA),{"data-action":"cancel",disabled:e.busy,class:"inline-flex h-button flex-1 items-center justify-center rounded-control border border-border-strong bg-surface font-semibold hover:bg-hover disabled:cursor-not-allowed disabled:opacity-60"},{default:B(()=>[we(T(e.cancelLabel??u(w)("backend::lang.form.cancel")),1)]),_:1},8,["disabled"]),S("button",{type:"button","data-action":"confirm",disabled:e.busy,"aria-busy":e.busy?"true":void 0,class:ge([e.danger?"bg-danger text-white":"bg-primary text-on-primary","inline-flex h-button flex-1 items-center justify-center gap-2 rounded-control font-semibold hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60"]),onClick:vt(l,["prevent"])},[e.busy?(v(),U(u(Sl),{key:0,size:16,class:"animate-spin","aria-hidden":"true"})):re("",!0),we(" "+T(e.confirmLabel??u(w)("backend::lang.form.confirm")),1)],10,W5)])]),_:1})]),_:1})]),_:1},8,["open"]))}});function hr(){const e=P(null),t=P(!1);let n=null,a=null;function r(s){const c=n;n=null,a=null,e.value=null,c?.(s)}function l(s,c){return r(!1),e.value=s,a=c??null,new Promise(d=>{n=d})}async function o(){if(t.value)return;const s=a;if(s){t.value=!0;try{await s()}finally{t.value=!1}}r(!0)}function i(){t.value||r(!1)}return{request:e,busy:t,ask:l,confirm:o,cancel:i}}const K5={class:"flex flex-col gap-5"},G5={class:"flex flex-wrap items-end justify-between gap-4"},Y5={class:"flex flex-col"},J5={class:"text-[26px] font-bold tracking-[-0.02em]"},Z5={key:0,"data-record-count":"",class:"text-muted"},X5={key:0,class:"flex items-center gap-2.5"},Q5={class:"overflow-hidden rounded-card border border-border bg-surface shadow-card"},eP={key:2,"data-list-failed":"",class:"flex flex-wrap items-center justify-between gap-3 border-t border-border px-5 py-4"},tP={role:"alert",class:"text-danger"},nP={key:0,"data-empty-search":"",class:"flex flex-col items-center gap-3"},aP={class:"flex size-14 items-center justify-center rounded-full bg-subtle text-muted"},rP={class:"text-[17px] font-bold"},lP={class:"max-w-[420px] text-muted"},oP={key:1,"data-empty-list":"",class:"text-muted"},iP=300,sP=le({__name:"ListView",setup(e){const t=En(),n=jr(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=li(a),l=In(r)??"/",o=P(null),i=P([]),s=P(null),c=P(!0),d=P(!1),f=P(!1),m=_(()=>d.value||f.value),p=P([]),h=P(!1),x=P(0),k=hr(),g=_(()=>Lb(t.query)),C=P(g.value.search??""),E=_(()=>o.value?.messages),D=_(()=>o.value?.title?o.value.title:ii(a.vendor,a.plugin)?.sideMenu.find(Ce=>Ce.controller===r)?.label??r),O=_(()=>s.value?Je(E.value?.recordCount,s.value.total):""),L=_(()=>o.value?.toolbarButtons??[]),z=_(()=>L.value.filter(se=>se==="create")),W=_(()=>{const se=o.value?.reorder;if(!se)return null;const Ce=se.partition?.column,he=Ce?o.value?.filters.find(Fe=>Fe.column===Ce||Fe.name===Ce):void 0,Re=he?g.value.filter?.[he.name]:void 0;return{path:`${l}/reorder`,query:Re!==void 0&&Re!==""?{partition:String(Re)}:{}}}),$=_(()=>o.value?.toolbarActions??[]),q=_(()=>L.value.filter(se=>se==="delete"||$.value.some(Ce=>Ce.name===se))),J=P(null),R=_(()=>s.value?.row_states??{}),j=_(()=>({deleted:Je(E.value?.rowStateDeleted),negative:Je(E.value?.rowStateNegative),disabled:Je(E.value?.rowStateDisabled)})),Q=_(()=>(o.value?.bulkActions??[]).filter(se=>se.name!=="delete")),N=P(!1),ne=P(null),te=_(()=>{const se=o.value?.perPageOptions??[];return se.length>0?se:[o.value?.recordsPerPage||20]}),de=_(()=>g.value.per_page??s.value?.per_page??o.value?.recordsPerPage??20),pe=_(()=>g.value.sort?{column:g.value.sort,dir:g.value.dir==="desc"?"desc":"asc"}:null);function xe(se){const Ce=o.value?.recordUrl,he=se.id;return!Ce||typeof he!="number"&&typeof he!="string"?null:r1(Ce,r,he)}function me(se){Ii(r,se),n.replace({path:t.path,query:ws(se)})}const fe=_l({}),Te=_(()=>_l(g.value)!==fe);let H=0,ke=null;function ae(){me({})}async function Z(se=!1){const Ce=++H;c.value=!0,f.value=!1;let he=null;try{he=await V()}catch{he=null}if(Ce!==H)return;if(!he?.data&&se){Ii(r,{}),n.replace({path:t.path,query:{}});return}if(!he?.data&&he?.response?.status===404&&await ue(Ce))return;if(i.value=he?.data?.data??[],s.value=he?.data?.meta??null,f.value=!he?.data,c.value=!1,he?.response?.status===422){Ii(r,{});return}const Re=s.value?.last_page??0;Re>=1&&(s.value?.page??0)>Re&&me({...g.value,page:Re})}async function ue(se){try{const{data:Ce}=await Le.GET("/{vendor}/{plugin}/{controller}/singleton",{params:{path:a}});return se!==H?!0:Ce?(await n.replace(`${l}/${Ce.data.id}`),!0):!1}catch{return!1}}function V(){return Le.GET("/{vendor}/{plugin}/{controller}",{params:{path:a,query:g.value}})}async function K(){const se=await Le.GET("/{vendor}/{plugin}/{controller}/schema/list",{params:{path:a}});o.value=se.data?.data??null,d.value=!o.value,o.value&&Of(r,o.value.assets)}K(),je(()=>_l(g.value),se=>{if(se===fe){const he=CO(r),Re=_l(he);if(Re!==fe){ke=Re,n.replace({path:t.path,query:ws(he)});return}}const Ce=ke!==null&&ke===se;ke=null,Ii(r,g.value),p.value=[],C.value=g.value.search??"",Z(Ce)},{immediate:!0});let ee=null;function y(se){C.value=se,ee!==null&&clearTimeout(ee),ee=setTimeout(()=>{ee=null;const Ce=se.trim();me({...g.value,search:Ce===""?void 0:Ce,page:void 0})},iP)}At(()=>{ee!==null&&clearTimeout(ee)});function A(){C.value="",me({...g.value,search:void 0,page:void 0})}function M(se){const Ce=pe.value;Ce?.column!==se?me({...g.value,sort:se,dir:"asc",page:void 0}):Ce.dir==="asc"?me({...g.value,sort:se,dir:"desc",page:void 0}):me({...g.value,sort:void 0,dir:void 0,page:void 0})}function oe(se){me({...g.value,page:se})}function Y(se){me({...g.value,per_page:se,page:void 0})}function ce(se,Ce){const he={...g.value.filter??{}};Ce===null?delete he[se]:he[se]=Ce,me({...g.value,filter:he,page:void 0})}async function $e(){const se=p.value.map(Number).filter(he=>Number.isInteger(he)&&he>0);if(!(se.length===0||h.value||!await k.ask({message:Je(E.value?.deleteConfirm,se.length),confirmLabel:w("backend::lang.form.delete"),danger:!0}))){h.value=!0;try{const he=await Le.POST("/{vendor}/{plugin}/{controller}/bulk-delete",{params:{path:a},body:{ids:se}});if(he.data){Ne(Je(E.value?.deleted,he.data.data.deleted)),p.value=[],await Z(),x.value+=1;return}Ne(he.error?.error.message||w("backend::lang.list.delete_failed"),"danger")}catch{Ne(w("backend::lang.list.delete_failed"),"danger")}finally{h.value=!1}}}async function Ae(se){const Ce=Q.value.find(Ue=>Ue.name===se),he=p.value.map(Number).filter(Ue=>Number.isInteger(Ue)&&Ue>0);if(!Ce||he.length===0||N.value)return;const Re=Ce.label??se;let Fe=0,Ge=null,be="";const Se=await k.ask({message:Ce.confirm||Ir("backend::lang.list.bulk_confirm",he.length,{action:Re}),confirmLabel:Re,danger:!1},async()=>{N.value=!0;try{const Ue=await Le.POST("/{vendor}/{plugin}/{controller}/bulk/{action}",{params:{path:{...a,action:se}},body:{ids:he}});Fe=Ue.response.status,Ge=Ue.data?.data??null,be=Ue.error?.error.message??""}catch{Fe=0}finally{N.value=!1}});if(await new Promise(Ue=>setTimeout(Ue,0)),ne.value?.focusBulk(),!Se)return;const Be=Ge;if(Be){Ne(Be.message||Ir("backend::lang.list.bulk_done",Be.affected)),p.value=[],await Z(),x.value+=1;return}if(Fe===409){Ne(w("backend::lang.list.bulk_stale"),"danger"),p.value=[],await Z();return}if(Fe===403){Ne(be||w("backend::lang.list.action_forbidden"),"danger");return}Ne(be||w("backend::lang.extension.action_failed"),"danger")}async function De(se){if(J.value===null){J.value=se;try{const Ce=await Le.POST("/{vendor}/{plugin}/{controller}/toolbar/{action}",{params:{path:{...a,action:se}},body:{}});if(Ce.data){Ce.data.data.message&&Ne(Ce.data.data.message),await Z(),x.value+=1;return}Ne(Ce.error?.error.message||w("backend::lang.extension.action_failed"),"danger")}catch{Ne(w("backend::lang.extension.action_failed"),"danger")}finally{J.value=null}}}return(se,Ce)=>(v(),b("section",K5,[S("header",G5,[S("div",Y5,[S("h1",J5,T(D.value),1),O.value?(v(),b("p",Z5,T(O.value),1)):re("",!0)]),z.value.length>0||W.value?(v(),b("div",X5,[W.value?(v(),U(et,{key:0,"data-action":"reorder",variant:"outline",icon:u(Uy),to:W.value},{default:B(()=>[we(T(u(w)("backend::lang.messages.list.reorder")),1)]),_:1},8,["icon","to"])):re("",!0),(v(!0),b(ye,null,qe(z.value,he=>(v(),U(et,{key:he,"data-action":"create",variant:"primary",icon:u(ci),to:`${u(l)}/create`},{default:B(()=>[we(T(u(Je)(E.value?.create)),1)]),_:1},8,["icon","to"]))),128))])):re("",!0)]),o.value?.headerPartial?(v(),U(Mf,{key:0,variant:"header",source:a,name:o.value.headerPartial,"reload-key":x.value},null,8,["name","reload-key"])):re("",!0),S("div",Q5,[o.value?(v(),U(g5,{key:0,ref_key:"toolbar",ref:ne,"show-search":o.value.showSearch,search:C.value,"search-prompt":u(Je)(E.value?.searchPrompt),buttons:q.value,"selected-count":p.value.length,"selected-label":u(Je)(E.value?.selected,p.value.length),"delete-label":u(Je)(E.value?.deleteSelected,p.value.length),actions:$.value,"busy-action":J.value,"bulk-actions":Q.value,"bulk-busy":N.value,"onUpdate:search":y,onDelete:$e,onAction:De,onBulk:Ae},null,8,["show-search","search","search-prompt","buttons","selected-count","selected-label","delete-label","actions","busy-action","bulk-actions","bulk-busy"])):re("",!0),o.value&&o.value.filters.length>0?(v(),U(s5,{key:1,filters:o.value.filters,values:g.value.filter??{},source:a,onUpdate:ce},null,8,["filters","values"])):re("",!0),m.value&&!c.value?(v(),b("div",eP,[S("p",tP,T(u(w)("backend::lang.list.load_failed")),1),f.value&&Te.value?(v(),U(et,{key:0,"data-action":"reset-list",onClick:ae},{default:B(()=>[we(T(u(w)("backend::lang.list.reset_list")),1)]),_:1})):re("",!0)])):(v(),U(l1,{key:3,columns:o.value?.columns??[],rows:i.value,loading:c.value||!o.value,"row-link":xe,selectable:o.value?.showCheckboxes??!1,selected:p.value,sortable:o.value?.showSorting??!1,sort:pe.value,"row-states":R.value,"state-labels":j.value,"onUpdate:selected":Ce[0]||(Ce[0]=he=>p.value=he),onSort:M},{empty:B(()=>[g.value.search?(v(),b("div",nP,[S("span",aP,[F(u(og),{size:24,"aria-hidden":"true"})]),S("p",rP,T(u(Je)(E.value?.emptySearch,void 0,{term:g.value.search})),1),S("p",lP,T(u(Je)(E.value?.emptySearchHint,void 0,{term:g.value.search})),1),F(et,{"data-action":"clear-search",onClick:A},{default:B(()=>[we(T(u(w)("backend::lang.list.clear_search")),1)]),_:1})])):(v(),b("p",oP,T(u(Je)(E.value?.empty)||o.value?.noRecordsMessage||u(w)("backend::lang.list.no_records")),1))]),_:1},8,["columns","rows","loading","selectable","selected","sortable","sort","row-states","state-labels"])),F(o1,{meta:s.value,loading:c.value||!o.value,"per-page-options":te.value,"per-page":de.value,onPage:oe,onPerPage:Y},null,8,["meta","loading","per-page-options","per-page"])]),F(mr,{open:u(k).request.value!==null,message:u(k).request.value?.message??"","confirm-label":u(k).request.value?.confirmLabel,danger:u(k).request.value?.danger,busy:u(k).busy.value,onConfirm:u(k).confirm,onCancel:u(k).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])]))}}),sr="X-Session-Key",i1="X-Child-Session-Key",uP=32;function Xo(){const e=new Uint8Array(uP);globalThis.crypto.getRandomValues(e);let t="";for(const n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const cP="X-Upload-Id";async function Za(e){try{const t=await e();return{data:t.data?t.data.data:null,status:t.response.status,error:t.error?.error??null}}catch{return{data:null,status:0,error:null}}}async function $s(e){try{const t=await e();return t.response.ok&&t.data instanceof Blob?t.data:null}catch{return null}}function ya(e){return encodeURIComponent(String(e))}function s1(e){return`${Ks.api}/${ya(e.vendor)}/${ya(e.plugin)}/${ya(e.controller)}`}function dP(e){try{return e===""?null:JSON.parse(e)}catch{return null}}function Pf(e){if(!e)return"";for(const t of Object.values(e.details??{})){const n=Array.isArray(t)?t.find(a=>typeof a=="string"&&a!==""):t;if(typeof n=="string"&&n!=="")return n}return e.message??""}function fP(e,t){const n=t;if((e===200||e===201)&&n?.data)return{ok:!0,item:n.data};const a=Pf(n?.error);return e===413?{ok:!1,reason:"too_large",status:e,message:a}:e===422?{ok:!1,reason:"invalid",status:e,message:a}:e===0?{ok:!1,reason:"network",status:e,message:a}:{ok:!1,reason:"failed",status:e,message:a}}function u1(e,t,n,a,r){let l=null,o=!1;const i=()=>new Promise(c=>{const d=new XMLHttpRequest;l=d,d.open("POST",e),d.setRequestHeader("X-Requested-With",Ly),d.setRequestHeader("Accept","application/json");for(const[m,p]of Object.entries(n))d.setRequestHeader(m,p);r&&d.setRequestHeader(cP,r),d.upload.onprogress=m=>{m.lengthComputable&&a?.(m.loaded,m.total)},d.onload=()=>c({status:d.status,body:dP(d.responseText)}),d.onerror=()=>c("network"),d.ontimeout=()=>c("network"),d.onabort=()=>c("aborted");const f=new FormData;f.append("file_data",t,t.name),d.send(f)});return{promise:(async()=>{let c=await i();return typeof c=="object"&&c.status===401&&!o&&(await qd()&&(c=o?"aborted":await i()),typeof c=="object"&&c.status===401&&Uk()),c==="aborted"||o?{ok:!1,reason:"aborted",status:0,message:""}:c==="network"?{ok:!1,reason:"network",status:0,message:""}:fP(c.status,c.body)})(),abort(){o=!0,l?.abort()}}}function c1(e,t,n,a){const r={...e,id:t,field:n},l={[sr]:a},o=`${s1(e)}/${ya(t)}/files/${ya(n)}`;return{list:()=>Za(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}",{params:{path:r,header:l}})),upload:(i,s,c)=>u1(o,i,{...l},s,c),update:(i,s)=>Za(()=>Le.PUT("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:i},header:l},body:s})),remove:i=>Za(()=>Le.DELETE("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:i},header:l}})),reorder:i=>Za(()=>Le.POST("/{vendor}/{plugin}/{controller}/{id}/files/{field}/reorder",{params:{path:r,header:l},body:{ids:i}})),download:i=>$s(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/download",{params:{path:{...r,file:i},header:l},parseAs:"blob"})),thumb:i=>$s(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/thumb",{params:{path:{...r,file:i},header:l},parseAs:"blob"}))}}function pP(e,t,n,a,r,l,o){const i={...e,id:t,name:n,child:a,field:r},s={[sr]:l,[i1]:o},c=`${s1(e)}/${ya(t)}/relations/${ya(n)}/records/${ya(a)}/files/${ya(r)}`;return{list:()=>Za(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}",{params:{path:i,header:s}})),upload:(d,f,m)=>u1(c,d,{...s},f,m),update:(d,f)=>Za(()=>Le.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...i,file:d},header:s},body:f})),remove:d=>Za(()=>Le.DELETE("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...i,file:d},header:s}})),reorder:d=>Za(()=>Le.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/reorder",{params:{path:i,header:s},body:{ids:d}})),download:d=>$s(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/download",{params:{path:{...i,file:d},header:s},parseAs:"blob"})),thumb:d=>$s(()=>Le.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/thumb",{params:{path:{...i,file:d},header:s},parseAs:"blob"}))}}const vP=new Set(["readonly","placeholder","maxlength","minlength","min","max","step","autocomplete","spellcheck","pattern"]);function Kr(e){const t={};for(const[n,a]of Object.entries(e.attributes??{})){const r=n.toLowerCase();!vP.has(r)||a===null||a===!1||(t[r]=a)}return t}function qt(e){return["w-full rounded-control border bg-surface px-3.5 text-text transition-colors duration-150 ease-out",e?"border-danger":"border-border-strong"].join(" ")}function Rf(e){return typeof e=="string"?e!==""&&e!=="0"&&e.toLowerCase()!=="false":!!e}function d1(e,t){return typeof e=="number"?t?1:0:t}function f1(e,t){const n={};if(t===null||typeof t!="object"||Array.isArray(t))return n;const a=t;for(const r of e.permissionOptions??[]){const l=Number(a[r.code]);(l===1||e.mode==="radio"&&l===-1)&&(n[r.code]=l)}return n}const mP=new Set(["mltext","mltextarea","mlmarkdown"]);function hP(e){return e!==void 0&&mP.has(e)}function ur(e){return e?hP(e.type)||!!e.element&&e.translatable===!0:!1}const Qo="summer:ml-locale";function yP(e){typeof window>"u"||e===""||window.dispatchEvent(new CustomEvent(Qo,{detail:e}))}function Jn(e){const t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(const[n,a]of Object.entries(e))typeof a=="string"&&(t[n]=a);return t}const gP={class:"flex min-w-0 flex-col"},bP=["for"],_P={key:0,class:"text-danger","aria-hidden":"true"},xP=["id"],kP=["id","name","checked","aria-invalid","aria-describedby"],wP=le({__name:"CheckboxField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>Rf(n.modelValue));function l(o){a("update:modelValue",d1(n.modelValue,o.target.checked))}return(o,i)=>(v(),b("div",{class:ge([e.invalid?"border-danger":"border-border","flex items-center justify-between gap-4 rounded-inner border px-4 py-3.5"]),"data-toggle-card":""},[S("div",gP,[S("label",{for:e.controlId,class:"font-semibold"},[we(T(e.field.label||e.field.name),1),e.field.required?(v(),b("span",_P," *")):re("",!0)],8,bP),e.field.comment?(v(),b("p",{key:0,id:`${e.controlId}-comment`,class:"text-[13px] text-muted"},T(e.field.comment),9,xP)):re("",!0)]),S("input",{id:e.controlId,type:"checkbox",name:e.field.name,checked:r.value,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"size-5 shrink-0 rounded-[6px] accent-primary",onChange:l},null,40,kP)],2))}});function $P(e){return e==="date"||e==="time"?e:"datetime"}function rn(e,t=2){return String(e).padStart(t,"0")}const CP=/(Z|[+-]\d{2}:?\d{2})$/i;function SP(e,t,n=!1){if(typeof t!="string"||t.trim()==="")return null;const a=t.trim();try{if(e==="date")return Rg(a.slice(0,10));if(e==="time"){const l=/(\d{2}:\d{2}(:\d{2})?)/.exec(a.includes("T")?a.slice(a.indexOf("T")):a);return l?rE(l[1]):null}const r=CP.test(a)?a.replace(" ","T"):`${a.replace(" ","T")}Z`;return n?ta(Av(r,"UTC")):Av(r,Nn())}catch{return null}}function vc(e){return`${rn(e.year,4)}-${rn(e.month)}-${rn(e.day)}`}function mc(e){return`${rn(e.hour)}:${rn(e.minute)}:${rn(e.second)}`}function hm(e,t,n=!1){if(!t)return null;if(e==="time")return"hour"in t?mc(t):null;if(!("year"in t))return null;if(e==="date")return vc(t);if(n){const l=t instanceof $a?ta(t):t,o="hour"in l?mc(l):"00:00:00";return`${vc(l)}T${o}Z`}const a=t instanceof $a?t:Jd(t instanceof mt?ta(t):t,Nn()),r=au(a,"UTC");return`${vc(r)}T${mc(r)}Z`}const EP={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm",time:"HH:mm"},AP=/\[([^\]]*)\]|YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|HH|H|hh|h|mm|ss|A|a/g;function TP(e){return"year"in e?new mt(e.year,e.month,e.day):null}function hc(e,t,n,a){return new An(e,{...n,timeZone:"UTC"}).formatToParts(t.toDate("UTC")).find(l=>l.type===a)?.value??""}function DP(e,t,n,a){if(!e)return"";const r=n||EP[t],l=TP(e),o="hour"in e?e:null,i=/D/.test(r.replace(/\[[^\]]*\]/g,""));return r.replace(AP,(s,c)=>{if(c!==void 0)return c;switch(s){case"YYYY":return l?rn(l.year,4):"";case"YY":return l?rn(l.year%100):"";case"MMMM":case"MMM":{if(!l)return"";const d=s==="MMMM"?"long":"short";return i?hc(a,l,{day:"numeric",month:d},"month"):hc(a,l,{month:d},"month")}case"MM":return l?rn(l.month):"";case"M":return l?String(l.month):"";case"dddd":case"ddd":return l?hc(a,l,{weekday:s==="dddd"?"long":"short"},"weekday"):"";case"DD":return l?rn(l.day):"";case"D":return l?String(l.day):"";case"HH":return o?rn(o.hour):"";case"H":return o?String(o.hour):"";case"hh":return o?rn(o.hour%12||12):"";case"h":return o?String(o.hour%12||12):"";case"mm":return o?rn(o.minute):"";case"ss":return o?rn(o.second):"";case"A":return o?o.hour<12?"AM":"PM":"";case"a":return o?o.hour<12?"am":"pm":"";default:return s}})}const OP=new mt(2026,10,4);function MP(e,t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=6)return t;try{return(7-nu(OP,e))%7}catch{return 1}}function ym(e){if(e)try{return Rg(e.slice(0,10))}catch{return}}function PP(e,t=fi(Nn())){const n=ym(e.minDate),a=ym(e.maxDate);if(n||a)return{min:n,max:a};const r=e.yearRange??[];return r.length===1&&typeof r[0]=="number"?{min:new mt(t.year-r[0],1,1),max:new mt(t.year+r[0],12,31)}:r.length===2&&typeof r[0]=="number"&&typeof r[1]=="number"?{min:new mt(r[0],1,1),max:new mt(r[1],12,31)}:{}}function hd(e,t,n,a){if(!e||t==="time")return;if(t==="date")return e;const r=new lr(e.year,e.month,e.day,a?23:0,a?59:0,a?59:0);return n?r:au(Jd(r,"UTC"),Nn())}function RP(e,t){const n=fi(Nn());return hd(n,e==="time"?"datetime":e,t,!1)??n}const IP=["id","aria-describedby"],qP={key:0},NP={key:1,class:"text-muted","data-empty":""},LP=["aria-label"],BP={class:"flex size-8 shrink-0 items-center justify-center text-muted","aria-hidden":"true"},FP=["data-mode"],VP=["aria-label"],zP={key:0,"data-datepicker-time":"",class:"mt-3 flex items-center gap-2 border-t border-border pt-3"},po="flex size-8 shrink-0 items-center justify-center rounded-pager text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text",jP=le({__name:"DatepickerField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>$P(n.field.mode)),l=_(()=>r.value==="datetime"&&!!n.field.ignoreTimezone),o=_(()=>Rr.value||"pl"),i=_(()=>{const fe=n.field.attributes?.readonly;return!!n.field.readOnly||fe!=null&&fe!==!1}),s=_(()=>SP(r.value,n.modelValue,l.value)),c=_(()=>r.value==="time"?null:s.value),d=_(()=>r.value==="time"?s.value:null),f=_(()=>PP(n.field)),m=_(()=>hd(f.value.min,r.value,l.value,!1)),p=_(()=>hd(f.value.max,r.value,l.value,!0)),h=RP(r.value,l.value),x=_(()=>MP(o.value,n.field.firstDay)),k=_(()=>n.field.twelveHour?12:24),g=_(()=>r.value==="date"?"day":"minute"),C=_(()=>DP(s.value,r.value,n.field.displayFormat,o.value)),E=_(()=>!n.field.required&&s.value!==null&&!i.value),D=_(()=>{const fe=c.value;return fe?!!m.value&&fe.compare(m.value)<0||!!p.value&&fe.compare(p.value)>0:!1}),O=new Set(["day","month","year","hour","minute","second"]),L=P(null),z=P(!1);function W(){const fe=L.value;if(!fe){z.value=!1;return}const Te=Array.from(fe.querySelectorAll("[data-reka-date-field-segment], [data-reka-time-field-segment]")).filter(ke=>O.has(ke.dataset.rekaDateFieldSegment??ke.dataset.rekaTimeFieldSegment??"")),H=Te.filter(ke=>!ke.hasAttribute("data-placeholder")).length;z.value=H>0&&H!!n.invalid||D.value||z.value),J=_(()=>hm(r.value,s.value,l.value));function R(fe){const Te=hm(r.value,fe??null,l.value);$(),!(Te===J.value&&(Te!==null||n.modelValue===null))&&a("update:modelValue",Te)}function j(fe){if(!fe||r.value!=="datetime"){R(fe);return}const Te=c.value,H=ne.value,ke=!Te||Te.year!==fe.year||Te.month!==fe.month||Te.day!==fe.day,ae=!("hour"in fe)||fe.hour!==H.hour||fe.minute!==H.minute;ke&&ae&&(fe=te(fe,H)),N.value=fe,R(fe)}function Q(){a("update:modelValue",null),$()}const N=P(null);je(c,fe=>{N.value=fe},{immediate:!0});const ne=_(()=>{const fe=N.value??c.value;return fe&&"hour"in fe?new Gn(fe.hour,fe.minute):new Gn(0,0)});function te(fe,Te){return"hour"in fe?fe.set({hour:Te.hour,minute:Te.minute,second:0,millisecond:0}):new lr(fe.year,fe.month,fe.day,Te.hour,Te.minute)}function de(fe){if(!fe)return;const Te=fe instanceof Gn?fe:new Gn(fe.hour,fe.minute),H=N.value??c.value??h,ke=te(H,Te);N.value=ke,R(ke)}function pe(fe){return fe.charAt(0).toLocaleUpperCase(o.value)+fe.slice(1)}const xe=_(()=>[qt(q.value),"h-input flex min-w-0 items-center gap-1 pl-3.5 pr-1.5","focus-within:border-primary focus-within:shadow-[0_0_0_3px_var(--c-ring)]","has-[[data-invalid]]:border-danger"]);function me(fe){return fe==="literal"?"text-muted":fe==="timeZoneName"?"ml-2 min-w-0 truncate text-[13px] text-muted":"rounded-[4px] px-0.5 tabular-nums outline-none focus:bg-sel focus:text-text focus-visible:outline-none data-[placeholder]:text-placeholder focus:data-[placeholder]:text-text"}return(fe,Te)=>i.value?(v(),b("p",{key:0,id:e.controlId,"data-datepicker-readonly":"","aria-describedby":e.describedBy||void 0,class:"flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 tabular-nums"},[C.value!==""?(v(),b("span",qP,T(C.value),1)):(v(),b("span",NP,"—"))],8,IP)):r.value==="time"?(v(),b("div",{key:1,ref_key:"container",ref:L,"data-datepicker":"","data-mode":"time",class:ge(xe.value),onKeyup:$,onFocusout:$},[F(u(dm),{id:e.controlId,"model-value":d.value,locale:o.value,"hour-cycle":k.value,granularity:"minute",name:e.field.name,required:e.field.required||void 0,"aria-invalid":q.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center","onUpdate:modelValue":R},{default:B(({segments:H})=>[(v(!0),b(ye,null,qe(H,ke=>(v(),U(u(fm),{key:ke.part,part:ke.part,class:ge(me(ke.part))},{default:B(()=>[we(T(ke.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["id","model-value","locale","hour-cycle","name","required","aria-invalid","aria-describedby"]),E.value?(v(),b("button",{key:0,type:"button","data-action":"clear","aria-label":u(w)("backend::lang.datepicker.clear"),class:ge(po),onClick:Q},[F(u(hn),{size:16,"aria-hidden":"true"})],8,LP)):re("",!0),S("span",BP,[F(u(Wc),{size:16})])],34)):(v(),U(u(eD),{key:2,id:e.controlId,"model-value":c.value,"default-placeholder":u(h),locale:o.value,granularity:g.value,"hour-cycle":k.value,"hide-time-zone":r.value!=="datetime"||l.value,"min-value":m.value,"max-value":p.value,"week-starts-on":x.value,name:e.field.name,required:e.field.required||void 0,"close-on-select":r.value==="date","prevent-deselect":"","onUpdate:modelValue":j},{default:B(()=>[S("div",{ref_key:"container",ref:L,"data-datepicker":"","data-mode":r.value,class:ge(xe.value),onKeyup:$,onFocusout:$},[F(u(yD),{"aria-invalid":q.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center overflow-hidden"},{default:B(({segments:H})=>[(v(!0),b(ye,null,qe(H,ke=>(v(),U(u(MD),{key:ke.part,part:ke.part,class:ge(me(ke.part))},{default:B(()=>[we(T(ke.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["aria-invalid","aria-describedby"]),E.value?(v(),b("button",{key:0,type:"button","data-action":"clear","aria-label":u(w)("backend::lang.datepicker.clear"),class:ge(po),onClick:Q},[F(u(hn),{size:16,"aria-hidden":"true"})],8,VP)):re("",!0),F(u(FD),{"data-action":"open-calendar","aria-label":u(w)("backend::lang.datepicker.open_calendar"),class:ge(po)},{default:B(()=>[F(u(Ky),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])],42,FP),F(u(mD),{"data-datepicker-calendar":"","side-offset":4,align:"end",class:"z-50 w-[284px] rounded-inner border border-border bg-surface p-4 text-text shadow-menu"},{default:B(()=>[F(u(nD),null,{default:B(({weekDays:H,grid:ke})=>[F(u(AD),{class:"flex h-9 items-center justify-between"},{default:B(()=>[F(u(qD),{"aria-label":u(w)("backend::lang.datepicker.prev_month"),class:ge(po)},{default:B(()=>[F(u(Gs),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"]),F(u(DD),{class:"font-semibold"},{default:B(({headingValue:ae})=>[we(T(pe(ae)),1)]),_:1}),F(u(RD),{"aria-label":u(w)("backend::lang.datepicker.next_month"),class:ge(po)},{default:B(()=>[F(u(ui),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])]),_:1}),(v(!0),b(ye,null,qe(ke,ae=>(v(),U(u(bD),{key:ae.value.toString(),class:"mt-2 w-full border-collapse select-none"},{default:B(()=>[F(u(wD),null,{default:B(()=>[F(u(cm),{class:"flex"},{default:B(()=>[(v(!0),b(ye,null,qe(H,Z=>(v(),U(u(SD),{key:Z,class:"flex h-9 w-9 items-center justify-center text-[13px] font-normal text-muted"},{default:B(()=>[we(T(Z),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024),F(u(xD),null,{default:B(()=>[(v(!0),b(ye,null,qe(ae.rows,(Z,ue)=>(v(),U(u(cm),{key:`week-${ue}`,class:"flex"},{default:B(()=>[(v(!0),b(ye,null,qe(Z,V=>(v(),U(u(rD),{key:V.toString(),date:V,class:"p-0"},{default:B(()=>[F(u(oD),{day:V,month:ae.value,class:"flex size-9 items-center justify-center rounded-pager tabular-nums text-text transition-colors duration-150 ease-out hover:bg-hover data-[outside-view]:text-placeholder data-[today]:font-semibold data-[today]:shadow-[inset_0_0_0_1px_var(--c-border-strong)] data-[selected]:bg-primary data-[selected]:font-semibold data-[selected]:text-on-primary data-[disabled]:cursor-not-allowed data-[disabled]:text-placeholder data-[disabled]:opacity-40 data-[disabled]:hover:bg-transparent data-[unavailable]:cursor-not-allowed data-[unavailable]:opacity-40"},null,8,["day","month"])]),_:2},1032,["date"]))),128))]),_:2},1024))),128))]),_:2},1024)]),_:2},1024))),128))]),_:1}),r.value==="datetime"?(v(),b("div",zP,[F(u(Wc),{size:16,class:"shrink-0 text-muted","aria-hidden":"true"}),F(u(dm),{"model-value":ne.value,locale:o.value,"hour-cycle":k.value,granularity:"minute","hide-time-zone":"",class:"flex min-w-0 items-center","onUpdate:modelValue":de},{default:B(({segments:H})=>[(v(!0),b(ye,null,qe(H,ke=>(v(),U(u(fm),{key:ke.part,part:ke.part,class:ge(me(ke.part))},{default:B(()=>[we(T(ke.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["model-value","locale","hour-cycle"])])):re("",!0)]),_:1})]),_:1},8,["id","model-value","default-placeholder","locale","granularity","hour-cycle","hide-time-zone","min-value","max-value","week-starts-on","name","required","close-on-select"]))}}),If=Symbol("summer.form.values"),qf=Symbol("summer.form.patch"),Nf=Symbol("summer.form.locale"),Cs=Symbol("summer.form.enabledLocales"),p1=Symbol("summer.form.assets");function Lf(){const e=P(0);return{activeUploads:e,beginUpload(){e.value++;let t=!1;return()=>{t||(t=!0,e.value>0&&e.value--)}}}}const Zl=Symbol("summer.form.session"),gm="summer-action",UP="summer-result",bm="summer-change",_m="summer-upload",HP="summer-upload-result",v1=5e3,Bf=Symbol("summer.form.feedback"),mu=Symbol("summer.form.fieldScope"),m1=Symbol("summer.form.dependentCache"),WP=["data-dependent"],KP={class:"relative"},GP=["id","name","value","disabled","required","aria-required","aria-invalid","aria-busy","aria-describedby"],YP={key:0,value:"state",class:"text-muted"},JP=["value"],ZP=["id"],XP={key:1,class:"flex flex-wrap items-center gap-2"},QP=["id"],Ni="empty",Li="placeholder",e6=le({__name:"DropdownField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=" ".repeat(4),l=ct(mu,null),o=ct(Bf,null),i=ct(m1,null)??new Map,s=_(()=>n.field.dependsOn??""),c=_(()=>s.value!==""),d=P("waiting"),f=P([]),m=_(()=>{const ne=l?.values.value[s.value];return ne==null||ne===""||typeof ne=="object"?null:String(ne)}),p=_(()=>l?.fields.value.find(ne=>ne.name===s.value)),h=_(()=>p.value?.label||s.value),x=_(()=>(p.value?.options??[]).find(te=>g(te.value,m.value))?.label??m.value??""),k=_(()=>c.value?f.value:n.field.options??[]);function g(ne,te){return ne==null||te===null||te===void 0?ne===te||ne==null&&te==null:String(ne)===String(te)}function C(){return n.modelValue!==null&&n.modelValue!==void 0&&n.modelValue!==""}function E(){C()&&(a("update:modelValue",null),o?.announce(w("backend::lang.form.dependent_cleared",{field:n.field.label||n.field.name})))}function D(ne,te){if(!ne.applies){f.value=[],d.value="unused",te&&E();return}f.value=ne.options.map(de=>({value:de.value,label:r.repeat(Math.max(0,de.depth))+de.label})),d.value=f.value.length>0?"ready":"empty",te&&C()&&!f.value.some(de=>g(de.value,n.modelValue))&&E()}let O=0,L=!1;async function z(ne){const te=++O,de=m.value;if(de===null){f.value=[],d.value="waiting",ne&&E();return}const pe=l?.path(n.field.name)??n.field.name,xe=`${pe}\0${de}`,me=i.get(xe);if(me){D(me,ne);return}if(!n.source){L=ne,d.value="failed";return}d.value="loading";try{const{data:fe}=await Le.GET("/{vendor}/{plugin}/{controller}/fields/{field}/dependent-options",{params:{path:{...n.source,field:pe},query:{[`values[${s.value}]`]:de}}});if(te!==O)return;if(!fe){L=ne,d.value="failed";return}i.set(xe,fe.data),D(fe.data,ne)}catch{te===O&&(L=ne,d.value="failed")}}function W(){z(L)}je(m,(ne,te)=>{c.value&&ne!==te&&z(!0)}),wt(()=>{c.value&&z(!1)}),At(()=>{O++});const $=_(()=>{const ne=k.value.findIndex(te=>g(te.value,n.modelValue));return ne>=0?String(ne):n.field.emptyOption!==void 0&&!C()?Ni:Li}),q=_(()=>{switch(d.value){case"waiting":return w("backend::lang.form.dependent_waiting",{field:h.value});case"loading":return w("backend::lang.form.loading_options");case"unused":return w("backend::lang.form.dependent_not_used");case"empty":return w("backend::lang.form.dependent_empty",{type:x.value});case"failed":return w("backend::lang.form.dependent_failed");default:return""}}),J=_(()=>c.value&&d.value!=="ready"),R=_(()=>J.value||$.value===Ni||$.value===Li),j=_(()=>`${n.controlId}-dependent`),Q=_(()=>[n.describedBy??"",c.value&&(d.value==="empty"||d.value==="failed")?j.value:""].filter(Boolean).join(" "));function N(ne){const te=ne.target.value;if(te===Ni){a("update:modelValue",null);return}const de=k.value[Number(te)];de&&a("update:modelValue",de.value)}return(ne,te)=>(v(),b("div",{class:"flex flex-col gap-1.5","data-dependent":c.value?d.value:void 0},[S("div",KP,[S("select",{id:e.controlId,name:e.field.name,value:J.value?"state":$.value,disabled:J.value||void 0,required:e.field.required||void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-busy":c.value&&d.value==="loading"?"true":void 0,"aria-describedby":Q.value||void 0,class:ge([[u(qt)(e.invalid),R.value?"text-muted":""],"h-input appearance-none pr-10 disabled:cursor-not-allowed"]),onChange:N},[J.value?(v(),b("option",YP,T(q.value),1)):(v(),b(ye,{key:1},[e.field.emptyOption!==void 0?(v(),b("option",{key:0,value:Ni,class:"text-muted"},T(e.field.emptyOption),1)):re("",!0),$.value===Li?(v(),b("option",{key:1,value:Li,disabled:""},T(u(w)("backend::lang.form.select_placeholder")),1)):re("",!0),(v(!0),b(ye,null,qe(k.value,(de,pe)=>(v(),b("option",{key:pe,value:String(pe),class:"text-text"},T(de.label),9,JP))),128))],64))],42,GP),F(u(ar),{size:16,class:"pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"})]),c.value&&d.value==="empty"?(v(),b("p",{key:0,id:j.value,"data-dependent-hint":"",class:"text-[13px] text-muted"},T(q.value),9,ZP)):c.value&&d.value==="failed"?(v(),b("div",XP,[S("p",{id:j.value,role:"alert",class:"flex items-center gap-1.5 text-[13px] text-danger"},[F(u(gt),{size:14,class:"shrink-0","aria-hidden":"true"}),S("span",null,T(u(w)("backend::lang.form.dependent_failed")),1)],8,QP),F(et,{variant:"ghost",size:"sm",icon:u(Wi),"data-action":"dependent-retry",onClick:W},{default:B(()=>[we(T(u(w)("backend::lang.form.dependent_retry")),1)]),_:1},8,["icon"])])):re("",!0)],8,WP))}}),t6={class:"flex items-start gap-3"},n6={class:"flex min-w-0 flex-1 flex-col gap-1"},a6={key:0,class:"flex items-center gap-4"},r6=["src"],l6={key:1,class:"flex size-16 shrink-0 items-center justify-center rounded-inner bg-subtle","aria-hidden":"true"},o6=["title"],i6={class:"flex flex-col gap-1.5"},s6=["for"],u6=["id","disabled","aria-invalid","aria-describedby"],c6=["id"],d6={class:"flex flex-col gap-1.5"},f6=["for"],p6=["id","disabled","aria-invalid","aria-describedby"],v6=["id"],m6={class:"flex gap-2.5"},h6=["disabled"],y6=["disabled"],g6=le({__name:"FileCaptionModal",props:{open:{type:Boolean},file:{},routes:{},preview:{},idPrefix:{}},emits:["update:open","saved","closed"],setup(e,{emit:t}){const n=e,a=t,r=P(""),l=P(""),o=P({}),i=P(!1),s=hr();function c(k){const g={};for(const[C,E]of Object.entries(k??{})){const D=(Array.isArray(E)?E:[E]).filter(O=>typeof O=="string"&&O!=="");D.length>0&&(g[C]=D)}return g}const d=_(()=>`${n.idPrefix}-caption-title`),f=_(()=>`${n.idPrefix}-caption-description`),m=_(()=>!!n.file&&(r.value!==n.file.title||l.value!==n.file.description));je(()=>n.open,k=>{k&&n.file&&(r.value=n.file.title??"",l.value=n.file.description??"",o.value={},i.value=!1)},{immediate:!0});async function p(k){if(k){a("update:open",!0);return}i.value||m.value&&!await s.ask({message:w("backend::lang.form.unsaved_confirm"),confirmLabel:w("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function h(){if(!(i.value||!n.file||!n.routes)){i.value=!0;try{const k=await n.routes.update(n.file.id,{title:r.value,description:l.value});if(k.data){o.value={},a("saved",k.data),a("update:open",!1),Ne(w("backend::lang.fileupload.details_saved"));return}if(k.status===422){o.value=c(k.error?.details),Object.keys(o.value).length===0&&(o.value={title:[Pf(k.error)||w("backend::lang.form.error_generic")]});return}Ne(k.error?.message||w("backend::lang.form.error_generic"),"danger")}finally{i.value=!1}}}function x(k){k.preventDefault(),a("closed")}return(k,g)=>(v(),b(ye,null,[F(u(Ul),{open:e.open,"onUpdate:open":p},{default:B(()=>[F(u(vi),null,{default:B(()=>[F(u(Wl),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),F(u(Hl),{"data-caption-modal":"","data-dialog-content":"","aria-modal":"true",class:"fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100vh-32px)] w-[calc(100%-32px)] max-w-[560px] -translate-x-1/2 -translate-y-1/2 flex-col gap-4 overflow-y-auto rounded-modal bg-surface p-6 text-text shadow-pop",onCloseAutoFocus:x},{default:B(()=>[S("div",t6,[S("div",n6,[F(u(Kl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.attachment")),1)]),_:1}),F(u(Fr),{class:"text-muted"},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.help")),1)]),_:1})]),F(u(Vl),{"data-action":"close","aria-label":u(w)("backend::lang.form.close"),disabled:i.value,class:"flex size-[34px] shrink-0 items-center justify-center rounded-tab bg-subtle text-muted hover:bg-hover hover:text-text"},{default:B(()=>[F(u(hn),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),e.file?(v(),b("div",a6,[e.preview?(v(),b("img",{key:0,src:e.preview,alt:"",class:"size-16 shrink-0 rounded-inner object-cover"},null,8,r6)):(v(),b("span",l6,[F(u(bl),{size:16,class:"text-muted"})])),S("span",{class:"min-w-0 truncate text-[13px] text-muted",title:e.file.file_name},T(e.file.file_name),9,o6)])):re("",!0),S("form",{class:"flex flex-col gap-4",novalidate:"",onSubmit:vt(h,["prevent"])},[S("div",i6,[S("label",{for:d.value,class:"font-semibold"},T(u(w)("backend::lang.fileupload.title_label")),9,s6),Qn(S("input",{id:d.value,"onUpdate:modelValue":g[0]||(g[0]=C=>r.value=C),type:"text","data-caption-title":"",disabled:i.value,"aria-invalid":o.value.title?"true":void 0,"aria-describedby":o.value.title?`${d.value}-error`:void 0,class:ge([u(qt)(!!o.value.title),"h-input"])},null,10,u6),[[ql,r.value]]),o.value.title?(v(),b("p",{key:0,id:`${d.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[F(u(gt),{size:14,class:"shrink-0","aria-hidden":"true"}),S("span",null,T(o.value.title.join(" ")),1)],8,c6)):re("",!0)]),S("div",d6,[S("label",{for:f.value,class:"font-semibold"},T(u(w)("backend::lang.fileupload.description_label")),9,f6),Qn(S("textarea",{id:f.value,"onUpdate:modelValue":g[1]||(g[1]=C=>l.value=C),rows:"3","data-caption-description":"",disabled:i.value,"aria-invalid":o.value.description?"true":void 0,"aria-describedby":o.value.description?`${f.value}-error`:void 0,class:ge([u(qt)(!!o.value.description),"min-h-input resize-y py-2.5"])},null,10,p6),[[ql,l.value]]),o.value.description?(v(),b("p",{key:0,id:`${f.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[F(u(gt),{size:14,class:"shrink-0","aria-hidden":"true"}),S("span",null,T(o.value.description.join(" ")),1)],8,v6)):re("",!0)]),S("div",m6,[S("button",{type:"button","data-action":"cancel",disabled:i.value,class:"inline-flex h-button flex-1 items-center justify-center rounded-control border border-border-strong bg-surface font-semibold hover:bg-hover disabled:cursor-not-allowed disabled:opacity-60",onClick:g[2]||(g[2]=C=>p(!1))},T(u(w)("backend::lang.form.cancel")),9,h6),S("button",{type:"submit","data-action":"save-caption",disabled:i.value,class:"inline-flex h-button flex-1 items-center justify-center rounded-control bg-primary font-semibold text-on-primary hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60"},T(i.value?u(w)("backend::lang.form.saving"):u(w)("backend::lang.fileupload.details_submit")),9,y6)])],32)]),_:1})]),_:1})]),_:1},8,["open"]),F(mr,{open:u(s).request.value!==null,message:u(s).request.value?.message??"","confirm-label":u(s).request.value?.confirmLabel,danger:u(s).request.value?.danger,onConfirm:u(s).confirm,onCancel:u(s).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),b6=["id","data-field-name","aria-labelledby","aria-describedby","aria-busy"],_6={key:0,"data-fileupload-loading":"",class:"h-[112px] rounded-control bg-skel","aria-hidden":"true"},x6={key:1,role:"alert","data-fileupload-failed":"",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},k6={key:0,"data-fileupload-empty":"",class:"flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 text-muted"},w6={key:1,"data-fileupload-grid":"",class:"grid grid-cols-[repeat(auto-fill,minmax(160px,1fr))] gap-4"},$6=["data-file-item","data-state","onDragover","onDrop"],C6={class:"relative flex aspect-square items-center justify-center bg-subtle"},S6=["href","aria-label"],E6=["src","alt","onError"],A6=["aria-label","onClick"],T6=["src","alt"],D6={key:2,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},O6=["data-handle","aria-label","onKeydown","onDragstart"],M6={key:5,class:"absolute top-2 right-2 flex gap-1"},P6=["data-caption","aria-label","onClick"],R6=["aria-label","onClick"],I6=["aria-label","onClick"],q6={class:"flex flex-col gap-1 p-2"},N6=["title"],L6={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},B6={key:0},F6={key:1},V6={key:2},z6={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},j6={key:1,"data-file-error":"",class:"text-[13px] text-danger"},U6={class:"sr-only"},H6={key:2,"data-fileupload-single":"",class:"flex flex-col gap-2"},W6=["data-file-item","data-state"],K6=["src","alt","onError"],G6={key:3,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},Y6={class:"flex min-w-0 flex-1 flex-col gap-1"},J6=["title"],Z6={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},X6={key:0},Q6={key:1},e8={key:2},t8={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},n8={key:1,"data-file-error":"",class:"text-[13px] text-danger"},a8={class:"sr-only"},r8={key:2,class:"mt-1 flex flex-wrap gap-2"},l8={key:3,"data-fileupload-rows":"",class:"flex flex-col gap-2"},o8=["data-file-item","data-state","onDragover","onDrop"],i8={class:"flex items-center gap-3"},s8=["data-handle","aria-label","onKeydown","onDragstart"],u8={class:"flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-pager bg-subtle"},c8=["src","onError"],d8={class:"flex min-w-0 flex-1 flex-col leading-tight"},f8=["title"],p8=["title"],v8=["title"],m8={class:"flex shrink-0 items-center gap-2 text-[13px] text-muted tabular-nums"},h8={key:0},y8={key:1},g8={key:2},b8={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},_8={class:"flex shrink-0 items-center gap-1"},x8=["href","aria-label"],k8=["aria-label","onClick"],w8=["data-caption","aria-label","onClick"],$8=["aria-label","onClick"],C8=["aria-label","onClick"],S8={key:1,"data-file-error":"",class:"text-[13px] text-danger"},E8={class:"sr-only"},A8=["aria-describedby"],T8={class:"flex size-10 items-center justify-center rounded-full bg-surface","aria-hidden":"true"},D8={class:"text-text"},O8={key:0,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},M8={key:5,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},P8={key:6,role:"alert","data-fileupload-too-many":"",class:"flex items-center gap-1.5 text-[13px] text-danger"},R8=["accept","multiple"],I8={class:"sr-only","aria-live":"polite","data-fileupload-live":""},q8=1<<20,N8=400,yc="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:text-text",L8="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:bg-danger-soft hover:text-danger",ul="inline-flex size-8 shrink-0 items-center justify-center rounded-pager text-muted hover:bg-hover hover:text-text",B8=le({__name:"FileuploadField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=ct(Zl,null),a=["jpg","jpeg","png","gif","webp"],r=["image/jpeg","image/png","image/gif","image/webp"];let l=1;const o=P([]),i=P("loading"),s=P(!1),c=P(0),d=P(""),f=P(null),m=P(null),p=P(null),h=P(null),x=P(null),k=P(!1),g=P({}),C=P(new Set),E=new Set,D=[],O=n?n.routes(t.field.name):null;let L=null,z=null,W=!1,$=null,q=0,J=!1;const R=_(()=>{const G=t.field.attributes?.readonly;return!!t.field.readOnly||G!=null&&G!==!1}),j=_(()=>t.field.multiple===!0),Q=_(()=>t.field.mode==="image"),N=_(()=>j.value?t.field.maxFiles:1),ne=_(()=>(n?.recordId??0)!==0),te=_(()=>o.value.filter(G=>G.state!=="failed")),de=_(()=>{if(j.value)return o.value;const G=te.value,Oe=G[G.length-1];return o.value.filter(X=>X.state==="failed"||X===Oe)}),pe=_(()=>de.value.filter(G=>G.state!=="failed").length),xe=_(()=>R.value||i.value!=="ready"?!1:j.value?N.value===void 0||N.value===null||te.value.lengthj.value&&!R.value&&typeof N.value=="number"&&te.value.length>=N.value),fe=_(()=>t.field.fileTypes?.length?t.field.fileTypes.map(G=>G.toLowerCase()):Q.value&&!t.field.mimeTypes?.length?a:null),Te=_(()=>(t.field.fileTypes?.length?t.field.fileTypes:t.field.mimeTypes??[]).join(", ")),H=_(()=>{const G=[];for(const Oe of t.field.fileTypes??[])G.push(`.${Oe.toLowerCase()}`);for(const Oe of t.field.mimeTypes??[])G.push(Oe.includes("/")?Oe:`.${Oe.toLowerCase()}`);return G.length===0&&Q.value&&G.push(...r),G.length>0?G.join(","):void 0}),ke=_(()=>t.field.prompt||w(j.value?"backend::lang.fileupload.default_prompt_many":"backend::lang.fileupload.default_prompt"));function ae(G,Oe){return new Intl.NumberFormat(Rr.value,{minimumFractionDigits:Oe,maximumFractionDigits:Oe}).format(G)}function Z(G){const Oe=["B","kB","MB","GB"];let X=G,Ie=0;for(;X>=1e3&&Ie{const G=t.field.maxFilesize;return typeof G=="number"?`${new Intl.NumberFormat(Rr.value).format(G)} MB`:""}),V=_(()=>{const G=[];return Te.value!==""&&G.push(w("backend::lang.fileupload.limits_types",{types:Te.value})),ue.value!==""&&G.push(w("backend::lang.fileupload.limits_size",{size:ue.value})),j.value&&typeof N.value=="number"&&G.push(w("backend::lang.fileupload.limits_count",{current:te.value.length,max:N.value})),G.join(" · ")});function K(G){const Oe=G.lastIndexOf(".");return Oe<0?"":G.slice(Oe+1).toLowerCase()}function ee(G){const Oe=t.field.mimeTypes??[];if(Oe.length===0||G.type==="")return!0;const X=G.type.toLowerCase(),Ie=K(G.name);return Oe.some(Xe=>{const Bt=Xe.toLowerCase();return Bt.includes("/")?Bt.endsWith("/*")?X.startsWith(Bt.slice(0,-1)):X===Bt:Bt===Ie})}function y(G){const Oe=fe.value;if(Oe&&!Oe.includes(K(G.name)))return w("backend::lang.fileupload.wrong_type",{name:G.name,types:Oe.join(", ")});if(!ee(G))return w("backend::lang.fileupload.wrong_type",{name:G.name,types:Te.value});const X=t.field.maxFilesize;return typeof X=="number"&&G.size>Math.ceil(X*q8)?w("backend::lang.fileupload.too_large",{name:G.name,size:ue.value}):""}function A(G){return On({uid:l++,name:G.file_name,size:G.file_size,state:"done",progress:100,error:"",retryable:!1,file:G,source:null,handle:null,uploadId:""})}function M(){return globalThis.crypto?.randomUUID?.()??`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function oe(G,Oe){return On({uid:l++,name:G.name,size:G.size,state:Oe===""?"queued":"failed",progress:0,error:Oe,retryable:!1,file:null,source:Xi(G),handle:null,uploadId:M()})}function Y(G){return o.value.find(Oe=>Oe.uid===G)}async function ce(G){if(!O){i.value="failed";return}G&&(i.value="loading");const Oe=await O.list();if(J)return;if(!Oe.data){G&&(i.value="failed");return}const X=o.value.filter(Ie=>Ie.state!=="done");for(const Ie of o.value)Ie.state==="done"&&Jr(Ie.uid);o.value=[...Oe.data.map(A),...X],i.value="ready"}function $e(){R.value||f.value?.click()}function Ae(G){if(G.length===0||R.value)return;if(c.value=0,!j.value)for(const Xe of[...o.value])Xe.state!=="failed"&&(Xe.state!=="done"||Xe.file?.pending)&&Se(Xe);let Oe=j.value?typeof N.value=="number"?Math.max(N.value-te.value.length,0):Number.POSITIVE_INFINITY:1,X=0;const Ie=[];for(const Xe of G.slice(0,j.value?G.length:1)){const Bt=y(Xe);if(Bt===""&&Oe<=0){X++;continue}Bt===""&&Oe--,Ie.push(oe(Xe,Bt))}o.value=[...o.value,...Ie],c.value=X,Re()}function De(G){const Oe=G.target;Ae(Array.from(Oe.files??[])),Oe.value=""}function se(G){return p.value===null&&Array.from(G.dataTransfer?.types??[]).includes("Files")}function Ce(G){se(G)&&(G.preventDefault(),s.value=!0)}function he(G){se(G)&&(G.preventDefault(),s.value=!1,Ae(Array.from(G.dataTransfer?.files??[])))}function Re(){if(!O||o.value.some(Oe=>Oe.state==="uploading"))return;const G=o.value.find(Oe=>Oe.state==="queued");G&&Fe(G)}async function Fe(G){if(!O||!G.source)return;G.state="uploading",G.progress=0,G.error="",G.retryable=!1;const Oe=new Set(o.value.filter(Ie=>Ie.file).map(Ie=>Ie.file.id)),X=n?.beginUpload();try{const Ie=O.upload(G.source,(nn,qa)=>{G.progress=qa>0?Math.min(100,Math.round(nn/qa*100)):0},G.uploadId||void 0);G.handle=Xi(Ie);const Xe=await Ie.promise;G.handle=null;const Bt=!!Y(G.uid);if(Xe.ok)!Bt||J?O.remove(Xe.item.id):(G.state="done",G.progress=100,G.file=Xe.item,G.name=Xe.item.file_name,G.size=Xe.item.file_size,n?.markDirty());else if(Xe.reason==="aborted"||Xe.reason==="network"){const nn=await Ge(Oe);if(Xe.reason==="aborted"){for(const qa of nn)O.remove(qa.id);o.value=o.value.filter(qa=>qa.uid!==G.uid),Jr(G.uid)}else Bt&&nn[0]&&nn.length===1?(G.state="done",G.progress=100,G.file=nn[0],G.name=nn[0].file_name,G.size=nn[0].file_size,n?.markDirty()):(G.state="failed",G.error=w("backend::lang.fileupload.upload_failed"),G.retryable=!0)}else if(Bt)switch(G.state="failed",Xe.reason){case"too_large":G.error=ue.value?w("backend::lang.fileupload.too_large",{name:G.name,size:ue.value}):Xe.message||w("backend::lang.fileupload.upload_failed");break;case"invalid":G.error=Xe.message||w("backend::lang.fileupload.upload_failed");break;default:G.error=Xe.message||w("backend::lang.fileupload.upload_failed"),G.retryable=Xe.status>=500}}finally{X?.(),J||Re()}}async function Ge(G){if(!O)return[];const Oe=await O.list();return Oe.data?Oe.data.filter(X=>X.pending&&!G.has(X.id)):[]}function be(G){G.state!=="failed"||!G.source||(G.state="queued",G.error="",G.retryable=!1,Re())}async function Se(G){const Oe=o.value.findIndex(Ie=>Ie.uid===G.uid);if(Oe<0)return;switch(o.value=o.value.filter(Ie=>Ie.uid!==G.uid),Jr(G.uid),G.state){case"uploading":G.handle?.abort(),n?.markDirty(),Re();return;case"queued":case"failed":return}if(!O||!G.file)return;n?.markDirty();const X=await O.remove(G.file.id);if(!X.data&&!J){const Ie=[...o.value];Ie.splice(Math.min(Oe,Ie.length),0,G),o.value=Ie,Ne(X.error?.message||w("backend::lang.form.error_generic"),"danger")}}function Be(){return o.value.map(G=>G.uid)}function Ue(G){const Oe=new Map(o.value.map(Xe=>[Xe.uid,Xe])),X=G.map(Xe=>Oe.get(Xe)).filter(Xe=>!!Xe),Ie=o.value.filter(Xe=>!G.includes(Xe.uid));o.value=[...X,...Ie]}function rt(){L!==null&&clearTimeout(L),L=setTimeout(()=>{L=null,Lt()},N8)}function St(){return o.value.filter(G=>G.state==="done"&&G.file).map(G=>G.file.id)}async function Lt(){if(!O)return;const G=St();if(W){$=G;return}const Oe=z;z=null;const X=++q;W=!0;try{const Ie=await O.reorder(G);if($)return;!Ie.data&&!J&&X===q&&(Oe&&Ue(Oe),Ne(w("backend::lang.fileupload.reorder_failed"),"danger"))}finally{W=!1,$&&($=null,Lt())}}function ze(G,Oe){const X=o.value.findIndex(Bt=>Bt.uid===G);if(X<0||Oe<0||Oe>=o.value.length||Oe===X)return!1;z===null&&(z=Be());const Ie=[...o.value],[Xe]=Ie.splice(X,1);return Ie.splice(Oe,0,Xe),o.value=Ie,d.value=w("backend::lang.fileupload.moved",{name:Xe.name,position:Oe+1,total:Ie.length}),rt(),!0}async function Ve(G,Oe){const X=o.value.findIndex(Xe=>Xe.uid===Oe.uid);let Ie;switch(G.key){case"ArrowUp":case"ArrowLeft":Ie=X-1;break;case"ArrowDown":case"ArrowRight":Ie=X+1;break;default:return}G.preventDefault(),ze(Oe.uid,Ie)&&(await Ze(),m.value?.querySelector(`[data-handle="${Oe.uid}"]`)?.focus())}function Ke(G,Oe){p.value=Oe.uid,G.dataTransfer&&(G.dataTransfer.effectAllowed="move",G.dataTransfer.setData("text/plain",Oe.name))}function Rt(G,Oe){p.value!==null&&(G.preventDefault(),h.value=Oe.uid)}function Pa(G,Oe){p.value!==null&&(G.preventDefault(),ze(p.value,o.value.findIndex(X=>X.uid===Oe.uid)),yr())}function yr(){p.value=null,h.value=null}function Yr(G){const Oe=G.file?.content_type??G.source?.type??"";return r.includes(Oe.toLowerCase())}function jt(G){return!G.file||!Yr(G)||C.value.has(G.uid)?null:t.field.protected?g.value[G.uid]??null:G.file.thumb_url||G.file.url||null}function la(){return typeof URL.revokeObjectURL=="function"}function Jr(G){const Oe=g.value[G];if(Oe!==void 0){la()&&URL.revokeObjectURL(Oe);const X={...g.value};delete X[G],g.value=X}E.delete(G)}async function mi(G){if(!O||!G.file||E.has(G.uid)||typeof URL.createObjectURL!="function")return;E.add(G.uid);const Oe=await O.thumb(G.file.id);if(!(J||!Y(G.uid)||!E.has(G.uid))){if(!Oe){C.value=new Set([...C.value,G.uid]);return}g.value={...g.value,[G.uid]:URL.createObjectURL(Oe)}}}je(()=>o.value.map(G=>`${G.uid}:${G.state}`).join(","),()=>{if(t.field.protected)for(const G of o.value)G.state==="done"&&Yr(G)&&mi(G)});function Zr(G){C.value=new Set([...C.value,G.uid])}async function eo(G,Oe){if(!O||!G.file||typeof URL.createObjectURL!="function")return;const X=await O.download(G.file.id);if(!X){Ne(w("backend::lang.form.error_generic"),"danger");return}const Ie=URL.createObjectURL(X);D.push(Ie);const Xe=document.createElement("a");Xe.href=Ie,Xe.rel="noopener",Oe?Xe.download=G.file.file_name:Xe.target="_blank",Xe.click()}function Ln(G){return t.field.useCaption&&G.file?.title?G.file.title:G.name}function Ra(G){return ne.value&&!!G.file?.pending}const oa=_(()=>x.value===null?void 0:Y(x.value));function tn(G){x.value=G.uid,k.value=!0}function Ia(G){const Oe=oa.value;Oe&&(Oe.file=G)}function to(){const G=x.value;x.value=null,G!==null&&m.value?.querySelector(`[data-caption="${G}"]`)?.focus()}const gr=_(()=>{const G=t.field.thumbOptions?.mode;return G==="fit"||G==="auto"?"object-contain":"object-cover"});return wt(()=>{ce(!0)}),n&&je(n.revision,()=>{ce(!1)}),At(()=>{J=!0,L!==null&&(clearTimeout(L),L=null);for(const G of o.value)G.handle?.abort();if(la()){for(const G of Object.values(g.value))URL.revokeObjectURL(G);for(const G of D)URL.revokeObjectURL(G)}}),(G,Oe)=>(v(),b("div",{id:e.controlId,ref_key:"root",ref:m,role:"group","data-fileupload":"","data-field-name":e.field.name,"aria-labelledby":e.field.label?`${e.controlId}-label`:void 0,"aria-describedby":e.describedBy||void 0,"aria-busy":i.value==="loading"?"true":void 0,class:"flex min-w-0 flex-col gap-4"},[i.value==="loading"?(v(),b("span",_6)):i.value==="failed"?(v(),b("p",x6,T(u(w)("backend::lang.fileupload.load_failed")),1)):(v(),b(ye,{key:2},[R.value&&de.value.length===0?(v(),b("p",k6,T(u(w)("backend::lang.fileupload.empty")),1)):Q.value&&j.value&&de.value.length>0?(v(),b("ul",w6,[(v(!0),b(ye,null,qe(de.value,X=>(v(),b("li",{key:X.uid,"data-file-item":X.uid,"data-state":X.state,class:ge([[X.state==="failed"?"border-danger":"border-border",p.value===X.uid?"opacity-50":"",h.value===X.uid&&p.value!==X.uid?"border-2 border-dashed border-primary bg-sel":""],"relative overflow-hidden rounded-inner border bg-surface"]),onDragover:Ie=>Rt(Ie,X),onDrop:Ie=>Pa(Ie,X)},[S("div",C6,[X.state==="uploading"?(v(),U(u(Sl),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):X.state==="failed"?(v(),U(u(gt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):X.state==="done"?(v(),b(ye,{key:2},[jt(X)&&!e.field.protected&&X.file?.url?(v(),b("a",{key:0,href:X.file.url,target:"_blank",rel:"noopener",class:"block size-full","aria-label":u(w)("backend::lang.fileupload.open_preview",{name:X.name})},[S("img",{src:jt(X)??void 0,alt:Ln(X),class:ge([gr.value,"size-full"]),onError:Ie=>Zr(X)},null,42,E6)],8,S6)):jt(X)?(v(),b("button",{key:1,type:"button",class:"block size-full","aria-label":u(w)("backend::lang.fileupload.open_preview",{name:X.name}),onClick:Ie=>eo(X,!1)},[S("img",{src:jt(X)??void 0,alt:Ln(X),class:ge([gr.value,"size-full"])},null,10,T6)],8,A6)):C.value.has(X.uid)?(v(),b("span",D6,[F(u(mv),{size:20,"aria-hidden":"true"}),we(" "+T(u(w)("backend::lang.fileupload.preview_unavailable")),1)])):(v(),U(u(bl),{key:3,size:20,class:"text-muted","aria-hidden":"true"}))],64)):(v(),U(u(bl),{key:3,size:20,class:"text-muted","aria-hidden":"true"})),!R.value&&X.state==="done"?(v(),b("button",{key:4,type:"button",draggable:"true","data-handle":X.uid,"aria-label":u(w)("backend::lang.fileupload.move",{name:X.name}),class:ge([yc,"absolute top-2 left-2 cursor-grab"]),onKeydown:Ie=>Ve(Ie,X),onDragstart:Ie=>Ke(Ie,X),onDragend:yr},[F(u(vs),{size:16,"aria-hidden":"true"})],40,O6)):re("",!0),R.value?re("",!0):(v(),b("div",M6,[e.field.useCaption&&X.state==="done"?(v(),b("button",{key:0,type:"button","data-caption":X.uid,"aria-label":u(w)("backend::lang.fileupload.edit_details",{name:X.name}),class:ge(yc),onClick:Ie=>tn(X)},[F(u(Mo),{size:16,"aria-hidden":"true"})],8,P6)):re("",!0),X.state==="failed"&&X.retryable?(v(),b("button",{key:1,type:"button","data-action":"retry","aria-label":u(w)("backend::lang.fileupload.retry"),class:ge(yc),onClick:Ie=>be(X)},[F(u(Wi),{size:16,"aria-hidden":"true"})],8,R6)):re("",!0),S("button",{type:"button","data-action":"remove-file","aria-label":X.state==="uploading"||X.state==="queued"?u(w)("backend::lang.fileupload.cancel_upload",{name:X.name}):u(w)("backend::lang.form.remove_item",{name:X.name}),class:ge(L8),onClick:Ie=>Se(X)},[F(u(hn),{size:16,"aria-hidden":"true"})],8,I6)]))]),S("div",q6,[S("span",{class:"truncate text-[13px]",title:Ln(X)},T(Ln(X)),9,N6),S("span",L6,[X.state==="queued"?(v(),b("span",B6,T(u(w)("backend::lang.fileupload.queued")),1)):X.state==="uploading"?(v(),b("span",F6,T(u(w)("backend::lang.fileupload.uploading",{percent:X.progress})),1)):(v(),b("span",V6,T(Z(X.size)),1)),Ra(X)?(v(),b("span",z6,T(u(w)("backend::lang.fileupload.unsaved")),1)):re("",!0)]),X.state==="uploading"?(v(),U(u(sc),{key:0,"model-value":X.progress,max:100,"aria-label":u(w)("backend::lang.fileupload.uploading",{percent:X.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[F(u(uc),{class:"h-full bg-primary",style:Tn({width:`${X.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):re("",!0),X.state==="failed"?(v(),b("p",j6,[S("span",U6,T(u(w)("backend::lang.fileupload.upload_error"))+": ",1),we(T(X.error),1)])):re("",!0)])],42,$6))),128))])):Q.value&&!j.value&&de.value.length>0?(v(),b("div",H6,[(v(!0),b(ye,null,qe(de.value,X=>(v(),b("div",{key:X.uid,"data-file-item":X.uid,"data-state":X.state,class:"flex items-start gap-4"},[S("div",{class:ge([X.state==="failed"?"border-danger":"border-border","flex size-40 shrink-0 items-center justify-center overflow-hidden rounded-inner border bg-subtle"])},[X.state==="uploading"?(v(),U(u(Sl),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):X.state==="failed"?(v(),U(u(gt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):jt(X)?(v(),b("img",{key:2,src:jt(X)??void 0,alt:Ln(X),class:ge([gr.value,"size-full"]),onError:Ie=>Zr(X)},null,42,K6)):C.value.has(X.uid)?(v(),b("span",G6,[F(u(mv),{size:20,"aria-hidden":"true"}),we(" "+T(u(w)("backend::lang.fileupload.preview_unavailable")),1)])):(v(),U(u(bl),{key:4,size:20,class:"text-muted","aria-hidden":"true"}))],2),S("div",Y6,[S("span",{class:"truncate font-semibold",title:Ln(X)},T(Ln(X)),9,J6),S("span",Z6,[X.state==="queued"?(v(),b("span",X6,T(u(w)("backend::lang.fileupload.queued")),1)):X.state==="uploading"?(v(),b("span",Q6,T(u(w)("backend::lang.fileupload.uploading",{percent:X.progress})),1)):(v(),b("span",e8,T(Z(X.size)),1)),Ra(X)?(v(),b("span",t8,T(u(w)("backend::lang.fileupload.unsaved")),1)):re("",!0)]),X.state==="uploading"?(v(),U(u(sc),{key:0,"model-value":X.progress,max:100,"aria-label":u(w)("backend::lang.fileupload.uploading",{percent:X.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[F(u(uc),{class:"h-full bg-primary",style:Tn({width:`${X.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):re("",!0),X.state==="failed"?(v(),b("p",n8,[S("span",a8,T(u(w)("backend::lang.fileupload.upload_error"))+": ",1),we(T(X.error),1)])):re("",!0),R.value?re("",!0):(v(),b("div",r8,[X.state!=="failed"?(v(),U(et,{key:0,size:"sm",variant:"outline","data-action":"replace-file",icon:u(Ki),onClick:$e},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):re("",!0),X.state==="failed"&&X.retryable?(v(),U(et,{key:1,size:"sm",variant:"outline","data-action":"retry",icon:u(Wi),onClick:Ie=>be(X)},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.retry")),1)]),_:1},8,["icon","onClick"])):re("",!0),e.field.useCaption&&X.state==="done"?(v(),U(et,{key:2,size:"sm",variant:"outline","data-caption":X.uid,icon:u(Mo),onClick:Ie=>tn(X)},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.details_submit")),1)]),_:1},8,["data-caption","icon","onClick"])):re("",!0),F(et,{size:"sm",variant:"danger","data-action":"remove-file",icon:u(hn),onClick:Ie=>Se(X)},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.remove_file")),1)]),_:1},8,["icon","onClick"])]))])],8,W6))),128))])):de.value.length>0?(v(),b("ul",l8,[(v(!0),b(ye,null,qe(de.value,X=>(v(),b("li",{key:X.uid,"data-file-item":X.uid,"data-state":X.state,class:ge([[X.state==="failed"?"border-danger":"border-border",p.value===X.uid?"opacity-50":"",h.value===X.uid&&p.value!==X.uid?"border-2 border-dashed border-primary bg-sel":""],"flex min-h-14 flex-col justify-center gap-1 rounded-inner border bg-surface px-3 py-2"]),onDragover:Ie=>Rt(Ie,X),onDrop:Ie=>Pa(Ie,X)},[S("div",i8,[j.value&&!R.value&&X.state==="done"?(v(),b("button",{key:0,type:"button",draggable:"true","data-handle":X.uid,"aria-label":u(w)("backend::lang.fileupload.move",{name:X.name}),class:ge([ul,"cursor-grab"]),onKeydown:Ie=>Ve(Ie,X),onDragstart:Ie=>Ke(Ie,X),onDragend:yr},[F(u(vs),{size:16,"aria-hidden":"true"})],40,s8)):re("",!0),S("span",u8,[X.state==="uploading"?(v(),U(u(Sl),{key:0,size:16,class:"animate-spin text-muted","aria-hidden":"true"})):X.state==="failed"?(v(),U(u(gt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):jt(X)?(v(),b("img",{key:2,src:jt(X)??void 0,alt:"",class:"size-8 object-cover",onError:Ie=>Zr(X)},null,40,c8)):(v(),U(u(bl),{key:3,size:16,class:"text-muted","aria-hidden":"true"}))]),S("span",d8,[e.field.useCaption&&X.file?.title?(v(),b(ye,{key:0},[S("span",{class:"truncate font-semibold",title:X.file.title},T(X.file.title),9,f8),S("span",{class:"truncate text-[13px] text-muted",title:X.name},T(X.name),9,p8)],64)):(v(),b("span",{key:1,class:"truncate",title:X.name},T(X.name),9,v8))]),S("span",m8,[X.state==="queued"?(v(),b("span",h8,T(u(w)("backend::lang.fileupload.queued")),1)):X.state==="uploading"?(v(),b("span",y8,T(u(w)("backend::lang.fileupload.uploading",{percent:X.progress})),1)):(v(),b("span",g8,T(Z(X.size)),1)),Ra(X)?(v(),b("span",b8,T(u(w)("backend::lang.fileupload.unsaved")),1)):re("",!0)]),!j.value&&!R.value&&X.state!=="failed"?(v(),U(et,{key:1,size:"sm",variant:"outline","data-action":"replace-file",icon:u(Ki),onClick:$e},{default:B(()=>[we(T(u(w)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):re("",!0),S("span",_8,[X.state==="done"&&X.file?(v(),b(ye,{key:0},[!e.field.protected&&X.file.url?(v(),b("a",{key:0,href:X.file.url,download:"",target:"_blank",rel:"noopener","aria-label":u(w)("backend::lang.fileupload.download",{name:X.name}),class:ge(ul)},[F(u(Kc),{size:16,"aria-hidden":"true"})],8,x8)):e.field.protected?(v(),b("button",{key:1,type:"button","data-action":"download","aria-label":u(w)("backend::lang.fileupload.download",{name:X.name}),class:ge(ul),onClick:Ie=>eo(X,!0)},[F(u(Kc),{size:16,"aria-hidden":"true"})],8,k8)):re("",!0),e.field.useCaption&&!R.value?(v(),b("button",{key:2,type:"button","data-caption":X.uid,"aria-label":u(w)("backend::lang.fileupload.edit_details",{name:X.name}),class:ge(ul),onClick:Ie=>tn(X)},[F(u(Mo),{size:16,"aria-hidden":"true"})],8,w8)):re("",!0)],64)):re("",!0),X.state==="failed"&&X.retryable?(v(),b("button",{key:1,type:"button","data-action":"retry","aria-label":u(w)("backend::lang.fileupload.retry"),class:ge(ul),onClick:Ie=>be(X)},[F(u(Wi),{size:16,"aria-hidden":"true"})],8,$8)):re("",!0),R.value?re("",!0):(v(),b("button",{key:2,type:"button","data-action":"remove-file","aria-label":X.state==="uploading"||X.state==="queued"?u(w)("backend::lang.fileupload.cancel_upload",{name:X.name}):u(w)("backend::lang.form.remove_item",{name:X.name}),class:ge([ul,"hover:bg-danger-soft hover:text-danger"]),onClick:Ie=>Se(X)},[F(u(hn),{size:16,"aria-hidden":"true"})],8,C8))])]),X.state==="uploading"?(v(),U(u(sc),{key:0,"model-value":X.progress,max:100,"aria-label":u(w)("backend::lang.fileupload.uploading",{percent:X.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[F(u(uc),{class:"h-full bg-primary",style:Tn({width:`${X.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):re("",!0),X.state==="failed"?(v(),b("p",S8,[S("span",E8,T(u(w)("backend::lang.fileupload.upload_error"))+": ",1),we(T(X.error),1)])):re("",!0)],42,o8))),128))])):re("",!0),xe.value?(v(),b("button",{key:4,type:"button","data-fileupload-dropzone":"","aria-describedby":e.describedBy||void 0,class:ge([[s.value?"border-solid border-primary bg-sel":e.invalid?"border-dashed border-danger bg-subtle":"border-dashed border-border-strong bg-subtle"],"flex min-h-[112px] w-full flex-col items-center justify-center gap-2 rounded-control border-[1.5px] px-4 py-6 text-center transition-colors duration-150 ease-out hover:bg-hover"]),onClick:$e,onDragover:Ce,onDragleave:Oe[0]||(Oe[0]=X=>s.value=!1),onDrop:he},[S("span",T8,[F(u(Ki),{size:20,class:"text-muted"})]),S("span",D8,T(ke.value),1),V.value!==""?(v(),b("span",O8,T(V.value),1)):re("",!0)],42,A8)):me.value&&V.value!==""?(v(),b("p",M8,T(V.value),1)):re("",!0),c.value>0?(v(),b("p",P8,[F(u(gt),{size:14,class:"shrink-0","aria-hidden":"true"}),S("span",null,T(u(Ir)("backend::lang.fileupload.too_many",c.value,{max:N.value??0})),1)])):re("",!0)],64)),S("input",{ref_key:"input",ref:f,type:"file",hidden:"",tabindex:"-1","data-fileupload-input":"",accept:H.value,multiple:j.value||void 0,onChange:De},null,40,R8),S("p",I8,T(d.value),1),e.field.useCaption?(v(),U(g6,{key:3,open:k.value,"onUpdate:open":Oe[1]||(Oe[1]=X=>k.value=X),file:oa.value?.file??null,routes:u(O),preview:oa.value?jt(oa.value):null,"id-prefix":e.controlId,onSaved:Ia,onClosed:to},null,8,["open","file","routes","preview","id-prefix"])):re("",!0)],8,b6))}}),F8=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],V8=le({__name:"NumberField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),l=_(()=>Kr(n.field));function o(i){const s=i.target.value.trim();if(s===""){a("update:modelValue",null);return}const c=Number(s);a("update:modelValue",Number.isFinite(c)?c:null)}return(i,s)=>(v(),b("input",He({id:e.controlId},l.value,{name:e.field.name,type:"number",inputmode:"decimal",value:r.value,required:e.field.required||void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,class:[u(qt)(e.invalid),"h-input tabular-nums"],onInput:o}),null,16,F8))}}),z8=["id","aria-labelledby","aria-describedby"],j8=le({__name:"PartialField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e;return(n,a)=>(v(),b("div",{id:e.controlId,role:"group","data-partial-field":"","aria-labelledby":t.field.label?`${e.controlId}-label`:void 0,"aria-describedby":e.describedBy||void 0},[e.source?(v(),U(Mf,{key:0,variant:"field",source:e.source,name:t.field.path||t.field.name,"record-id":e.recordId??null},null,8,["source","name","record-id"])):(v(),U(vu,{key:1,"data-partial-failed":"",text:u(w)("backend::lang.extension.partial_failed")},null,8,["text"]))],8,z8))}}),U8={class:"relative"},H8=["id","name","type","value","required","aria-required","aria-invalid","aria-describedby"],W8=["aria-pressed","aria-label"],K8=le({__name:"PasswordField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=P(!1),l=_(()=>typeof n.modelValue=="string"?n.modelValue:""),o=_(()=>Kr(n.field)),i=ct(Zl,null);return i&&je(i.revision,()=>{r.value=!1}),(s,c)=>(v(),b("div",U8,[S("input",He({id:e.controlId,autocomplete:"new-password",spellcheck:"false"},o.value,{name:e.field.name,type:r.value?"text":"password",value:l.value,required:e.field.required||void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,class:[u(qt)(e.invalid),"h-input pr-12"],onInput:c[0]||(c[0]=d=>a("update:modelValue",d.target.value))}),null,16,H8),S("button",{type:"button","data-password-toggle":"","aria-pressed":r.value?"true":"false","aria-label":u(w)(r.value?"backend::lang.form.hide_password":"backend::lang.form.show_password"),class:"absolute top-1/2 right-1.5 flex size-8 -translate-y-1/2 items-center justify-center rounded-pager text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text",onClick:c[1]||(c[1]=d=>r.value=!r.value)},[(v(),U(zt(r.value?u(y2):u(b2)),{size:16,"aria-hidden":"true"}))],8,W8)]))}}),G8=["aria-labelledby","data-ml-field"],Y8={class:"flex flex-wrap items-center gap-2"},J8=["value","aria-label"],Z8=["value"],hu=le({__name:"MLField",props:{inner:{},innerType:{},mlType:{},contentLocale:{type:Boolean},field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>Jn(n.modelValue)),l=ct(Cs,null),o=_(()=>{const g=l?.value;return g&&g.length>0?[...g]:[]}),i=P(o.value[0]??"en"),s=_(()=>`${n.controlId}-label`),c=_(()=>`${n.controlId}-editor`),d=_(()=>r.value[i.value]??""),f=_(()=>({...n.field,type:n.innerType})),m=_(()=>n.contentLocale?{contentLocale:i.value}:{});function p(g){g&&(i.value=g)}function h(g){const C=g.target.value;p(C),yP(C)}function x(g){a("update:modelValue",{...r.value,[i.value]:g})}function k(g){const C=g.detail;typeof C=="string"&&C!==""&&p(C)}return wt(()=>{window.addEventListener(Qo,k)}),Ea(()=>{window.removeEventListener(Qo,k)}),(g,C)=>(v(),b("div",{class:"flex flex-col gap-1.5",role:"group","aria-labelledby":s.value,"data-ml-field":e.mlType},[S("div",Y8,[S("select",{"data-ml-locale":"",class:"rounded-control border border-border-strong bg-surface px-2 py-1 text-[13px]",value:i.value,"aria-label":`Locale for ${e.field.label||e.field.name}`,onChange:h},[(v(!0),b(ye,null,qe(o.value,E=>(v(),b("option",{key:E,value:E},T(E),9,Z8))),128))],40,J8)]),(v(),U(zt(e.inner),He({field:f.value,"model-value":d.value,"control-id":c.value,invalid:e.invalid,"described-by":e.describedBy,source:e.source,"record-id":e.recordId},m.value,{"onUpdate:modelValue":x}),null,16,["field","model-value","control-id","invalid","described-by","source","record-id"]))],8,G8))}}),X8=["id","aria-labelledby","aria-describedby","aria-busy"],Q8={key:0,"data-plugin-field-skeleton":"",class:"h-[42px] w-full rounded-control bg-skel","aria-hidden":"true"},h1=le({__name:"PluginField",props:{contentLocale:{},field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=ct(Nf,null),l=P("loading"),o=P(null);let i=null,s=!1;const c=_(()=>r?.value||Rr.value),d=_(()=>JSON.stringify(n.field.typeOptions??{})),f=_(()=>n.field.readOnly===!0);function m(O,L){if(Object.is(O,L))return!0;if(O===null||L===null||typeof O!="object"||typeof L!="object")return!1;try{return JSON.stringify(O)===JSON.stringify(L)}catch{return!1}}function p(O,L){m(O.value,L)||(O.value=L)}function h(O,L,z){z?O.setAttribute(L,""):O.removeAttribute(L)}function x(O){O.setAttribute("field-name",n.field.name),O.setAttribute("record-id",n.recordId==null?"":String(n.recordId)),O.setAttribute("locale",n.contentLocale??""),O.setAttribute("ui-locale",c.value),O.setAttribute("options",d.value),h(O,"disabled",f.value),h(O,"invalid",n.invalid===!0)}function k(O){let L;return{promise:new Promise((W,$)=>{L=setTimeout(()=>$(new Error("field type element was not defined in time")),O)}),cancel:()=>clearTimeout(L)}}async function g(O){const L=await lM(O);if(customElements.get(O))return;if(L.length>0)throw new Error(`plugin script failed: ${L.join(", ")}`);const z=k(v1);try{await Promise.race([customElements.whenDefined(O),z.promise])}finally{z.cancel()}}async function C(O){const L=i,z=O.detail;if(!L||z===null||typeof z!="object")return;const{id:W,file:$}=z,q=Q=>{!s&&i===L&&L.dispatchEvent(new CustomEvent(HP,{detail:{id:W,...Q}}))},J=()=>w("backend::lang.fileupload.upload_failed"),R=n.source;if(!($ instanceof Blob)||!R){q({error:J()});return}const j=$ instanceof File&&$.name!==""?$.name:"upload";try{const Q=await Le.POST("/{vendor}/{plugin}/{controller}/{id}/fields/{field}/upload",{params:{path:{...R,id:n.recordId??0,field:n.field.name}},body:{file:""},bodySerializer:()=>{const ne=new FormData;return ne.append("file",$,j),ne}});if(Q.data){q({url:Q.data.data.url});return}const N=Q.response.status===422?Pf(Q.error?.error):"";q({error:N||J()})}catch{q({error:J()})}}function E(O){C(O)}function D(O){const L=O.detail;L!==null&&typeof L=="object"&&Object.hasOwn(L,"value")&&a("update:modelValue",L.value)}return wt(async()=>{const O=n.field.element??"";try{if(O==="")throw new Error("plugin field without an element");if(await g(O),s||!o.value)return;const L=document.createElement(O);x(L),p(L,n.modelValue),L.addEventListener(bm,D),L.addEventListener(_m,E),o.value.append(L),i=L,l.value="ready"}catch{s||(l.value="failed")}}),je(()=>[n.recordId,n.invalid,n.contentLocale,f.value,c.value,d.value],()=>{i&&x(i)}),je(()=>n.modelValue,O=>{i&&p(i,O)},{deep:!0}),At(()=>{s=!0,i?.removeEventListener(bm,D),i?.removeEventListener(_m,E),i=null}),(O,L)=>l.value==="failed"?(v(),U(vu,{key:0,id:e.controlId,"data-plugin-field-failed":"","aria-describedby":e.describedBy||void 0,text:u(w)("backend::lang.extension.widget_failed")},null,8,["id","aria-describedby","text"])):(v(),b("div",{key:1,id:e.controlId,role:"group","data-plugin-field":"","aria-labelledby":e.field.label?`${e.controlId}-label`:void 0,"aria-describedby":e.describedBy||void 0,"aria-busy":l.value==="loading"?"true":void 0,class:"flex min-h-input min-w-0 flex-col"},[l.value==="loading"?(v(),b("span",Q8)):re("",!0),S("div",{ref_key:"mountPoint",ref:o,class:"contents"},null,512)],8,X8))}}),eR=le({__name:"MLPluginField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t;return(r,l)=>(v(),U(hu,He(n,{inner:h1,"inner-type":e.field.type,"ml-type":e.field.type,"content-locale":"","onUpdate:modelValue":l[0]||(l[0]=o=>a("update:modelValue",o))}),null,16,["inner-type","ml-type"]))}}),tR=["id"],nR=["id","aria-labelledby","aria-label","aria-describedby","data-mode"],aR=["aria-labelledby"],rR=["id"],lR={class:"min-w-0 [overflow-wrap:anywhere]"},oR={key:0,class:"shrink-0 text-[12px] font-semibold text-muted","aria-hidden":"true"},iR=["data-permission","data-locked"],sR={class:"flex min-w-0 flex-col"},uR=["id"],cR=["id"],dR=le({__name:"PermissionEditorField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>n.field.permissionOptions??[]),l=_(()=>n.field.mode==="radio"),o=_(()=>!!n.field.readOnly||!!Kr(n.field).readonly),i=_(()=>f1(n.field,n.modelValue)),s=_(()=>{const k=[],g=[];for(const C of r.value){if(!C.tab){g.push(C);continue}let E=k.find(D=>D.label===C.tab);E||(E={key:`tab:${C.tab}`,label:C.tab,options:[]},k.push(E)),E.options.push(C)}return g.length>0&&k.push({key:"other",label:w("backend::lang.permissioneditor.other"),options:g}),k}),c=[{value:"1",label:"backend::lang.permissioneditor.allow",checked:"data-[state=checked]:bg-ok-bg data-[state=checked]:text-ok-text"},{value:"0",label:"backend::lang.permissioneditor.inherit",checked:"data-[state=checked]:bg-surface data-[state=checked]:text-text data-[state=checked]:shadow-tab"},{value:"-1",label:"backend::lang.permissioneditor.deny",checked:"data-[state=checked]:bg-danger-soft data-[state=checked]:text-danger"}],d=_(()=>`${n.controlId}-label`);function f(k,g){return`${n.controlId}-${k}-${g}`}function m(k){return o.value||!!k.locked}function p(k){return!!k.locked&&!o.value}function h(k){return i.value[k.code]??0}function x(k,g){if(m(k))return;const C={...i.value};g===1||l.value&&g===-1?C[k.code]=g:delete C[k.code],a("update:modelValue",C)}return(k,g)=>r.value.length===0?(v(),b("div",{key:0,id:e.controlId,"data-permission-empty":"",class:"flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 text-muted"},T(u(w)("backend::lang.permissioneditor.empty")),9,tR)):(v(),b("div",{key:1,id:e.controlId,role:"group","aria-labelledby":e.field.label?d.value:void 0,"aria-label":e.field.label?void 0:e.field.name,"aria-describedby":e.describedBy||void 0,class:ge([e.invalid?"border-danger":"border-border","overflow-hidden rounded-inner border"]),"data-permission-editor":"","data-mode":l.value?"radio":"checkbox"},[(v(!0),b(ye,null,qe(s.value,(C,E)=>(v(),b("div",{key:C.key,role:"group","aria-labelledby":`${e.controlId}-section-${E}`,"data-permission-section":""},[S("h3",{id:`${e.controlId}-section-${E}`,class:ge([E>0?"border-t border-border":"","flex h-row-head items-center justify-between gap-4 bg-subtle px-4 font-semibold"])},[S("span",lR,T(C.label),1),l.value?re("",!0):(v(),b("span",oR,T(u(w)("backend::lang.permissioneditor.allow")),1))],10,rR),(v(!0),b(ye,null,qe(C.options,(D,O)=>(v(),b("div",{key:D.code,"data-permission":D.code,"data-locked":p(D)?"":void 0,class:"flex min-h-[56px] items-center justify-between gap-x-4 gap-y-2 border-t border-border px-4 py-3 max-sm:flex-col max-sm:items-start"},[S("div",sR,[(v(),U(zt(l.value?"span":"label"),{id:`${f(E,O)}-label`,for:l.value?void 0:f(E,O),class:"[overflow-wrap:anywhere]"},{default:B(()=>[we(T(D.label||D.code)+" ",1),p(D)?(v(),U(u(Tr),{key:0,size:14,class:"ml-1 inline-block align-[-2px] text-muted","aria-hidden":"true"})):re("",!0)]),_:2},1032,["id","for"])),p(D)?(v(),b("p",{key:0,id:`${f(E,O)}-note`,class:"text-[13px] text-muted [overflow-wrap:anywhere]","data-permission-locked":""},T(u(w)("backend::lang.permissioneditor.locked")),9,uR)):D.comment?(v(),b("p",{key:1,id:`${f(E,O)}-note`,class:"text-[13px] text-muted [overflow-wrap:anywhere]"},T(D.comment),9,cR)):re("",!0)]),l.value?(v(),U(u(qb),{key:0,orientation:"horizontal","model-value":String(h(D)),disabled:m(D),"aria-disabled":m(D)?"true":void 0,"aria-labelledby":`${f(E,O)}-label`,"aria-describedby":p(D)||D.comment?`${f(E,O)}-note`:void 0,class:"inline-flex shrink-0 gap-1 rounded-inner border border-border bg-subtle p-1","onUpdate:modelValue":L=>x(D,Number(L))},{default:B(()=>[(v(),b(ye,null,qe(c,L=>F(u(Nb),{key:L.value,value:L.value,"data-segment":L.value,class:ge([L.checked,"inline-flex h-pager items-center rounded-tab px-4 text-[13px] whitespace-nowrap text-muted transition-colors duration-150 ease-out hover:text-text disabled:cursor-not-allowed disabled:hover:text-muted data-[state=checked]:text-[14px] data-[state=checked]:font-semibold"])},{default:B(()=>[we(T(u(w)(L.label)),1)]),_:2},1032,["value","data-segment","class"])),64))]),_:1},8,["model-value","disabled","aria-disabled","aria-labelledby","aria-describedby","onUpdate:modelValue"])):(v(),U(u(m4),{key:1,id:f(E,O),"model-value":h(D)===1,disabled:m(D),"aria-disabled":m(D)?"true":void 0,"aria-labelledby":`${f(E,O)}-label`,"aria-describedby":p(D)||D.comment?`${f(E,O)}-note`:void 0,class:"flex size-[18px] shrink-0 items-center justify-center rounded-checkbox border border-border-strong bg-surface disabled:cursor-not-allowed disabled:opacity-60 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-on-primary","onUpdate:modelValue":L=>x(D,L===!0?1:0)},{default:B(()=>[F(u(y4),null,{default:B(()=>[F(u(nr),{size:14,"aria-hidden":"true"})]),_:1})]),_:1},8,["id","model-value","disabled","aria-disabled","aria-labelledby","aria-describedby","onUpdate:modelValue"]))],8,iR))),128))],8,aR))),128))],10,nR))}}),fR=le({__name:"FieldRenderer",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>M1(n.field));return(l,o)=>(v(),U(zt(r.value),{field:e.field,"model-value":e.modelValue,"control-id":e.controlId,invalid:e.invalid,"described-by":e.describedBy,labels:e.labels,source:e.source,"record-id":e.recordId,"onUpdate:modelValue":o[0]||(o[0]=i=>a("update:modelValue",i))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]))}}),pR=["data-field"],vR=["id"],mR={key:0,class:"text-danger","aria-hidden":"true"},hR=["id","for"],yR={key:0,class:"text-danger","aria-hidden":"true"},gR=["id"],bR=["id"],_R=["id"],xR=le({__name:"FormField",props:{field:{},modelValue:{},errors:{},notices:{},labels:{},source:{},recordId:{},idPrefix:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=_(()=>`${n.idPrefix??"field"}-${n.field.name}`),l=_(()=>r.value),o=_(()=>`${r.value}-comment`),i=_(()=>`${r.value}-error`),s=_(()=>`${r.value}-notice`),c=_(()=>(n.errors?.length??0)>0),d=_(()=>(n.notices?.length??0)>0),f=_(()=>N9(n.field.type)),m=_(()=>L9(n.field.type)||yu(n.field)),p=_(()=>!f.value&&!!n.field.comment),h=_(()=>[p.value||f.value&&n.field.comment?o.value:"",c.value?i.value:"",d.value?s.value:""].filter(Boolean).join(" "));return(x,k)=>(v(),b("div",{class:"flex min-w-0 flex-col gap-1.5","data-field":e.field.name},[m.value&&e.field.label?(v(),b("span",{key:0,id:`${l.value}-label`,class:"font-semibold"},[we(T(e.field.label),1),e.field.required?(v(),b("span",mR," *")):re("",!0)],8,vR)):!f.value&&!m.value?(v(),b("label",{key:1,id:`${l.value}-label`,for:l.value,class:"font-semibold"},[we(T(e.field.label||e.field.name),1),e.field.required?(v(),b("span",yR," *")):re("",!0)],8,hR)):re("",!0),F(fR,{field:e.field,"model-value":e.modelValue,"control-id":l.value,invalid:c.value,"described-by":h.value,labels:e.labels,source:e.source,"record-id":e.recordId,"onUpdate:modelValue":k[0]||(k[0]=g=>a("update:modelValue",g))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]),p.value?(v(),b("p",{key:2,id:o.value,class:"text-[13px] text-muted"},T(e.field.comment),9,gR)):re("",!0),d.value?(v(),b("div",{key:3,id:s.value,role:"status","data-field-notice":"",class:"summer-callout summer-callout--warning text-[13px]!"},[(v(!0),b(ye,null,qe(e.notices,(g,C)=>(v(),b("p",{key:C,class:"summer-callout__text"},T(g),1))),128))],8,bR)):re("",!0),c.value?(v(),b("div",{key:4,id:i.value,class:"flex flex-col gap-0.5 text-[13px] text-danger"},[(v(!0),b(ye,null,qe(e.errors,(g,C)=>(v(),b("p",{key:C,class:"flex items-center gap-1.5"},[F(u(gt),{size:14,class:"shrink-0","aria-hidden":"true"}),S("span",null,T(g),1)]))),128))],8,_R)):re("",!0)],8,pR))}}),kR={class:"grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},Xl=le({__name:"FormGrid",props:{fields:{},values:{},errors:{},notices:{},labels:{},source:{},recordId:{},idPrefix:{},scopePath:{}},emits:["update"],setup(e,{emit:t}){const n=e,a=t;kt(mu,{fields:_(()=>n.fields),values:_(()=>n.values),path:l=>n.scopePath?`${n.scopePath}.${l}`:l});function r(l){if(l.type===Gr)return"col-span-full";switch(l.span){case"left":return"min-[600px]:col-start-1";case"right":return"min-[600px]:col-start-2";case"auto":case"row":return"";default:return"col-span-full"}}return(l,o)=>(v(),b("div",kR,[(v(!0),b(ye,null,qe(e.fields,i=>(v(),U(xR,{key:i.name,class:ge(r(i)),field:i,"model-value":e.values[i.name],errors:e.errors[i.name],notices:e.notices?.[i.name],labels:e.labels?.[i.name],source:e.source,"record-id":e.recordId,"id-prefix":e.idPrefix,"onUpdate:modelValue":s=>a("update",i.name,s)},null,8,["class","field","model-value","errors","notices","labels","source","record-id","id-prefix","onUpdate:modelValue"]))),128))]))}}),wR=["data-preview-field"],$R=["id"],CR={class:"m-0 min-w-0"},SR={key:0,"data-switch":"true",class:"inline-flex h-6 items-center rounded-pill bg-ok-bg px-2.5 text-[12px] font-semibold text-ok-text"},ER={key:1,"data-switch":"false",class:"inline-flex h-6 items-center rounded-pill border border-border-strong px-2.5 text-[12px] font-semibold text-muted"},AR={class:"flex size-[22px] shrink-0 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-on-primary","aria-hidden":"true"},TR={class:"font-semibold"},DR={key:0,class:"px-2 text-muted","data-empty":""},OR={key:0},MR={key:1,class:"text-muted","data-empty":""},PR={key:0},RR={key:1,class:"text-muted","data-empty":""},gc="flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 [overflow-wrap:anywhere]",y1=le({__name:"PreviewField",props:{field:{},value:{},labels:{},source:{},recordId:{},idPrefix:{}},setup(e){const t=e,n=new Set(["datepicker","fileupload","partial","permissioneditor","richeditor","repeater","money"]),a=_(()=>`${t.idPrefix??"preview"}-${t.field.name}`),r=_(()=>`${a.value}-label`),l=_(()=>{const p=t.field.type;return n.has(p)||yu(t.field)?"control":p==="checkbox"||p==="switch"?"toggle":p==="relation"?t.field.multiple?"chips":"relation":p==="textarea"?"textarea":"text"}),o=_(()=>({...t.field,readOnly:!0})),i=_(()=>M1(t.field));function s(p){return p==null||p===""}const c=_(()=>{const p=t.value;if(s(p)||typeof p=="object")return"";if(t.field.type==="dropdown"){const h=(t.field.options??[]).find(x=>String(x.value)===String(p));return h?h.label:String(p)}return String(p)}),d=_(()=>t.labels?.[0]?.label??""),f=_(()=>Array.isArray(t.value)?t.labels??[]:[]);function m(p){return p.trim().split(/\s+/).filter(Boolean).slice(0,2).map(x=>x.charAt(0).toUpperCase()).join("")}return(p,h)=>(v(),b("div",{class:"flex min-w-0 flex-col gap-1.5","data-preview-field":e.field.name},[S("dt",{id:r.value,class:"font-semibold"},T(e.field.label||e.field.name),9,$R),S("dd",CR,[l.value==="control"?(v(),U(zt(i.value),{key:0,field:o.value,"model-value":e.value,"control-id":a.value,labels:e.labels,source:e.source,"record-id":e.recordId},null,8,["field","model-value","control-id","labels","source","record-id"])):l.value==="toggle"?(v(),b(ye,{key:1},[u(Rf)(e.value)?(v(),b("span",SR,T(u(w)("backend::lang.list.column_switch_true")),1)):(v(),b("span",ER,T(u(w)("backend::lang.list.column_switch_false")),1))],64)):l.value==="chips"?(v(),b("div",{key:2,"data-preview-value":"",class:ge([gc,"flex-wrap gap-1.5 p-1.5"])},[(v(!0),b(ye,null,qe(f.value,x=>(v(),b("span",{key:String(x.value),"data-chip":"",class:"inline-flex min-h-[30px] items-center gap-1.5 rounded-pill bg-surface pr-3 pl-1"},[S("span",AR,T(m(x.label)),1),S("span",TR,T(x.label),1)]))),128)),f.value.length===0?(v(),b("span",DR,T(u(w)("backend::lang.list.empty_value")),1)):re("",!0)])):l.value==="relation"?(v(),b("div",{key:3,"data-preview-value":"",class:ge(gc)},[d.value!==""?(v(),b("span",OR,T(d.value),1)):(v(),b("span",MR,T(e.field.emptyOption||u(w)("backend::lang.list.empty_value")),1))])):(v(),b("div",{key:4,"data-preview-value":"",class:ge([gc,l.value==="textarea"?"items-start! py-3 whitespace-pre-wrap":""])},[c.value!==""?(v(),b("span",PR,T(c.value),1)):(v(),b("span",RR,T(u(w)("backend::lang.list.empty_value")),1))],2))])],8,wR))}}),g1=new Set(["p","br","strong","b","em","i","u","s","h3","ul","ol","li","blockquote","a","div","span"]);function b1(e){const t=document.createElement("template");return t.innerHTML=e,t.content}function IR(e){if(e==="")return[];const t=new Set;for(const n of Array.from(b1(e).querySelectorAll("*")))t.add(n.localName.toLowerCase());return[...t]}function xm(e){return IR(e).some(t=>!g1.has(t))}const qR=["aria-labelledby","aria-describedby","data-repeater"],NR={key:0,"data-repeater-empty":"",class:"flex flex-col items-center gap-2 rounded-inner border border-dashed border-border-strong px-6 py-8 text-center"},LR={class:"font-semibold"},BR={key:0,class:"max-w-[420px] text-[13px] text-muted"},FR={key:0,"data-repeater-slot":"",class:"h-12 rounded-inner border-2 border-dashed border-primary bg-sel"},VR=["data-repeater-row","data-repeater-key","onDragover"],zR=["data-repeater-handle","aria-label","onKeydown","onDragstart"],jR={class:"text-[13px] text-muted tabular-nums"},UR=["title"],HR={key:1,"data-repeater-errors":"",class:"inline-flex h-6 items-center rounded-pill bg-danger-soft px-2.5 text-[13px] font-semibold text-danger"},WR={key:2,class:"flex gap-1"},KR=["aria-label","disabled","onClick"],GR=["aria-label","disabled","onClick"],YR=["aria-label","aria-expanded","aria-controls","onClick"],JR=["aria-label","disabled","onClick"],ZR=["id"],XR={key:0,class:"m-0 grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},QR={key:2,class:"flex flex-wrap items-center gap-4"},eI={key:0,"data-repeater-count":"",class:"text-[13px] text-muted tabular-nums"},vo="inline-flex size-8 shrink-0 items-center justify-center rounded-pager text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text disabled:cursor-not-allowed disabled:opacity-40",tI=le({__name:"RepeaterField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=ct(Bf,null),l=_(()=>n.field.form?.fields??[]),o=_(()=>!!n.field.readOnly),i=_(()=>Array.isArray(n.modelValue)?n.modelValue.map(V=>V!==null&&typeof V=="object"&&!Array.isArray(V)?V:{}):[]),s=_(()=>typeof n.field.maxItems=="number"?n.field.maxItems:null),c=_(()=>typeof n.field.minItems=="number"?n.field.minItems:0),d=_(()=>n.field.prompt||w("backend::lang.repeater.add")),f=_(()=>`${n.controlId}-label`);let m=0;const p=P([]),h=P(new Set);let x;function k(){return m+=1,`r${m}`}je(()=>n.modelValue,V=>{V===x&&p.value.length===i.value.length||p.value.length!==i.value.length&&(p.value=i.value.map(()=>k()),h.value=new Set)},{immediate:!0});function g(V,K){p.value=K,x=V,a("update:modelValue",V)}function C(V){return V==null||V===""||V===!1||Array.isArray(V)&&V.length===0}function E(){const V={};for(const K of l.value)K.default!==void 0?V[K.name]=K.default:K.type==="checkbox"||K.type==="switch"?V[K.name]=!1:V[K.name]=null;return V}function D(V){return l.value.some(K=>{const ee=V[K.name];return C(ee)?!1:K.default===void 0||String(K.default)!==String(ee)})}function O(V){return(b1(V).textContent??"").replace(/\s+/g," ").trim()}function L(V){const K=i.value[V]??{},ee=l.value.find(M=>M.name===n.field.titleFrom),y=ee?K[ee.name]:void 0;let A="";return ee&&!C(y)&&typeof y!="object"&&(ee.type==="dropdown"?A=(ee.options??[]).find(M=>String(M.value)===String(y))?.label??String(y):ee.type==="richeditor"?A=O(String(y)):A=String(y).trim()),A!==""?A:w("backend::lang.repeater.untitled",{n:V+1})}function z(V,K){const ee=`${n.field.name}.${K}.`,y={};for(const[A,M]of Object.entries(V??{}))A.startsWith(ee)&&A.length>ee.length&&(y[A.slice(ee.length)]=M);return y}const W=_(()=>i.value.map((V,K)=>z(r?.errors.value,K))),$=_(()=>i.value.map((V,K)=>z(r?.notices.value,K))),q=V=>Object.keys(W.value[V]??{}).length;je(W,V=>{const K=V.flatMap((ee,y)=>Object.keys(ee).length>0?[p.value[y]]:[]);if(K.length>0){const ee=new Set(h.value);for(const y of K)ee.delete(y);h.value=ee}});function J(V){return o.value||!h.value.has(V)}function R(V,K){const ee=new Set(h.value);K?ee.delete(V):ee.add(V),h.value=ee}const j=_(()=>p.value.some(V=>!h.value.has(V)));function Q(){h.value=j.value?new Set(p.value):new Set}const N=P(null),ne=P(null);function te(V){return N.value?.querySelector(`[data-repeater-handle="${V}"]`)??null}function de(V,K,ee){const y=i.value.map((A,M)=>M===V?{...A,[K]:ee}:A);g(y,[...p.value]),r?.clearError(`${n.field.name}.${V}.${K}`)}async function pe(){if(o.value||s.value!==null&&i.value.length>=s.value)return;const V=k();g([...i.value,E()],[...p.value,V]),await Ze(),N.value?.querySelector(`[data-repeater-key="${V}"]`)?.querySelector('[data-repeater-body] input, [data-repeater-body] select, [data-repeater-body] textarea, [data-repeater-body] [contenteditable="true"]')?.focus()}async function xe(V){const K=i.value[V];if(!K||o.value||i.value.length<=c.value)return;if(D(K)&&r){const M=L(V);if(!await r.confirm({message:w("backend::lang.repeater.remove_confirm",{title:M}),confirmLabel:w("backend::lang.repeater.remove"),danger:!0}))return}const ee=p.value.filter((M,oe)=>oe!==V);g(i.value.filter((M,oe)=>oe!==V),ee),await Ze();const y=ee[V]??ee[V-1],A=y?te(y):null;A?A.focus():ne.value?.$el.focus()}async function me(V,K){const ee=i.value.length;if(o.value||V===K||V<0||K<0||V>=ee||K>=ee)return;const y=[...i.value],A=[...p.value],[M]=y.splice(V,1),[oe]=A.splice(V,1);y.splice(K,0,M),A.splice(K,0,oe),g(y,A),await Ze(),te(oe)?.focus(),r?.announce(w("backend::lang.repeater.moved",{title:L(K),position:K+1,total:ee}))}function fe(V,K){(V.key==="ArrowUp"||V.key==="ArrowDown")&&(V.preventDefault(),me(K,V.key==="ArrowUp"?K-1:K+1))}const Te=P(null),H=P(null);function ke(V,K){Te.value=K,H.value=null,V.dataTransfer?.setData("text/plain",p.value[K]??""),V.dataTransfer&&(V.dataTransfer.effectAllowed="move")}function ae(V,K){if(Te.value===null)return;V.preventDefault();const y=V.currentTarget.getBoundingClientRect();H.value=V.clientY>y.top+y.height/2?K+1:K}function Z(V){if(Te.value===null||H.value===null)return;V.preventDefault();const K=Te.value,ee=H.value>K?H.value-1:H.value;ue(),me(K,ee)}function ue(){Te.value=null,H.value=null}return(V,K)=>(v(),b("div",{ref_key:"root",ref:N,role:"group","aria-labelledby":f.value,"aria-describedby":e.describedBy||void 0,"data-repeater":e.field.name,class:"flex flex-col gap-4"},[i.value.length===0?(v(),b("div",NR,[S("p",LR,T(u(w)("backend::lang.repeater.empty")),1),o.value?re("",!0):(v(),b("p",BR,T(u(w)("backend::lang.repeater.empty_hint",{prompt:d.value})),1))])):re("",!0),(v(!0),b(ye,null,qe(i.value,(ee,y)=>(v(),b(ye,{key:p.value[y]},[Te.value!==null&&H.value===y&&H.value!==Te.value&&H.value!==Te.value+1?(v(),b("div",FR)):re("",!0),S("div",{"data-repeater-row":y,"data-repeater-key":p.value[y],class:ge([[q(y)>0?"border-danger":"border-border",Te.value===y?"opacity-50":""],"rounded-inner border bg-surface"]),onDragover:A=>ae(A,y),onDrop:Z},[S("div",{class:ge([J(p.value[y])?"rounded-t-inner border-b border-border":"rounded-inner","flex min-h-12 items-center gap-2 bg-subtle px-2"])},[o.value?re("",!0):(v(),b("button",{key:0,type:"button",draggable:"true","data-repeater-handle":p.value[y],"aria-label":u(w)("backend::lang.repeater.move",{title:L(y)}),class:ge([vo,"cursor-grab"]),onKeydown:A=>fe(A,y),onDragstart:A=>ke(A,y),onDragend:ue},[F(u(vs),{size:16,"aria-hidden":"true"})],40,zR)),S("span",jR,T(y+1)+".",1),S("span",{"data-repeater-title":"",class:"min-w-0 flex-1 truncate font-semibold",title:L(y)},T(L(y)),9,UR),q(y)>0?(v(),b("span",HR,T(u(Ir)("backend::lang.form.tab_errors",q(y))),1)):re("",!0),o.value?re("",!0):(v(),b("div",WR,[S("button",{type:"button","data-action":"repeater-up","aria-label":u(w)("backend::lang.repeater.move_up",{title:L(y)}),disabled:y===0,class:ge(vo),onClick:A=>me(y,y-1)},[F(u(Gy),{size:16,"aria-hidden":"true"})],8,KR),S("button",{type:"button","data-action":"repeater-down","aria-label":u(w)("backend::lang.repeater.move_down",{title:L(y)}),disabled:y===i.value.length-1,class:ge(vo),onClick:A=>me(y,y+1)},[F(u(ar),{size:16,"aria-hidden":"true"})],8,GR),S("button",{type:"button","data-action":"repeater-toggle","aria-label":u(w)(J(p.value[y])?"backend::lang.repeater.collapse":"backend::lang.repeater.expand",{title:L(y)}),"aria-expanded":J(p.value[y])?"true":"false","aria-controls":`${e.controlId}-${p.value[y]}-body`,class:ge(vo),onClick:A=>R(p.value[y],!J(p.value[y]))},[F(u(ar),{size:16,class:ge([J(p.value[y])?"rotate-180":"","transition-transform duration-150"]),"aria-hidden":"true"},null,8,["class"])],8,YR),S("button",{type:"button","data-action":"repeater-remove","aria-label":u(w)("backend::lang.repeater.remove_named",{title:L(y)}),disabled:i.value.length<=c.value,class:ge([vo,"hover:bg-danger-soft hover:text-danger"]),onClick:A=>xe(y)},[F(u(Ur),{size:16,"aria-hidden":"true"})],8,JR)]))],2),J(p.value[y])?(v(),b("div",{key:0,id:`${e.controlId}-${p.value[y]}-body`,"data-repeater-body":"",class:"p-4"},[o.value?(v(),b("dl",XR,[(v(!0),b(ye,null,qe(l.value,A=>(v(),U(y1,{key:A.name,class:ge(A.span==="left"?"min-[600px]:col-start-1":A.span==="right"?"min-[600px]:col-start-2":"col-span-full"),field:{...A,readOnly:!0},value:ee[A.name],source:e.source,"record-id":e.recordId,"id-prefix":`${e.controlId}-${p.value[y]}`},null,8,["class","field","value","source","record-id","id-prefix"]))),128))])):(v(),U(Xl,{key:1,fields:l.value,values:ee,errors:W.value[y]??{},notices:$.value[y],source:e.source,"record-id":e.recordId,"id-prefix":`${e.controlId}-${p.value[y]}`,"scope-path":e.field.name,onUpdate:(A,M)=>de(y,A,M)},null,8,["fields","values","errors","notices","source","record-id","id-prefix","scope-path","onUpdate"]))],8,ZR)):re("",!0)],42,VR)],64))),128)),Te.value!==null&&H.value===i.value.length&&H.value!==Te.value+1?(v(),b("div",{key:1,"data-repeater-slot":"",class:"h-12 rounded-inner border-2 border-dashed border-primary bg-sel",onDragover:K[0]||(K[0]=vt(()=>{},["prevent"])),onDrop:Z},null,32)):re("",!0),o.value?re("",!0):(v(),b("div",QR,[F(et,{ref_key:"addButton",ref:ne,variant:"outline",size:"sm",icon:u(ci),"data-action":"repeater-add",disabled:s.value!==null&&i.value.length>=s.value,onClick:pe},{default:B(()=>[we(T(d.value),1)]),_:1},8,["icon","disabled"]),s.value!==null?(v(),b("span",eI,T(u(w)("backend::lang.repeater.count",{current:i.value.length,max:s.value})),1)):re("",!0),i.value.length>1?(v(),U(et,{key:1,variant:"ghost",size:"sm",class:"ml-auto","data-action":"repeater-toggle-all",onClick:Q},{default:B(()=>[we(T(u(w)(j.value?"backend::lang.repeater.collapse_all":"backend::lang.repeater.expand_all")),1)]),_:1})):re("",!0)]))],8,qR))}}),nI="modulepreload",aI=function(e,t){return new URL(e,t).href},km={},rI=function(t,n,a){let r=Promise.resolve();if(n&&n.length>0){let c=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const o=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");r=c(n.map(d=>{if(d=aI(d,a),d in km)return;km[d]=!0;const f=d.endsWith(".css"),m=f?'[rel="stylesheet"]':"";if(a)for(let h=o.length-1;h>=0;h--){const x=o[h];if(x.href===d&&(!f||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${m}`))return;const p=document.createElement("link");if(p.rel=f?"stylesheet":nI,f||(p.as="script"),p.crossOrigin="",p.href=d,s&&p.setAttribute("nonce",s),document.head.appendChild(p),f)return new Promise((h,x)=>{p.addEventListener("load",h),p.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${d}`)))})}))}function l(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return r.then(o=>{for(const i of o||[])i.status==="rejected"&&l(i.reason);return t().catch(l)})};function wm(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n2?a-2:0),l=2;l1?n-1:0),r=1;r"u"?null:Tt(BigInt.prototype.toString),Tm=typeof Symbol>"u"?null:Tt(Symbol.prototype.toString),an=Tt(Object.prototype.hasOwnProperty),yo=Tt(Object.prototype.toString),Ut=Tt(RegExp.prototype.test),Va=gI(TypeError);function Tt(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:wo;if($m&&$m(e,null),!Pl(t))return e;let a=t.length;for(;a--;){let r=t[a];if(typeof r=="string"){const l=n(r);l!==r&&(cI(t)||(t[a]=l),r=l)}e[r]=!0}return e}function bI(e){for(let t=0;t/g),SI=Nt(/\${[\w\W]*/g),EI=Nt(/^data-[\-\w.\u00B7-\uFFFF]+$/),AI=Nt(/^aria-[\-\w]+$/),Rm=Nt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),TI=Nt(/^(?:\w+script|data):/i),DI=Nt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),OI=Nt(/^html$/i),MI=Nt(/^[a-z][.\w]*(-[.\w]+)+$/i),Im=Nt(/<[/\w!]/g),qm=Nt(/<[/\w]/g),PI=Nt(/<\/no(script|embed|frames)/i),RI=Nt(/\/>/i),dn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},k1=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],II=Ot(st({},k1)),qI=(function(){const e={};return Er(k1,t=>{e[t]=Nt(new RegExp("])","i"))}),Ot(e)})(),NI=function(){return typeof window>"u"?null:window},LI=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let a=null;const r="data-tt-policy-suffix";n&&n.hasAttribute(r)&&(a=n.getAttribute(r));const l="dompurify"+(a?"#"+a:"");try{return t.createPolicy(l,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},Nm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},za=function(t,n,a,r){return an(t,n)&&Pl(t[n])?st(r.base?fn(r.base):{},t[n],r.transform):a},$c=function(t,n,a){const r=an(t,n)?t[n]:void 0;return r&&typeof r=="object"?fn(r):a()};function w1(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:NI();const t=Me=>w1(Me);if(t.version="3.4.16",t.removed=[],!e||!e.document||e.document.nodeType!==dn.document||!e.Element)return t.isSupported=!1,t;let n=e.document;const a=n,r=a.currentScript;e.DocumentFragment;const l=e.HTMLTemplateElement,o=e.Node,i=e.Element,s=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const c=e.DOMParser,d=e.trustedTypes,f=i.prototype,m=xn(f,"cloneNode"),p=xn(f,"remove"),h=xn(f,"removeAttributeNode"),x=xn(f,"nextSibling"),k=xn(f,"childNodes"),g=xn(f,"parentNode"),C=xn(f,"shadowRoot"),E=xn(f,"attributes"),D=o&&o.prototype?xn(o.prototype,"nodeType"):null,O=o&&o.prototype?xn(o.prototype,"nodeName"):null,L=o&&o.prototype?xn(o.prototype,"ownerDocument"):null,z=function(I){return D?D(I):I.nodeType},W=function(I){return O?O(I):I.nodeName};if(typeof l=="function"){const Me=n.createElement("template");Me.content&&Me.content.ownerDocument&&(n=Me.content.ownerDocument)}let $,q="",J,R=!1,j=0;const Q=function(){if(j>0)throw Va('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},N=function(I){Q(),j++;try{return $.createHTML(I)}finally{j--}},ne=function(I){Q(),j++;try{return $.createScriptURL(I)}finally{j--}},te=function(){return R||(J=LI(d,r),R=!0),J},de=n,pe=de.implementation,xe=de.createNodeIterator,me=de.createDocumentFragment,fe=de.getElementsByTagName,Te=a.importNode;let H=Nm();t.isSupported=typeof _1=="function"&&typeof g=="function"&&pe&&pe.createHTMLDocument!==void 0;const ke=$I,ae=CI,Z=SI,ue=EI,V=AI,K=TI,ee=DI,y=MI;let A=Rm,M=null;const oe=st({},[...Dm,..._c,...xc,...kc,...Om]);let Y=null;const ce=st({},[...Mm,...wc,...Pm,...Bi]);let $e=Object.seal(hl(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,De=null;const se=Object.seal(hl(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Ce=!0,he=!0,Re=!1,Fe=!0,Ge=!1,be=!0,Se=!1,Be=!1,Ue=null,rt=null,St=!1,Lt=!1,ze=!1,Ve=!1,Ke=!0,Rt=!1;const Pa="user-content-";let yr=!0,Yr=!1,jt={},la=null;const Jr=st({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let mi=null;const Zr=st({},["audio","video","img","source","image","track"]);let eo=null;const Ln=st({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ra="http://www.w3.org/1998/Math/MathML",oa="http://www.w3.org/2000/svg",tn="http://www.w3.org/1999/xhtml";let Ia=tn,to=!1,gr=null;const G=st({},[Ra,oa,tn],bc),Oe=Ot(["mi","mo","mn","ms","mtext"]);let X=st({},Oe);const Ie=Ot(["annotation-xml"]);let Xe=st({},Ie);const Bt=st({},["title","style","font","a","script"]);let nn=null;const qa=["application/xhtml+xml","text/html"],V1="text/html";let $t=null,Xr=null;const z1=n.createElement("form"),zf=function(I){return I instanceof RegExp||I instanceof Function},_u=function(){let I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Xr&&Xr===I)return;(!I||typeof I!="object")&&(I={}),I=fn(I),nn=qa.indexOf(I.PARSER_MEDIA_TYPE)===-1?V1:I.PARSER_MEDIA_TYPE,$t=nn==="application/xhtml+xml"?bc:wo,M=za(I,"ALLOWED_TAGS",oe,{transform:$t}),Y=za(I,"ALLOWED_ATTR",ce,{transform:$t}),gr=za(I,"ALLOWED_NAMESPACES",G,{transform:bc}),eo=za(I,"ADD_URI_SAFE_ATTR",Ln,{transform:$t,base:Ln}),mi=za(I,"ADD_DATA_URI_TAGS",Zr,{transform:$t,base:Zr}),la=za(I,"FORBID_CONTENTS",Jr,{transform:$t}),Ae=za(I,"FORBID_TAGS",fn({}),{transform:$t}),De=za(I,"FORBID_ATTR",fn({}),{transform:$t}),jt=an(I,"USE_PROFILES")?I.USE_PROFILES&&typeof I.USE_PROFILES=="object"?fn(I.USE_PROFILES):I.USE_PROFILES:!1,Ce=I.ALLOW_ARIA_ATTR!==!1,he=I.ALLOW_DATA_ATTR!==!1,Re=I.ALLOW_UNKNOWN_PROTOCOLS||!1,Fe=I.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ge=I.SAFE_FOR_TEMPLATES||!1,be=I.SAFE_FOR_XML!==!1,Se=I.WHOLE_DOCUMENT||!1,Lt=I.RETURN_DOM||!1,ze=I.RETURN_DOM_FRAGMENT||!1,Ve=I.RETURN_TRUSTED_TYPE||!1,St=I.FORCE_BODY||!1,Ke=I.SANITIZE_DOM!==!1,Rt=I.SANITIZE_NAMED_PROPS||!1,yr=I.KEEP_CONTENT!==!1,Yr=I.IN_PLACE||!1,A=xI(I.ALLOWED_URI_REGEXP)?I.ALLOWED_URI_REGEXP:Rm,Ia=typeof I.NAMESPACE=="string"?I.NAMESPACE:tn,X=$c(I,"MATHML_TEXT_INTEGRATION_POINTS",()=>st({},Oe)),Xe=$c(I,"HTML_INTEGRATION_POINTS",()=>st({},Ie));const ie=$c(I,"CUSTOM_ELEMENT_HANDLING",()=>hl(null));if($e=hl(null),an(ie,"tagNameCheck")&&zf(ie.tagNameCheck)&&($e.tagNameCheck=ie.tagNameCheck),an(ie,"attributeNameCheck")&&zf(ie.attributeNameCheck)&&($e.attributeNameCheck=ie.attributeNameCheck),an(ie,"allowCustomizedBuiltInElements")&&typeof ie.allowCustomizedBuiltInElements=="boolean"&&($e.allowCustomizedBuiltInElements=ie.allowCustomizedBuiltInElements),Nt($e),Ge&&(he=!1),ze&&(Lt=!0),jt&&(M=st({},Om),Y=hl(null),jt.html===!0&&(st(M,Dm),st(Y,Mm)),jt.svg===!0&&(st(M,_c),st(Y,wc),st(Y,Bi)),jt.svgFilters===!0&&(st(M,xc),st(Y,wc),st(Y,Bi)),jt.mathMl===!0&&(st(M,kc),st(Y,Pm),st(Y,Bi))),se.tagCheck=null,se.attributeCheck=null,an(I,"ADD_TAGS")&&(typeof I.ADD_TAGS=="function"?se.tagCheck=I.ADD_TAGS:Pl(I.ADD_TAGS)&&(M===oe&&(M=fn(M)),st(M,I.ADD_TAGS,$t))),an(I,"ADD_ATTR")&&(typeof I.ADD_ATTR=="function"?se.attributeCheck=I.ADD_ATTR:Pl(I.ADD_ATTR)&&(Y===ce&&(Y=fn(Y)),st(Y,I.ADD_ATTR,$t))),an(I,"ADD_FORBID_CONTENTS")&&Pl(I.ADD_FORBID_CONTENTS)&&(la===Jr&&(la=fn(la)),st(la,I.ADD_FORBID_CONTENTS,$t)),yr&&(M["#text"]=!0),Se&&st(M,["html","head","body"]),M.table&&(st(M,["tbody"]),delete Ae.tbody),I.TRUSTED_TYPES_POLICY){if(typeof I.TRUSTED_TYPES_POLICY.createHTML!="function")throw Va('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof I.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Va('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Ee=$;$=I.TRUSTED_TYPES_POLICY;try{q=N("")}catch(Pe){throw $=Ee,Pe}}else I.TRUSTED_TYPES_POLICY===null?($=void 0,q=""):($===void 0&&($=te()),$&&typeof q=="string"&&(q=N("")));Ot&&Ot(I),Xr=I},jf=st({},[..._c,...xc,...kI]),Uf=st({},[...kc,...wI]),j1=function(I,ie,Ee){return ie.namespaceURI===tn?I==="svg":ie.namespaceURI===Ra?I==="svg"&&(Ee==="annotation-xml"||X[Ee]):!!jf[I]},U1=function(I,ie,Ee){return ie.namespaceURI===tn?I==="math":ie.namespaceURI===oa?I==="math"&&Xe[Ee]:!!Uf[I]},H1=function(I,ie,Ee){return ie.namespaceURI===oa&&!Xe[Ee]||ie.namespaceURI===Ra&&!X[Ee]?!1:!Uf[I]&&(Bt[I]||!jf[I])},W1=function(I){let ie=g(I);(!ie||!ie.tagName)&&(ie={namespaceURI:Ia,tagName:"template"});const Ee=wo(I.tagName),Pe=wo(ie.tagName);return gr[I.namespaceURI]?I.namespaceURI===oa?j1(Ee,ie,Pe):I.namespaceURI===Ra?U1(Ee,ie,Pe):I.namespaceURI===tn?H1(Ee,ie,Pe):!!(nn==="application/xhtml+xml"&&gr[I.namespaceURI]):!1},Na=function(I){mo(t.removed,{element:I});try{g(I).removeChild(I)}catch{if(p(I),!g(I))throw Va("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Hf=function(I,ie,Ee){try{h(I,ie)}catch{try{I.removeAttribute(Ee)}catch{}}},hi=function(I){yi(I);const ie=k(I);if(ie){const Pe=[];Er(ie,We=>{mo(Pe,We)}),Er(Pe,We=>{try{p(We)}catch{}})}const Ee=E(I);if(Ee)for(let Pe=Ee.length-1;Pe>=0;--Pe){const We=Ee[Pe],at=We&&We.name;typeof at=="string"&&Hf(I,We,at)}},br=function(I,ie,Ee){if(!Ee)try{Ee=ie.getAttributeNode(I)}catch{Ee=null}mo(t.removed,{attribute:Ee||null,from:ie});try{Ee?h(ie,Ee):ie.removeAttribute(I)}catch{try{ie.removeAttribute(I)}catch{}}if(I==="is")if(Lt||ze)try{Na(ie)}catch{}else try{ie.setAttribute(I,"")}catch{}},K1=function(I){const ie=E(I);if(ie)for(let Ee=ie.length-1;Ee>=0;--Ee){const Pe=ie[Ee],We=Pe&&Pe.name;typeof We!="string"||Y[$t(We)]||Hf(I,Pe,We)}},yi=function(I){const ie=[I];for(;ie.length>0;){const Ee=ie.pop();z(Ee)===dn.element&&K1(Ee);const Pe=k(Ee);if(Pe)for(let We=Pe.length-1;We>=0;--We)ie.push(Pe[We])}},Wf=function(I,ie){return be?I==="patchsrc"?!0:I==="for"&&ie!=="label"&&ie!=="output":!1},G1=function(I){if(!be)return;const ie=[I];for(;ie.length>0;){const Ee=ie.pop(),Pe=z(Ee);if(Pe===dn.processingInstruction||Pe===dn.comment&&Ut(qm,Ee.data)){try{p(Ee)}catch{}continue}if(Pe===dn.element){const at=Ee,ot=$t(W(Ee));try{at.hasAttribute&&at.hasAttribute("patchsrc")&&at.removeAttribute("patchsrc"),at.hasAttribute&&at.hasAttribute("for")&&Wf("for",ot)&&at.removeAttribute("for")}catch{}}const We=k(Ee);if(We)for(let at=We.length-1;at>=0;--at)ie.push(We[at])}},Kf=function(I){let ie=null,Ee=null;if(St)I=""+I;else{const at=Sm(I,/^[\r\n\t ]+/);Ee=at&&at[0]}nn==="application/xhtml+xml"&&Ia===tn&&(I=''+I+"");const Pe=$?N(I):I;if(Ia===tn)try{ie=new c().parseFromString(Pe,nn)}catch{}if(!ie||!ie.documentElement){ie=pe.createDocument(Ia,"template",null);try{ie.documentElement.innerHTML=to?q:Pe}catch{}}const We=ie.body||ie.documentElement;return I&&Ee&&We.insertBefore(n.createTextNode(Ee),We.childNodes[0]||null),Ia===tn?fe.call(ie,Se?"html":"body")[0]:Se?ie.documentElement:We},Gf=function(I){const ie=L?L(I):I.ownerDocument;return xe.call(ie||I,I,s.SHOW_ELEMENT|s.SHOW_COMMENT|s.SHOW_TEXT|s.SHOW_PROCESSING_INSTRUCTION|s.SHOW_CDATA_SECTION,null)},gi=function(I){return I=ho(I,ke," "),I=ho(I,ae," "),I=ho(I,Z," "),I},xu=function(I){var ie;I.normalize();const Ee=L?L(I):I.ownerDocument,Pe=xe.call(Ee||I,I,s.SHOW_TEXT|s.SHOW_COMMENT|s.SHOW_CDATA_SECTION|s.SHOW_PROCESSING_INSTRUCTION,null);let We=Pe.nextNode();for(;We;)We.data=gi(We.data),We=Pe.nextNode();const at=(ie=I.querySelectorAll)===null||ie===void 0?void 0:ie.call(I,"template");at&&Er(at,ot=>{Qr(ot.content)&&xu(ot.content)})},bi=function(I){const ie=O?O(I):null;return typeof ie!="string"||$t(ie)!=="form"?!1:typeof I.nodeName!="string"||typeof I.textContent!="string"||typeof I.removeChild!="function"||I.attributes!==E(I)||typeof I.removeAttribute!="function"||typeof I.removeAttributeNode!="function"||typeof I.getAttributeNode!="function"||typeof I.setAttribute!="function"||typeof I.namespaceURI!="string"||typeof I.insertBefore!="function"||typeof I.hasChildNodes!="function"||I.nodeType!==D(I)||I.childNodes!==k(I)},Qr=function(I){if(!D||typeof I!="object"||I===null)return!1;try{return D(I)===dn.documentFragment}catch{return!1}},no=function(I){if(!D||typeof I!="object"||I===null)return!1;try{return typeof D(I)=="number"}catch{return!1}};function Bn(Me,I,ie){Me.length!==0&&Er(Me,Ee=>{Ee.call(t,I,ie,Xr)})}const Y1=function(I,ie){return!!(be&&I.hasChildNodes()&&!no(I.firstElementChild)&&Ut(Im,I.textContent)&&Ut(Im,I.innerHTML)||be&&I.namespaceURI===tn&&II[ie]&&(no(I.firstElementChild)||typeof I.textContent=="string"&&Ut(qI[ie],I.textContent))||I.nodeType===dn.processingInstruction||be&&I.nodeType===dn.comment&&Ut(qm,I.data))},_i=function(I,ie){if(I instanceof RegExp)return Ut(I,ie);if(I instanceof Function){for(var Ee=arguments.length,Pe=new Array(Ee>2?Ee-2:0),We=2;We=0;--ot){const xt=I===Ee?m(We[ot],!0):We[ot];Pe.insertBefore(xt,x(I))}}}return Na(I),!0},Yf=function(I,ie,Ee,Pe){return I.length===0?ie:ie===Ee||ie===Pe?fn(ie):ie},el=function(I,ie){return I===ie||g(I)!==null?!1:(Yr&&yi(I),!0)},Jf=function(I,ie){if(Bn(H.beforeSanitizeElements,I,null),el(I,ie))return!0;if(bi(I))return Na(I),!0;const Ee=$t(W(I));if(M=Yf(H.uponSanitizeElement,M,oe,Ue),Bn(H.uponSanitizeElement,I,{tagName:Ee,allowedTags:M}),el(I,ie))return!0;if(Y1(I,Ee))return Na(I),!0;if(Ae[Ee]||!(se.tagCheck instanceof Function&&se.tagCheck(Ee))&&!M[Ee]){const Pe=J1(I,Ee,ie);return Pe===!1&&(Bn(H.afterSanitizeElements,I,null),el(I,ie))?!0:Pe}if(z(I)===dn.element&&!W1(I)||(Ee==="noscript"||Ee==="noembed"||Ee==="noframes")&&Ut(PI,I.innerHTML))return Na(I),!0;if(Ge&&I.nodeType===dn.text){const Pe=gi(I.textContent);I.textContent!==Pe&&(mo(t.removed,{element:I.cloneNode()}),I.textContent=Pe)}return Bn(H.afterSanitizeElements,I,null),el(I,ie)},Zf=function(I,ie,Ee){if(De[ie]||Wf(ie,I)||Ke&&(ie==="id"||ie==="name")&&(Ee in n||Ee in z1))return!1;const Pe=Y[ie]||se.attributeCheck instanceof Function&&se.attributeCheck(ie,I);return he&&Ut(ue,ie)||Ce&&Ut(V,ie)?!0:Pe?eo[ie]||Ut(A,ho(Ee,ee,""))||(ie==="src"||ie==="xlink:href"||ie==="href")&&I!=="script"&&Em(Ee,"data:")===0&&mi[I]||Re&&!Ut(K,ho(Ee,ee,""))?!0:!Ee:Xf(I)&&_i($e.tagNameCheck,I)&&_i($e.attributeNameCheck,ie,I)||ie==="is"&&$e.allowCustomizedBuiltInElements&&_i($e.tagNameCheck,Ee)},Z1=st({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Xf=function(I){return!Z1[wo(I)]&&Ut(y,I)},X1=function(I,ie,Ee,Pe){if($&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Ee)switch(d.getAttributeType(I,ie)){case"TrustedHTML":return N(Pe);case"TrustedScriptURL":return ne(Pe)}return Pe},Q1=function(I,ie,Ee,Pe){try{return Ee?I.setAttributeNS(Ee,ie,Pe):I.setAttribute(ie,Pe),bi(I)?(Na(I),!1):!0}catch{return br(ie,I),!1}},Qf=function(I,ie){if(Bn(H.beforeSanitizeAttributes,I,null),el(I,ie))return;const Ee=I.attributes;if(!Ee||bi(I))return;Y=Yf(H.uponSanitizeAttribute,Y,ce,rt);const Pe={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Y,forceKeepAttr:void 0};let We=Ee.length;const at=$t(I.nodeName);for(;We--;){const ot=Ee[We],xt=ot.name,bn=ot.namespaceURI,un=ot.value,tl=$t(xt),wu=un;let Yt=xt==="value"?wu:mI(wu),ep=!1;if(Pe.attrName=tl,Pe.attrValue=Yt,Pe.keepAttr=!0,Pe.forceKeepAttr=void 0,Bn(H.uponSanitizeAttribute,I,Pe),Yt=Pe.attrValue,Rt&&(tl==="id"||tl==="name")&&Em(Yt,Pa)!==0&&(br(xt,I,ot),Yt=Pa+Yt,ep=!0),be&&Ut(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Yt)){br(xt,I,ot);continue}if(tl==="attributename"&&Sm(Yt,"href")){br(xt,I,ot);continue}if(!Pe.forceKeepAttr){if(!Pe.keepAttr){br(xt,I,ot);continue}if(!Fe&&Ut(RI,Yt)){br(xt,I,ot);continue}if(Ge&&(Yt=gi(Yt)),!Zf(at,tl,Yt)){br(xt,I,ot);continue}Yt=X1(at,tl,bn,Yt),Yt!==wu&&Q1(I,xt,bn,Yt)&&ep&&Cm(t.removed)}}Bn(H.afterSanitizeAttributes,I,null),el(I,ie)},xi=function(I){let ie=null;const Ee=Gf(I);for(Bn(H.beforeSanitizeShadowDOM,I,null);ie=Ee.nextNode();)if(Bn(H.uponSanitizeShadowNode,ie,null),Jf(ie,I),Qf(ie,I),Qr(ie.content)&&xi(ie.content),z(ie)===dn.element){const Pe=C(ie);Qr(Pe)&&(ku(Pe),xi(Pe))}Bn(H.afterSanitizeShadowDOM,I,null)},ku=function(I){const ie=[{node:I,shadow:null}];for(;ie.length>0;){const Ee=ie.pop();if(Ee.shadow){xi(Ee.shadow);continue}const Pe=Ee.node,We=z(Pe)===dn.element,at=k(Pe);if(at)for(let ot=at.length-1;ot>=0;--ot)ie.push({node:at[ot],shadow:null});if(We){const ot=O?O(Pe):null;if(typeof ot=="string"&&$t(ot)==="template"){const xt=Pe.content;Qr(xt)&&ie.push({node:xt,shadow:null})}}if(We){const ot=C(Pe);Qr(ot)&&ie.push({node:null,shadow:ot},{node:ot,shadow:null})}}};return t.sanitize=function(Me){let I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ie=null,Ee=null,Pe=null,We=null;if(to=!Me,to&&(Me=""),typeof Me!="string"&&!no(Me)&&(Me=_I(Me),typeof Me!="string"))throw Va("dirty is not a string, aborting");if(!t.isSupported)return Me;Be?(M=Ue,Y=rt):_u(I),(H.uponSanitizeElement.length>0||H.uponSanitizeAttribute.length>0)&&(M=fn(M)),H.uponSanitizeAttribute.length>0&&(Y=fn(Y)),t.removed=[];const at=Yr&&typeof Me!="string"&&no(Me);if(at){G1(Me);const bn=W(Me);if(typeof bn=="string"){const un=$t(bn);if(!M[un]||Ae[un])throw hi(Me),Va("root node is forbidden and cannot be sanitized in-place")}if(bi(Me))throw hi(Me),Va("root node is clobbered and cannot be sanitized in-place");try{ku(Me)}catch(un){throw hi(Me),un}}else if(no(Me))ie=Kf(""),Ee=ie.ownerDocument.importNode(Me,!0),Ee.nodeType===dn.element&&Ee.nodeName==="BODY"||Ee.nodeName==="HTML"?ie=Ee:ie.appendChild(Ee),ku(ie);else{if(!Lt&&!Ge&&!Se&&Me.indexOf("<")===-1)return $&&Ve?N(Me):Me;if(ie=Kf(Me),!ie)return Lt?null:Ve?q:""}ie&&St&&Na(ie.firstChild);const ot=at?Me:ie;try{const bn=Gf(ot);for(;Pe=bn.nextNode();)Jf(Pe,ot),Qf(Pe,ot),Qr(Pe.content)&&xi(Pe.content)}catch(bn){throw at&&(hi(Me),Er(t.removed,un=>{un.element&&yi(un.element)})),bn}if(at){let bn=!1;if(Er(t.removed,un=>{un.element&&(un.element===Me&&(bn=!0),yi(un.element))}),bn)throw Va("a node selected for removal could not be safely returned; refusing to sanitize in place");return Ge&&xu(Me),Me}if(Lt){if(Ge&&xu(ie),ze)for(We=me.call(ie.ownerDocument);ie.firstChild;)We.appendChild(ie.firstChild);else We=ie;return(Y.shadowroot||Y.shadowrootmode)&&(We=Te.call(a,We,!0)),We}let xt=Se?ie.outerHTML:ie.innerHTML;return Se&&M["!doctype"]&&ie.ownerDocument&&ie.ownerDocument.doctype&&ie.ownerDocument.doctype.name&&Ut(OI,ie.ownerDocument.doctype.name)&&(xt=" +`+xt),Ge&&(xt=gi(xt)),$&&Ve?N(xt):xt},t.setConfig=function(){let Me=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};_u(Me),Be=!0,Ue=M,rt=Y},t.clearConfig=function(){Xr=null,Be=!1,Ue=null,rt=null,$=J,q=""},t.isValidAttribute=function(Me,I,ie){Xr||_u({});const Ee=$t(Me),Pe=$t(I);return Zf(Ee,Pe,ie)},t.addHook=function(Me,I){typeof I=="function"&&an(H,Me)&&mo(H[Me],I)},t.removeHook=function(Me,I){if(an(H,Me)){if(I!==void 0){const ie=pI(H[Me],I);return ie===-1?void 0:vI(H[Me],ie,1)[0]}return Cm(H[Me])}},t.removeHooks=function(Me){an(H,Me)&&(H[Me]=[])},t.removeAllHooks=function(){H=Nm()},t}var BI=w1();const FI=["http","https","mailto","tel"],VI=/[\x00-\x20\x7f]+/g,zI=/^([a-z][a-z0-9+.-]*):/i;function $1(e){if(e==null)return!1;const t=e.replace(VI,"");if(t==="")return!1;const n=zI.exec(t);if(n)return FI.includes(n[1].toLowerCase());try{return new URL(t,"https://admin.invalid/"),!0}catch{return!1}}const jI=["script","style","template","noscript","iframe","frame","frameset","object","embed","applet","svg","math","title","head","meta","link","base"],C1=Object.freeze({ALLOWED_TAGS:[...g1],ALLOWED_ATTR:["href"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ADD_FORBID_CONTENTS:[...jI],KEEP_CONTENT:!0,RETURN_TRUSTED_TYPE:!1}),UI='

a - + +

diff --git a/modules/cabana/README.md b/modules/cabana/README.md index a93dd2d..0699965 100644 --- a/modules/cabana/README.md +++ b/modules/cabana/README.md @@ -46,6 +46,7 @@ Use cases: - Preset fields: `preset` on a `type: text` or `type: mltext` field (a source field name, or a mapping with `field` and `type`, `slug` or `exact`) makes the field follow another text or mltext field of the same form on the create screen until the administrator edits it, per locale for an mltext pair. The schema reports it as `preset` (`cabana.FieldPreset`); the server does not fill the field. - Server-rendered partials: `headerPartial: ` in `config_list.yaml` (a strip above the list) and `type: partial` with `path: ` in `fields.yaml` render the template `{ConfigDir}/_.htm` with `html/template` against a view model from the controller's `pact.AdminPartialData`. The result reaches the SPA as an allowlisted node tree, never as an HTML string. A missing or unparsable template, a free-form path or a controller without `pact.AdminPartialData` fails boot. - Date pickers: a `type: datepicker` field in `fields.yaml` edits a date (`mode: date`, a `lagoon.Date` column), a date and time (`mode: datetime`, the default, a `time.Time` column stored in UTC) or a time of day (`mode: time`, a `lagoon.TimeOfDay` column); pointers to the three types make the value optional. It accepts WinterCMS's `mode`, `format` (a PHP `date()` format, served also as `displayFormat` in the SPA's tokens), `minDate`, `maxDate`, `yearRange`, `firstDay`, `twelveHour` and `ignoreTimezone`; any other key, a format letter with no equivalent, bounds on `mode: time`, `ignoreTimezone` outside `mode: datetime` or a column whose Go type does not match the mode fails boot. The save rechecks `minDate` and `maxDate` on the calendar date and answers 422 on the field. List columns take `type: date` and `type: time` for these columns; when `type` is omitted, a `time.Time` column is compiled as `datetime`, a `lagoon.Date` column as `date` and a `lagoon.TimeOfDay` column as `time`. A struct column that implements `sql.Scanner` or `driver.Valuer` is never taken for a relation. +- Money fields: a `type: money` field in `fields.yaml` edits an exact decimal amount that travels as a decimal string with a dot and at most `scale` (2 to 4, default 4) fraction digits, or null; the server never parses it into a float, never rounds it and never truncates it, and fills the accepted string into a string column or a type with its own `sql.Scanner` and `driver.Valuer` unchanged. A field declares exactly one of `currency` (an ISO 4217 code) or `currencyFrom` (a sibling string column holding the code) and may declare `max` (the column ceiling); two sources, none, a scale outside 2..4, a max beyond the scale, a column of another type or a currencyFrom that is not a string column fails boot naming the field. A save answers 422 on the field with `backend::lang.money.invalid`, `money.too_precise` (`:scale`) or `money.too_large` (`:max`, compared as scaled digit strings), on controller forms, settings forms and relation forms alike. The schema serves `currency`, `currencyFrom`, `scale` and `max` on the field. - File uploads: a `type: fileupload` field in `fields.yaml` edits an attachOne or attachMany relation the record model declares through `attach.HasRelations` (its `AttachRelations` method) next to `attach.Owner`. The field accepts WinterCMS's `mode` (`image` or `file`), `fileTypes`, `mimeTypes`, `maxFilesize` (megabytes), `maxFiles` (attachMany only), `imageWidth`, `imageHeight`, `thumbOptions` (only `mode`: `auto`, `exact`, `crop` or `fit`), `useCaption` and `prompt`; any other key, an image-mode file type outside jpg, jpeg, png, gif and webp, a name that is not a declared relation or a `maxFilesize` whose file plus 64 KiB of multipart framing exceeds `http.body_limits.upload_bytes` fails boot. Uploads and removals are deferred, as in WinterCMS: the SPA sends a random form session key in the `X-Session-Key` header (`cabana.SessionKeyHeader`) with every file call and with the save, the server keeps the pending work in `deferred_bindings` against that key and the signed-in administrator, and the record's next create or update save applies it inside its transaction. A retry of the same upload may send `X-Upload-Id` so the server returns the already stored file. A save that fails with 422 keeps the pending uploads; another administrator's key matches nothing. The upload route caps the request body at the smaller of `http.body_limits.upload_bytes` and `maxFilesize` plus 64 KiB and answers 413 `payload_too_large` past it; the size, type and image checks run on the server (through `attach.Store`) and answer 422 on the field. A file list (`cabana.FileItem`) carries `url` and `thumb_url` only for a public relation. - Refusals: a lifecycle hook, a relation hook or a bulk, record, toolbar or widget action that returns a `cabana.ForbiddenError` is answered 403 `forbidden` with the error's `Message` and `Details` (a field name to a list of messages), both translated in the request locale; an empty `Message` stays empty. The surrounding transaction is rolled back. Every other error that is not a `cabana.ValidationError` stays the opaque 500, logged on the server. - Singleton settings screens declared with `pact.HasSettings`, read and saved by `cabana.SettingsService`. A settings entry whose `Controller` field is set links to that admin controller instead: start-up fails when it also declares a model, form or model factory, or names an unknown controller; `GET /settings` lists it, with its `controller`, only to administrators who pass its permissions and may open the controller; and the singleton settings endpoints answer 404 for its code. @@ -250,7 +251,7 @@ func (p *Plugin) AdminFS() fs.FS { return adminFS } | `cabana.AdminRecordAction` | Swag annotation of the record action route. | | `cabana.ExecuteList` | Runs an allowlisted, paginated list query for a controller. | | `cabana.RelationService` | Linked, candidate, link and unlink operations of relation managers, child create, show, update and delete (`CreateChild`, `ShowChild`, `UpdateChild`, `DeleteChildren`) and pivot values (`ShowPivot`, `UpdatePivot`); its `SessionKey` makes record id 0 the record being created in that session. | -| `cabana.SettingsService` | Reads and transactionally updates singleton settings rows. | +| `cabana.SettingsService` | Reads and transactionally updates singleton settings rows; its `Tr` translator localizes the Put's money 422 messages. | | `cabana.FieldRelationProvider` / `cabana.FieldRelationContract` | Controller-supplied bindings for `type: relation` form fields. `WritableForeignKey` on a belongsTo contract makes a protected foreign key writable through that field. | | `cabana.RelationLock` | The related ids of one relation field the requesting administrator may not add or remove, and the message of the 403. | | `cabana.RelationLockProvider` | Controller capability that returns the `cabana.RelationLock` of a relation field per request; enforced on create and update. | diff --git a/modules/cabana/crud.go b/modules/cabana/crud.go index 5a970ae..9792e08 100644 --- a/modules/cabana/crud.go +++ b/modules/cabana/crud.go @@ -619,6 +619,11 @@ func (s CRUDService) save(ctx context.Context, cc *CompiledController, id any, i if err := checkRichEditorValues(cc, in.Body, op); err != nil { return RecordResult{}, err } + // D-07: a money value is an exact decimal string within the field's + // scale and max, or null; anything else is a 422 on the field. + if err := checkMoneyValues(ctx, s.tr, cc, in.Body, op); err != nil { + return RecordResult{}, err + } // D-07: repeater rows are decoded in place (only nested keys, coerced // scalars, per-row required, row bounds) before the projection, which // lets a repeater's list through. @@ -1270,7 +1275,7 @@ func modelColumns(model any) map[string]struct{} { func scalarFormField(typ string) bool { switch typ { case "text", "textarea", "number", "checkbox", "switch", "dropdown", "datepicker", - "markdown", "mltext", "mltextarea", "mlmarkdown", "richeditor": + "markdown", "mltext", "mltextarea", "mlmarkdown", "richeditor", moneyType: return true default: return false diff --git a/modules/cabana/field_money.go b/modules/cabana/field_money.go new file mode 100644 index 0000000..9fed136 --- /dev/null +++ b/modules/cabana/field_money.go @@ -0,0 +1,327 @@ +package cabana + +import ( + "context" + "database/sql" + "database/sql/driver" + "fmt" + "reflect" + "strings" + + "git.golem15.com/golem15/summercms/modules/phrasebook" + "git.golem15.com/golem15/summercms/modules/towel" + "github.com/goccy/go-yaml/ast" +) + +// moneyType is the core exact-decimal amount field type (Phase 18 D-07 with +// the amended D-09). Its value travels as a decimal string with a dot and at +// most Scale fraction digits ("39.8400", "85.4193"), or null. The server +// never parses it into a float, never rounds it and never truncates it: the +// accepted string is handed to the model column unchanged (a string column, +// or a type with its own sql.Scanner and driver.Valuer). +const moneyType = "money" + +// Phrase keys of the money field's save errors and its suffix text +// (backend::lang.money.*). +const ( + msgMoneyInvalid = "backend::lang.money.invalid" + msgMoneyTooPrecise = "backend::lang.money.too_precise" + msgMoneyTooLarge = "backend::lang.money.too_large" +) + +// moneyDefaultScale is the fraction digits a money field keeps when +// fields.yaml names no scale: four, the GAAP precision of the amount columns +// the field edits. +const moneyDefaultScale = 4 + +// moneyKeys are valid only on `type: money`. +var moneyKeys = []string{"currency", "currencyFrom", "scale", "max"} + +// moneyRefusedKeys are generic field keys with no meaning on a money field. +var moneyRefusedKeys = []string{"options", "emptyOption", "nameFrom", "dependsOn", "preset"} + +var ( + sqlScannerType = reflect.TypeOf((*sql.Scanner)(nil)).Elem() + driverValuerType = reflect.TypeOf((*driver.Valuer)(nil)).Elem() +) + +// compileMoneyKeys decodes the keys of a `type: money` field: exactly one +// of currency (a three-letter upper-case ISO 4217 code) or currencyFrom (a +// sibling column of the model that holds the code), scale (2 to 4, default +// 4) and the optional max (the column ceiling, a decimal with at most scale +// places). The keys are refused on every other type. +func compileMoneyKeys(typ string, values map[string]ast.Node, field *FormField) error { + if typ != moneyType { + for _, key := range moneyKeys { + if _, ok := values[key]; ok { + return fmt.Errorf("%s is only valid on type: money", key) + } + } + return nil + } + for _, key := range moneyRefusedKeys { + if _, ok := values[key]; ok { + return fmt.Errorf("%s is not valid on type: money", key) + } + } + if node, ok := values["currency"]; ok { + code, err := nodeString(node) + if err != nil || !isoCurrencyCode(code) { + return fmt.Errorf("currency %q must be a three-letter upper-case ISO 4217 code", nodeText(node)) + } + field.Currency = code + } + if node, ok := values["currencyFrom"]; ok { + name, err := nodeString(node) + if err != nil || !identifier(name) { + return fmt.Errorf("currencyFrom %q is not a column name", nodeText(node)) + } + field.CurrencyFrom = name + } + if (field.Currency == "") == (field.CurrencyFrom == "") { + return fmt.Errorf("money needs exactly one of currency or currencyFrom") + } + field.Scale = moneyDefaultScale + if node, ok := values["scale"]; ok { + n, err := nodeInt(node) + if err != nil || n < 2 || n > 4 { + return fmt.Errorf("scale %q must be 2, 3 or 4 on type: money", nodeText(node)) + } + field.Scale = int(n) + } + if node, ok := values["max"]; ok { + text, err := nodeString(node) + if err != nil { + text = nodeText(node) + } + text = strings.TrimSpace(text) + whole, frac, ok := decimalParts(text) + if !ok || strings.HasPrefix(text, "-") || whole == "" { + return fmt.Errorf("max %q must be a decimal such as 999999.9999", text) + } + if len(frac) > field.Scale { + return fmt.Errorf("max %q has more than %d decimal places", text, field.Scale) + } + field.Max = text + } + return nil +} + +// isoCurrencyCode reports whether s is three upper-case ASCII letters. +func isoCurrencyCode(s string) bool { + if len(s) != 3 { + return false + } + for i := 0; i < 3; i++ { + if s[i] < 'A' || s[i] > 'Z' { + return false + } + } + return true +} + +// decimalParts splits a decimal string into its integer and fraction digit +// runs: an optional leading minus, one or more digits, and optionally a dot +// followed by one or more digits. Anything else (an exponent, a comma, a +// space, a sign elsewhere, a lone dot) is not a decimal. +func decimalParts(s string) (whole, frac string, ok bool) { + s = strings.TrimPrefix(s, "-") + if s == "" { + return "", "", false + } + whole, frac, dotted := strings.Cut(s, ".") + if !allDigits(whole) || (dotted && !allDigits(frac)) { + return "", "", false + } + return whole, frac, true +} + +// allDigits reports whether s is one or more ASCII digits. +func allDigits(s string) bool { + if s == "" { + return false + } + for i := 0; i < len(s); i++ { + if s[i] < '0' || s[i] > '9' { + return false + } + } + return true +} + +// validateMoneyValue checks one submitted money value against the field's +// scale and max: null is accepted (stored as NULL or the column type's zero +// value); a string must match the decimal grammar (money.invalid), carry at +// most scale fraction digits (money.too_precise, :scale) and, when the field +// declares max, not exceed it in absolute magnitude (money.too_large, :max). +// Magnitudes are compared as scaled digit strings, never as floats, and the +// value is never rounded or truncated. Anything that is not a string or null +// is money.invalid. It returns the phrase key and its placeholders of the +// first failure, or "" when the value is accepted. +func validateMoneyValue(value any, scale int, max string) (string, map[string]string) { + if value == nil { + return "", nil + } + text, ok := value.(string) + if !ok { + return msgMoneyInvalid, nil + } + whole, frac, ok := decimalParts(text) + if !ok { + return msgMoneyInvalid, nil + } + if len(frac) > scale { + return msgMoneyTooPrecise, map[string]string{"scale": fmt.Sprint(scale)} + } + if max != "" { + maxWhole, maxFrac, _ := decimalParts(max) + if compareScaled(whole, frac, maxWhole, maxFrac, scale) > 0 { + return msgMoneyTooLarge, map[string]string{"max": max} + } + } + return "", nil +} + +// compareScaled compares two absolute decimal magnitudes given as digit runs, +// both padded to scale fraction digits, without any numeric conversion. It +// returns -1, 0 or 1. +func compareScaled(whole, frac, otherWhole, otherFrac string, scale int) int { + a := strings.TrimLeft(whole, "0") + padDigits(frac, scale) + b := strings.TrimLeft(otherWhole, "0") + padDigits(otherFrac, scale) + if len(a) != len(b) { + if len(a) < len(b) { + return -1 + } + return 1 + } + return strings.Compare(a, b) +} + +// padDigits right-pads a fraction digit run with zeros to scale digits. +func padDigits(frac string, scale int) string { + if len(frac) >= scale { + return frac[:scale] + } + return frac + strings.Repeat("0", scale-len(frac)) +} + +// checkMoneyType refuses a money field whose model column cannot hold the +// exact decimal string: the column must be a string (or *string), or a +// struct type whose pointer implements sql.Scanner and that implements +// driver.Valuer (such as a plugin's scale-4 amount type). A currencyFrom +// must name a string column of the same model. +func checkMoneyType(model any, field FormField) error { + sf, ok := structFieldByColumn(model, field.Name) + if !ok { + return fmt.Errorf("field %s is not a model column", field.Name) + } + if !moneyColumnType(sf.Type) { + return fmt.Errorf("field %s: money needs a string column or a sql.Scanner and driver.Valuer type, found %s", field.Name, sf.Type) + } + if field.CurrencyFrom != "" { + cf, ok := structFieldByColumn(model, field.CurrencyFrom) + if !ok || !stringColumnType(cf.Type) { + return fmt.Errorf("field %s: currencyFrom %s is not a string column of the model", field.Name, field.CurrencyFrom) + } + } + return nil +} + +// moneyColumnType reports whether t can receive a money value unchanged. +func moneyColumnType(t reflect.Type) bool { + if stringColumnType(t) { + return true + } + if t.Kind() == reflect.Pointer { + t = t.Elem() + } + if t.Kind() != reflect.Struct { + return false + } + ptr := reflect.PointerTo(t) + return ptr.Implements(sqlScannerType) && (t.Implements(driverValuerType) || ptr.Implements(driverValuerType)) +} + +// stringColumnType reports whether t is string or *string. +func stringColumnType(t reflect.Type) bool { + if t.Kind() == reflect.Pointer { + t = t.Elem() + } + return t.Kind() == reflect.String +} + +// compileMoneyFields checks every money field of the controller's form +// against its model column's Go type at boot. +func compileMoneyFields(pluginID string, cc *CompiledController) error { + if cc == nil || cc.Form == nil { + return nil + } + var model any + for _, field := range cc.Form.Fields { + if field.Type != moneyType { + continue + } + if model == nil { + proto, err := newWritableModel(cc) + if err != nil { + return bootErr(pluginID, controllerID(cc), cc.Form.fieldsPath, fmt.Errorf("field %s: type money needs a fillable model", field.Name)) + } + model = proto + } + if err := checkMoneyType(model, field); err != nil { + return bootErr(pluginID, controllerID(cc), cc.Form.fieldsPath, err) + } + } + return nil +} + +// moneyDetails validates every money field of fields that is present in +// body and that allows (field name) accepts, and returns the 422 details +// per field in the request locale; nil when every value is accepted. +func moneyDetails(ctx context.Context, tr *phrasebook.Translator, fields []FormField, body map[string]any, allows func(string) bool) map[string]any { + var details map[string]any + var locCtx context.Context + for _, field := range fields { + if field.Type != moneyType || (allows != nil && !allows(field.Name)) { + continue + } + value, present := body[field.Name] + if !present { + continue + } + key, params := validateMoneyValue(value, field.Scale, field.Max) + if key == "" { + continue + } + if locCtx == nil { + locCtx = towel.WithLocale(ctx, schemaLocale(ctx, tr)) + } + if details == nil { + details = map[string]any{} + } + details[field.Name] = []string{moneyMessage(locCtx, tr, key, params)} + } + return details +} + +// moneyMessage resolves a money phrase key with its placeholders. +func moneyMessage(ctx context.Context, tr *phrasebook.Translator, key string, params map[string]string) string { + if tr == nil { + return key + } + return tr.Get(ctx, key, params) +} + +// checkMoneyValues refuses, before the save transaction, a submitted money +// value that does not fit its field: a 422 on the field with the money.* +// key, so the value never reaches Fill rounded, truncated or malformed. +func checkMoneyValues(ctx context.Context, tr *phrasebook.Translator, cc *CompiledController, body map[string]any, op string) error { + if cc == nil || cc.Form == nil { + return nil + } + details := moneyDetails(ctx, tr, cc.Form.Fields, body, func(name string) bool { return contextAllows(cc, name, op) }) + if len(details) > 0 { + return &ValidationError{Details: details} + } + return nil +} diff --git a/modules/cabana/form_schema.go b/modules/cabana/form_schema.go index 13a8b25..64f6e08 100644 --- a/modules/cabana/form_schema.go +++ b/modules/cabana/form_schema.go @@ -27,7 +27,7 @@ var ( "widget": {}, "partial": {}, "fileupload": {}, "datepicker": {}, "password": {}, "permissioneditor": {}, "markdown": {}, "mltext": {}, "mltextarea": {}, "mlmarkdown": {}, - "richeditor": {}, "repeater": {}, + "richeditor": {}, "repeater": {}, "money": {}, } formSpans = map[string]struct{}{ "left": {}, "right": {}, "full": {}, "auto": {}, "row": {}, @@ -48,6 +48,7 @@ var ( "preset": {}, "dependsOn": {}, "form": {}, "maxItems": {}, "minItems": {}, "titleFrom": {}, "groups": {}, "style": {}, + "currency": {}, "currencyFrom": {}, "scale": {}, "max": {}, } // widgetKeys are valid only on `type: widget` (D-06). widgetKeys = []string{"widget", "action", "fill"} @@ -632,6 +633,9 @@ func compileFieldNode(name string, node ast.Node, types *fieldTypeRegistry) (For if err := compileDatepickerKeys(typ, values, &field); err != nil { return FormField{}, err } + if err := compileMoneyKeys(typ, values, &field); err != nil { + return FormField{}, err + } if err := compilePresetKey(typ, values, &field); err != nil { return FormField{}, err } diff --git a/modules/cabana/http.go b/modules/cabana/http.go index 285136d..dfc470a 100644 --- a/modules/cabana/http.go +++ b/modules/cabana/http.go @@ -527,7 +527,7 @@ func (s *service) settingsGet(w http.ResponseWriter, r *http.Request) { WriteError(w, http.StatusInternalServerError, "error", msgServerError) return } - result, err := (SettingsService{DB: db}).Get(r.Context(), setting) + result, err := (SettingsService{DB: db, Tr: s.translator()}).Get(r.Context(), setting) if err != nil { writeCRUDError(w, err) return @@ -548,7 +548,7 @@ func (s *service) settingsPut(w http.ResponseWriter, r *http.Request) { WriteError(w, http.StatusInternalServerError, "error", msgServerError) return } - result, err := (SettingsService{DB: db}).Put(r.Context(), setting, body) + result, err := (SettingsService{DB: db, Tr: s.translator()}).Put(r.Context(), setting, body) if err != nil { writeCRUDError(w, err) return diff --git a/modules/cabana/payments_smoke_test.go b/modules/cabana/payments_smoke_test.go new file mode 100644 index 0000000..1bac2b4 --- /dev/null +++ b/modules/cabana/payments_smoke_test.go @@ -0,0 +1,403 @@ +package cabana_test + +import ( + "database/sql/driver" + "encoding/json" + "fmt" + "io/fs" + "net/http" + "os" + "path/filepath" + "strings" + "testing" + "testing/fstest" + "time" + + "git.golem15.com/golem15/summercms/modules/backpack" + "git.golem15.com/golem15/summercms/modules/cabana" + "git.golem15.com/golem15/summercms/modules/compass" + "git.golem15.com/golem15/summercms/modules/lagoon" + "git.golem15.com/golem15/summercms/modules/pact" + "git.golem15.com/golem15/summercms/modules/party" + "git.golem15.com/golem15/summercms/modules/phrasebook" + "git.golem15.com/golem15/summercms/modules/surf" + "gorm.io/gorm" +) + +// paymentsDir is the neutral acme.payments fixture plugin tree of the Phase +// 18 cabana features: the exact-decimal money field and column. No +// application names appear in framework tests. +const paymentsDir = "testdata/payments" + +// rawAmount is the fixture's amount column type: a sql.Scanner and +// driver.Valuer that keeps the decimal string exactly as the database or the +// save handed it, so a test can assert that cabana never rewrote it. +type rawAmount struct { + text string + valid bool +} + +// Scan keeps the text of a numeric column; a float would mean the driver +// rounded the value, so it is refused. +func (a *rawAmount) Scan(src any) error { + switch v := src.(type) { + case nil: + *a = rawAmount{} + case string: + *a = rawAmount{text: v, valid: true} + case []byte: + *a = rawAmount{text: string(v), valid: true} + default: + return fmt.Errorf("rawAmount: cannot scan %T", src) + } + return nil +} + +// Value writes the text back unchanged, or NULL. +func (a rawAmount) Value() (driver.Value, error) { + if !a.valid { + return nil, nil + } + return a.text, nil +} + +// MarshalJSON serves the stored text as a JSON string, or null. +func (a rawAmount) MarshalJSON() ([]byte, error) { + if !a.valid { + return []byte("null"), nil + } + return json.Marshal(a.text) +} + +// paymentsInvoice is the fixture model of the invoices controller: a +// currency code column and two money columns, one following the currency +// column and one with a fixed currency. +type paymentsInvoice struct { + ID uint `gorm:"column:id;primaryKey"` + Number string `gorm:"column:number"` + Currency string `gorm:"column:currency"` + Total rawAmount `gorm:"column:total;type:numeric(12,4)"` + Fee rawAmount `gorm:"column:fee;type:numeric(10,4)"` +} + +func (paymentsInvoice) TableName() string { return "cabana_payments_invoices" } +func (paymentsInvoice) Fillable() []string { + return []string{"number", "currency", "total", "fee"} +} +func (paymentsInvoice) Rules() map[string]string { return map[string]string{"number": "required"} } + +// paymentsModels are the fixture tables, dropped and recreated per env. +func paymentsModels() []any { + return []any{&paymentsInvoice{}} +} + +// paymentsPlugin registers the invoices controller. +type paymentsPlugin struct{} + +func (paymentsPlugin) ID() string { return "acme.payments" } +func (paymentsPlugin) Requires() []string { return nil } +func (paymentsPlugin) Register(*backpack.App) error { return nil } +func (paymentsPlugin) Boot(*backpack.App) error { return nil } +func (paymentsPlugin) AdminFS() fs.FS { return os.DirFS(paymentsDir) } +func (paymentsPlugin) AdminControllers() []pact.AdminController { + return []pact.AdminController{paymentsInvoices{}} +} +func (paymentsPlugin) Permissions() []pact.Permission { + return []pact.Permission{{Code: "acme.payments.access", Roles: []string{"developer"}}} +} + +// paymentsInvoices is the invoices controller. +type paymentsInvoices struct{} + +func (paymentsInvoices) ID() string { return "acme.payments.invoices" } +func (paymentsInvoices) ModelName() string { return "Invoice" } +func (paymentsInvoices) ConfigDir() string { return "controllers/invoices" } +func (paymentsInvoices) RequiredPermissions() []string { return []string{"acme.payments.access"} } +func (paymentsInvoices) NewRecord() any { return &paymentsInvoice{} } + +// paymentsAssemble boots plugins on the test database with the fixture's +// config: the assembled admin handler, or the boot error. +func paymentsAssemble(t *testing.T, gdb *gorm.DB, plugins []party.Plugin) (http.Handler, error) { + t.Helper() + dir := t.TempDir() + if err := os.WriteFile(filepath.Join(dir, "app.yaml"), []byte("name: cabana-payments\nlocale: en\nfallback_locale: en\n"), 0o644); err != nil { + t.Fatal(err) + } + cfg, err := compass.Open(compass.Options{Dir: dir, Environ: []string{"SUMMER_ENV=development", "SUMMER_ADMIN__JWT__SECRET=" + adminTestSecret}}) + if err != nil { + t.Fatal(err) + } + for key, value := range map[string]any{"http.body_limits.default_bytes": 1048576, "http.body_limits.upload_bytes": 1048576} { + if err := cfg.Set(key, value); err != nil { + t.Fatal(err) + } + } + app := backpack.New(cfg) + if err := lagoon.Publish(app, adminSQL, gdb); err != nil { + t.Fatal(err) + } + if err := phrasebook.Activate(app, plugins); err != nil { + t.Fatal(err) + } + return surf.Assemble(app, plugins) +} + +// newPaymentsEnv boots the acme.payments fixture alone on Postgres and signs +// an administrator in. +func newPaymentsEnv(t *testing.T) *conformEnv { + t.Helper() + gdb := adminGorm(t) + if err := gdb.Migrator().DropTable(paymentsModels()...); err != nil { + t.Fatal(err) + } + if err := gdb.AutoMigrate(paymentsModels()...); err != nil { + t.Fatal(err) + } + login := fmt.Sprintf("payments-%d", time.Now().UnixNano()) + insertAdmin(t, gdb, login, login+"@example.test", adminTestPassword, true, false) + h, err := paymentsAssemble(t, gdb, []party.Plugin{paymentsPlugin{}}) + if err != nil { + t.Fatal(err) + } + env := &conformEnv{h: h, db: gdb, login: login} + if rec := env.send(t, http.MethodPost, "/auth/login", map[string]string{"login": login, "password": adminTestPassword}, false); rec.Code != http.StatusOK { + t.Fatalf("login status=%d body=%s", rec.Code, rec.Body.String()) + } + return env +} + +// moneyFormFS is a one-controller plugin tree whose invoice fields.yaml is +// the given text, for compile-only checks of the money keys. +func moneyFormFS(fields string) fstest.MapFS { + return fstest.MapFS{ + "controllers/invoices/config_form.yaml": {Data: []byte("name: invoices\nform: ~/plugins/acme/payments/models/invoice/fields.yaml\nmodelClass: Invoice\n")}, + "models/invoice/fields.yaml": {Data: []byte(fields)}, + } +} + +// TestMoneyFieldCompile checks the money field's boot gates without a +// database: exactly one currency source, a scale of 2 to 4 (default 4), an +// ISO code, a max within the scale, and the keys refused elsewhere. +func TestMoneyFieldCompile(t *testing.T) { + schema, err := cabana.CompileForm("acme.payments", paymentsInvoices{}, moneyFormFS(`fields: + currency: + type: text + total: + type: money + currencyFrom: currency + max: "999999.9999" + fee: + type: money + currency: EUR + scale: 2 +`)) + if err != nil { + t.Fatal(err) + } + byName := map[string]cabana.FormField{} + for _, field := range schema.Fields { + byName[field.Name] = field + } + if total := byName["total"]; total.Type != "money" || total.CurrencyFrom != "currency" || total.Currency != "" || total.Scale != 4 || total.Max != "999999.9999" { + t.Fatalf("total = %+v", total) + } + if fee := byName["fee"]; fee.Currency != "EUR" || fee.CurrencyFrom != "" || fee.Scale != 2 || fee.Max != "" { + t.Fatalf("fee = %+v", fee) + } + raw, err := json.Marshal(byName["total"]) + if err != nil { + t.Fatal(err) + } + for _, want := range []string{`"currencyFrom":"currency"`, `"scale":4`, `"max":"999999.9999"`} { + if !strings.Contains(string(raw), want) { + t.Fatalf("schema JSON lacks %s: %s", want, raw) + } + } + + refused := map[string]string{ + "both sources": `fields: + currency: + type: text + total: + type: money + currency: PLN + currencyFrom: currency +`, + "no source": `fields: + total: + type: money +`, + "scale 5": `fields: + total: + type: money + currency: PLN + scale: 5 +`, + "scale 1": `fields: + total: + type: money + currency: PLN + scale: 1 +`, + "lower-case code": `fields: + total: + type: money + currency: pln +`, + "max beyond scale": `fields: + total: + type: money + currency: PLN + scale: 2 + max: "10.001" +`, + "max not a decimal": `fields: + total: + type: money + currency: PLN + max: "1,5" +`, + "options on money": `fields: + total: + type: money + currency: PLN + options: {a: A} +`, + "currency on text": `fields: + total: + type: text + currency: PLN +`, + } + for name, fields := range refused { + t.Run(name, func(t *testing.T) { + _, err := cabana.CompileForm("acme.payments", paymentsInvoices{}, moneyFormFS(fields)) + if err == nil { + t.Fatalf("compiled") + } + if !strings.Contains(err.Error(), "field total") { + t.Fatalf("error does not name the field: %v", err) + } + }) + } +} + +// invoiceRecord is a create or update answer of the invoices controller. +type invoiceRecord struct { + Data map[string]any `json:"data"` +} + +// TestMoneyFieldSmoke checks the money save path end to end on Postgres: an +// accepted decimal is stored byte for byte and served back unchanged, and a +// too-precise, malformed or too-large value is a 422 on the field with the +// money.* message (Polish, the request locale of the env). +func TestMoneyFieldSmoke(t *testing.T) { + e := newPaymentsEnv(t) + rec := e.send(t, http.MethodPost, "/acme/payments/invoices", map[string]any{"number": "INV-1", "currency": "PLN", "total": "85.4193", "fee": "1.50"}, true) + if rec.Code != http.StatusCreated { + t.Fatalf("create status=%d body=%s", rec.Code, rec.Body.String()) + } + id := dataID(t, rec.Body.Bytes()) + var stored paymentsInvoice + if err := e.db.First(&stored, id).Error; err != nil { + t.Fatal(err) + } + if !stored.Total.valid || stored.Total.text != "85.4193" { + t.Fatalf("stored total = %+v, want the exact string 85.4193", stored.Total) + } + if !stored.Fee.valid || stored.Fee.text != "1.5000" { + t.Fatalf("stored fee = %+v, want 1.5000 (numeric(10,4) pads the text; the input was not changed by cabana)", stored.Fee) + } + show := e.send(t, http.MethodGet, fmt.Sprintf("/acme/payments/invoices/%d", id), nil, true) + if show.Code != http.StatusOK { + t.Fatalf("show status=%d body=%s", show.Code, show.Body.String()) + } + var record invoiceRecord + if err := json.Unmarshal(show.Body.Bytes(), &record); err != nil { + t.Fatal(err) + } + if record.Data["total"] != "85.4193" { + t.Fatalf("served total = %#v, want the string 85.4193", record.Data["total"]) + } + + // An untouched value sent back is re-saved byte-identical. + rec = e.send(t, http.MethodPut, fmt.Sprintf("/acme/payments/invoices/%d", id), map[string]any{"number": "INV-1", "currency": "PLN", "total": "85.4193"}, true) + if rec.Code != http.StatusOK { + t.Fatalf("update status=%d body=%s", rec.Code, rec.Body.String()) + } + if err := e.db.First(&stored, id).Error; err != nil { + t.Fatal(err) + } + if stored.Total.text != "85.4193" { + t.Fatalf("re-saved total = %+v", stored.Total) + } + + expect422 := func(t *testing.T, body map[string]any, field, message string) { + t.Helper() + rec := e.send(t, http.MethodPost, "/acme/payments/invoices", body, true) + if rec.Code != http.StatusUnprocessableEntity { + t.Fatalf("want 422 on %s, status=%d body=%s", field, rec.Code, rec.Body.String()) + } + var out struct { + Error struct { + Details map[string][]string `json:"details"` + } `json:"error"` + } + if err := json.Unmarshal(rec.Body.Bytes(), &out); err != nil { + t.Fatalf("422 body: %v\n%s", err, rec.Body.String()) + } + msgs := out.Error.Details[field] + if len(msgs) != 1 || !strings.Contains(msgs[0], message) { + t.Fatalf("422 details on %s = %v, want %q; body=%s", field, msgs, message, rec.Body.String()) + } + } + expect422(t, map[string]any{"number": "INV-2", "currency": "PLN", "total": "12.34567"}, "total", "najwyżej 4 miejsc") + expect422(t, map[string]any{"number": "INV-2", "currency": "PLN", "total": "1,5"}, "total", "To nie jest kwota") + expect422(t, map[string]any{"number": "INV-2", "currency": "PLN", "total": "1000000.0000"}, "total", "najwyżej 999999.9999") + expect422(t, map[string]any{"number": "INV-2", "currency": "PLN", "total": 85.4193}, "total", "To nie jest kwota") + expect422(t, map[string]any{"number": "INV-2", "currency": "PLN", "fee": "1.234"}, "fee", "najwyżej 2 miejsc") + + // Exactly max is accepted; null clears. + rec = e.send(t, http.MethodPost, "/acme/payments/invoices", map[string]any{"number": "INV-3", "currency": "PLN", "total": "999999.9999", "fee": nil}, true) + if rec.Code != http.StatusCreated { + t.Fatalf("max status=%d body=%s", rec.Code, rec.Body.String()) + } + var capped paymentsInvoice + if err := e.db.First(&capped, dataID(t, rec.Body.Bytes())).Error; err != nil { + t.Fatal(err) + } + if capped.Total.text != "999999.9999" || capped.Fee.valid { + t.Fatalf("stored = %+v", capped) + } + + // A boot whose money column cannot hold the string fails naming the field. + t.Run("column type", func(t *testing.T) { + _, err := paymentsAssemble(t, e.db, []party.Plugin{moneyBadColumnPlugin{}}) + if err == nil || !strings.Contains(err.Error(), "field total") { + t.Fatalf("boot with an int money column: %v", err) + } + }) +} + +// moneyBadInvoice has an integer total: not a money column. +type moneyBadInvoice struct { + ID uint `gorm:"column:id;primaryKey"` + Number string `gorm:"column:number"` + Currency string `gorm:"column:currency"` + Total int64 `gorm:"column:total"` + Fee string `gorm:"column:fee"` +} + +func (moneyBadInvoice) TableName() string { return "cabana_payments_bad" } +func (moneyBadInvoice) Fillable() []string { return []string{"number", "currency", "total", "fee"} } +func (moneyBadInvoice) Rules() map[string]string { return map[string]string{} } + +type moneyBadColumnPlugin struct{ paymentsPlugin } + +func (moneyBadColumnPlugin) AdminControllers() []pact.AdminController { + return []pact.AdminController{moneyBadInvoices{}} +} + +type moneyBadInvoices struct{ paymentsInvoices } + +func (moneyBadInvoices) NewRecord() any { return &moneyBadInvoice{} } diff --git a/modules/cabana/registry.go b/modules/cabana/registry.go index 4ddca2a..1b52b29 100644 --- a/modules/cabana/registry.go +++ b/modules/cabana/registry.go @@ -137,6 +137,9 @@ func compileRegistryWithTypes(items []controllerRef, types *fieldTypeRegistry) ( if err := compileDateFields(item.plugin.ID(), compiled); err != nil { return nil, err } + if err := compileMoneyFields(item.plugin.ID(), compiled); err != nil { + return nil, err + } if err := compilePermissionFields(item.plugin.ID(), compiled); err != nil { return nil, err } diff --git a/modules/cabana/relation_child.go b/modules/cabana/relation_child.go index 092af55..bde2c70 100644 --- a/modules/cabana/relation_child.go +++ b/modules/cabana/relation_child.go @@ -100,6 +100,9 @@ func relationQuery(ctx context.Context, tx *gorm.DB, cc *CompiledController, cr // model rules merged with the form's required flags, and the datepicker // bounds. A failure is a 422 ValidationError. func (s RelationService) fillChild(ctx context.Context, tx *gorm.DB, form *CompiledController, model any, body map[string]any, op string) error { + if err := checkMoneyValues(ctx, s.tr, form, body, op); err != nil { + return err + } projected := projectOperation(form, body, op) if err := lagoon.Fill(model, fillAllowed(form, model, op), projected, false); err != nil { var typed *lagoon.FillTypeError diff --git a/modules/cabana/relation_form.go b/modules/cabana/relation_form.go index 14f01e2..0396f5d 100644 --- a/modules/cabana/relation_form.go +++ b/modules/cabana/relation_form.go @@ -203,6 +203,9 @@ func compileRelationForm(pluginID string, ctl pact.AdminController, fsys fs.FS, if err := compileDateFields(pluginID, cc); err != nil { return nil, err } + if err := compileMoneyFields(pluginID, cc); err != nil { + return nil, err + } return cc, nil } if err := checkFormDates(pluginID, cc); err != nil { diff --git a/modules/cabana/repeater_test.go b/modules/cabana/repeater_test.go index d459db2..3c56238 100644 --- a/modules/cabana/repeater_test.go +++ b/modules/cabana/repeater_test.go @@ -244,6 +244,7 @@ func TestRepeaterCompile(t *testing.T) { "partial": " path: summary\n", "permissioneditor": " mode: checkbox\n", "repeater": " form:\n fields:\n a:\n type: text\n", + "money": " currency: PLN\n", } for typ := range formFieldTypes { if repeaterNestedTypes[typ] { diff --git a/modules/cabana/schema_types.go b/modules/cabana/schema_types.go index 4fa5bb4..55f0d53 100644 --- a/modules/cabana/schema_types.go +++ b/modules/cabana/schema_types.go @@ -309,6 +309,18 @@ type FormField struct { TwelveHour bool `json:"twelveHour,omitempty"` // IgnoreTimezone keeps a datetime's wall-clock value with no conversion. IgnoreTimezone bool `json:"ignoreTimezone,omitempty"` + // Currency is the ISO 4217 code a `type: money` field shows as its + // suffix; exactly one of Currency and CurrencyFrom is set. + Currency string `json:"currency,omitempty"` + // CurrencyFrom names the sibling column of the model whose value is the + // money field's currency code; the admin follows that field's value. + CurrencyFrom string `json:"currencyFrom,omitempty"` + // Scale is the most fraction digits a money value may carry, 2 to 4 + // (default 4). A value with more digits is refused, never rounded. + Scale int `json:"scale,omitempty"` + // Max is a money field's column ceiling as a decimal string; a value + // above it in absolute magnitude is a 422 money.too_large. + Max string `json:"max,omitempty"` // FileTypes are the allowed lower-case extensions of a fileupload field. FileTypes []string `json:"fileTypes,omitempty"` // MimeTypes are the allowed MIME patterns (or extensions) of a diff --git a/modules/cabana/settings.go b/modules/cabana/settings.go index a381b43..653c55d 100644 --- a/modules/cabana/settings.go +++ b/modules/cabana/settings.go @@ -12,6 +12,7 @@ import ( "git.golem15.com/golem15/summercms/modules/lagoon" "git.golem15.com/golem15/summercms/modules/pact" + "git.golem15.com/golem15/summercms/modules/phrasebook" "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -33,7 +34,12 @@ type SettingsResult struct { } // SettingsService reads and transactionally updates compiled singleton rows. -type SettingsService struct{ DB *gorm.DB } +// Tr localizes the 422 messages of the settings Put (a money value outside +// its field's scale or max); nil keeps the phrase keys. +type SettingsService struct { + DB *gorm.DB + Tr *phrasebook.Translator +} // compileSettingLink registers a settings entry that opens an admin // controller. It declares no singleton form and no model; the controller ID @@ -115,6 +121,11 @@ func compileSettingWithTypes(pluginID string, item pact.SettingsItem, fsys fs.FS return nil, fmt.Errorf("cabana: setting %s: %w", item.Code, err) } } + if field.Type == moneyType { + if err := checkMoneyType(model, field); err != nil { + return nil, fmt.Errorf("cabana: setting %s: %w", item.Code, err) + } + } writable = append(writable, WritableField{Name: field.Name, FillKey: field.Name}) } return &CompiledSetting{PluginID: pluginID, Item: item, Form: form, Writable: writable}, nil @@ -151,6 +162,9 @@ func (s SettingsService) Put(ctx context.Context, setting *CompiledSetting, body if err := requireSettingInputs(setting, body); err != nil { return SettingsResult{}, err } + if details := moneyDetails(ctx, s.Tr, setting.Form.Fields, body, nil); len(details) > 0 { + return SettingsResult{}, &ValidationError{Details: details} + } var result SettingsResult err := s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error { model, err := newSettingModel(setting) diff --git a/modules/cabana/testdata/payments/controllers/invoices/config_form.yaml b/modules/cabana/testdata/payments/controllers/invoices/config_form.yaml new file mode 100644 index 0000000..879f2e4 --- /dev/null +++ b/modules/cabana/testdata/payments/controllers/invoices/config_form.yaml @@ -0,0 +1,4 @@ +name: New invoice +form: ~/plugins/acme/payments/models/invoice/fields.yaml +modelClass: Invoice +defaultRedirect: acme/payments/invoices diff --git a/modules/cabana/testdata/payments/controllers/invoices/config_list.yaml b/modules/cabana/testdata/payments/controllers/invoices/config_list.yaml new file mode 100644 index 0000000..f0f64ce --- /dev/null +++ b/modules/cabana/testdata/payments/controllers/invoices/config_list.yaml @@ -0,0 +1,7 @@ +list: ~/plugins/acme/payments/models/invoice/columns.yaml +modelClass: Invoice +title: Invoices +recordUrl: acme/payments/invoices/update/:id +recordsPerPage: 20 +toolbar: + buttons: [create] diff --git a/modules/cabana/testdata/payments/models/invoice/columns.yaml b/modules/cabana/testdata/payments/models/invoice/columns.yaml new file mode 100644 index 0000000..b4376fb --- /dev/null +++ b/modules/cabana/testdata/payments/models/invoice/columns.yaml @@ -0,0 +1,6 @@ +columns: + number: + label: Number + searchable: true + currency: + label: Currency diff --git a/modules/cabana/testdata/payments/models/invoice/fields.yaml b/modules/cabana/testdata/payments/models/invoice/fields.yaml new file mode 100644 index 0000000..c8eabca --- /dev/null +++ b/modules/cabana/testdata/payments/models/invoice/fields.yaml @@ -0,0 +1,19 @@ +fields: + number: + label: Number + type: text + required: true + currency: + label: Currency + type: text + total: + label: Total + type: money + currencyFrom: currency + scale: 4 + max: "999999.9999" + fee: + label: Fee + type: money + currency: EUR + scale: 2 diff --git a/modules/phrasebook/backend/lang/en/lang.yaml b/modules/phrasebook/backend/lang/en/lang.yaml index e835eb0..ca0eaff 100644 --- a/modules/phrasebook/backend/lang/en/lang.yaml +++ b/modules/phrasebook/backend/lang/en/lang.yaml @@ -139,6 +139,11 @@ datepicker: clear: Clear value prev_month: Previous month next_month: Next month +money: + invalid: "This is not an amount. Enter digits with one decimal separator, for example 1234.56." + too_precise: "Use at most :scale decimal places. Amounts are never rounded." + too_large: "This amount is larger than the field can store (at most :max)." + currency: "Currency: :code" fileupload: attachment: Attachment details help: Add a title and description for this attachment. diff --git a/modules/phrasebook/backend/lang/pl/lang.yaml b/modules/phrasebook/backend/lang/pl/lang.yaml index cf6fcb3..c3136c1 100644 --- a/modules/phrasebook/backend/lang/pl/lang.yaml +++ b/modules/phrasebook/backend/lang/pl/lang.yaml @@ -149,6 +149,11 @@ datepicker: clear: Wyczyść wartość prev_month: Poprzedni miesiąc next_month: Następny miesiąc +money: + invalid: "To nie jest kwota. Wpisz cyfry z jednym separatorem dziesiętnym, np. 1234,56." + too_precise: "Użyj najwyżej :scale miejsc po przecinku. Kwoty nie są zaokrąglane." + too_large: "Ta kwota jest większa, niż pole może zapisać (najwyżej :max)." + currency: "Waluta: :code" fileupload: attachment: Szczegóły załącznika help: Dodaj tytuł oraz opis załącznika.