diff --git a/admin/openapi/admin.json b/admin/openapi/admin.json index 60caadc..c19a822 100644 --- a/admin/openapi/admin.json +++ b/admin/openapi/admin.json @@ -581,6 +581,21 @@ ], "type": "object" }, + "cabana.FieldPreset": { + "properties": { + "field": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "field", + "type" + ], + "type": "object" + }, "cabana.FileItem": { "properties": { "content_type": { @@ -772,6 +787,14 @@ "description": "Path names the controller partial of a `type: partial` field: the\ntemplate {ConfigDir}/_{path}.htm (D-09).", "type": "string" }, + "preset": { + "allOf": [ + { + "$ref": "#/components/schemas/cabana.FieldPreset" + } + ], + "description": "Preset makes a text field follow another field of the form while the\nadministrator has not edited it, on create only (fields.yaml preset)." + }, "prompt": { "description": "Prompt is the upload button text, localized per request.", "type": "string" @@ -3291,7 +3314,7 @@ }, "/{vendor}/{plugin}/{controller}/schema/form": { "get": { - "description": "The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint.", + "description": "The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. A `type: password` field and every other field the controller lists as virtual is sent in a save body and never has a value in a record response. `preset` on a text field names the field it follows on the create form (type slug or exact) until the administrator edits it.", "parameters": [ { "description": "Vendor", diff --git a/admin/src/api/schema.d.ts b/admin/src/api/schema.d.ts index cfa0d79..c4bacc7 100644 --- a/admin/src/api/schema.d.ts +++ b/admin/src/api/schema.d.ts @@ -1216,7 +1216,7 @@ export interface paths { }; /** * Admin form schema - * @description The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. + * @description The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. A `type: password` field and every other field the controller lists as virtual is sent in a save body and never has a value in a record response. `preset` on a text field names the field it follows on the create form (type slug or exact) until the administrator edits it. */ get: { parameters: { @@ -4358,6 +4358,10 @@ export interface components { "cabana.ErrorEnvelope": { error: components["schemas"]["cabana.ErrorBody"]; }; + "cabana.FieldPreset": { + field: string; + type: string; + }; "cabana.FileItem": { content_type: string; created_at: string; @@ -4443,6 +4447,11 @@ export interface components { * template {ConfigDir}/_{path}.htm (D-09). */ path?: string; + /** + * @description Preset makes a text field follow another field of the form while the + * administrator has not edited it, on create only (fields.yaml preset). + */ + preset?: components["schemas"]["cabana.FieldPreset"]; /** @description Prompt is the upload button text, localized per request. */ prompt?: string; /** diff --git a/admin/src/api/types.ts b/admin/src/api/types.ts index 51537e0..91b35c1 100644 --- a/admin/src/api/types.ts +++ b/admin/src/api/types.ts @@ -26,6 +26,7 @@ export type FormMessages = Schemas['cabana.FormMessages'] export type FormRedirects = Schemas['cabana.FormRedirects'] /** A form's preview screen: present when config_form.yaml declares `preview:`. */ export type FormPreview = Schemas['cabana.FormPreview'] +export type FieldPreset = Schemas['cabana.FieldPreset'] export type RelationSchema = Schemas['cabana.RelationSchema'] export type RelationMessages = Schemas['cabana.RelationMessages'] export type RelationMutationResult = Schemas['cabana.RelationMutationResult'] diff --git a/admin/src/components/form/fields/PasswordField.vue b/admin/src/components/form/fields/PasswordField.vue new file mode 100644 index 0000000..fcb14e8 --- /dev/null +++ b/admin/src/components/form/fields/PasswordField.vue @@ -0,0 +1,56 @@ + + + diff --git a/admin/src/components/form/formState.ts b/admin/src/components/form/formState.ts index 34eb538..9c4cf2f 100644 --- a/admin/src/components/form/formState.ts +++ b/admin/src/components/form/formState.ts @@ -43,14 +43,19 @@ export function contextAllows(field: FormField, mode: FormMode): boolean { /** * The save body: values keyed by field name for every editable field that * has a value. Read-only fields and types without a renderer are never sent. + * An empty password on update means "unchanged" and is left out; on create it + * is sent as entered and the server's rules decide (UI-SPEC S7). */ -export function editablePayload(fields: FormField[], values: AdminRecord): AdminRecord { +export function editablePayload(fields: FormField[], values: AdminRecord, mode: FormMode = 'create'): AdminRecord { const out: AdminRecord = {} for (const field of fields) { if (field.readOnly || !isRegistered(field.type)) { continue } const value = values[field.name] + if (field.type === 'password' && mode === 'update' && (value === '' || value === null)) { + continue + } if (value !== undefined) { out[field.name] = value } @@ -58,6 +63,22 @@ export function editablePayload(fields: FormField[], values: AdminRecord): Admin return out } +/** + * The value a preset field takes from its source (fields.yaml `preset`). Type + * slug: lower-case ASCII letters and digits, every run of other characters + * one hyphen, no hyphen at either end. Type exact: the same text. + */ +export function presetValue(type: string, source: unknown): string { + const text = typeof source === 'string' || typeof source === 'number' ? String(source) : '' + if (type !== 'slug') { + return text + } + return text + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-+|-+$/g, '') +} + /** Initial values of a new record: schema defaults, toggles off, no ids. */ export function initialValues(fields: FormField[]): AdminRecord { const out: AdminRecord = {} diff --git a/admin/src/components/form/registry.ts b/admin/src/components/form/registry.ts index 231a74c..586b92d 100644 --- a/admin/src/components/form/registry.ts +++ b/admin/src/components/form/registry.ts @@ -10,6 +10,8 @@ // routes against the form's session key (D-02, D-03), so it holds no form // value either and renders on create and update. The datepicker control is // a plain value field: its string value is part of the save body (D-18). +// Phase 12.1 adds the password control: a plain value field whose value the +// server never sends back, so it is empty on load and after every save. import type { Component } from 'vue' import CheckboxField from './fields/CheckboxField.vue' import DatepickerField from './fields/DatepickerField.vue' @@ -17,6 +19,7 @@ import DropdownField from './fields/DropdownField.vue' import FileuploadField from './fields/FileuploadField.vue' import NumberField from './fields/NumberField.vue' import PartialField from './fields/PartialField.vue' +import PasswordField from './fields/PasswordField.vue' import RelationManager from '../relation/RelationManager.vue' import RelationField from './fields/RelationField.vue' import SwitchField from './fields/SwitchField.vue' @@ -52,6 +55,7 @@ const renderers = new Map([ ['partial', PartialField], ['fileupload', FileuploadField], ['datepicker', DatepickerField], + ['password', PasswordField], ]) /** Types whose control shows the label itself (toggle cards, relation manager). */ diff --git a/admin/src/views/FormView.vue b/admin/src/views/FormView.vue index 86048c7..05e3a52 100644 --- a/admin/src/views/FormView.vue +++ b/admin/src/views/FormView.vue @@ -23,6 +23,7 @@ import { focusField, initialValues, panelDomId, + presetValue, snapshot, tabDomId, tabOf, @@ -162,15 +163,17 @@ const dirty = computed( !loading.value && (pendingChanges.value > 0 || activeUploads.value > 0 || - snapshot(editablePayload(fields.value, values.value)) !== saved.value), + snapshot(editablePayload(fields.value, values.value, mode)) !== saved.value), ) function adopt(record: RecordEnvelope | undefined): void { if (record) { + // A record response never carries a password, so every password field + // is empty again after a save (UI-SPEC S7). values.value = { ...record.data } labels.value = record.meta.labels ?? {} } - saved.value = snapshot(editablePayload(fields.value, values.value)) + saved.value = snapshot(editablePayload(fields.value, values.value, mode)) } async function load(): Promise { @@ -197,8 +200,22 @@ async function load(): Promise { loading.value = false } +// Preset fields (fields.yaml `preset`, UI-SPEC S7): on create, a text field +// follows its source field until the administrator edits it by hand; that +// stops it for as long as the form is open. On update nothing follows. +const edited = new Set() + function update(name: string, value: unknown): void { - values.value = { ...values.value, [name]: value } + const next = { ...values.value, [name]: value } + edited.add(name) + if (mode === 'create') { + for (const field of fields.value) { + if (field.preset?.field === name && field.type === 'text' && !edited.has(field.name)) { + next[field.name] = presetValue(field.preset.type, value) + } + } + } + values.value = next if (errors.value[name]) { const next = { ...errors.value } delete next[name] @@ -255,7 +272,7 @@ async function save(): Promise { busy.value = true forbidden.value = null try { - const body = editablePayload(fields.value, values.value) + const body = editablePayload(fields.value, values.value, mode) const result = recordId === null ? await api.POST('/{vendor}/{plugin}/{controller}', { params: { path, header: sessionHeader }, body }) diff --git a/admin/tests/fixtures/roster.form-schema.json b/admin/tests/fixtures/roster.form-schema.json index 34c158e..b4bd196 100644 --- a/admin/tests/fixtures/roster.form-schema.json +++ b/admin/tests/fixtures/roster.form-schema.json @@ -5,6 +5,10 @@ "fields": [ { "name": "name", "type": "text", "label": "Name", "span": "left" }, { "name": "email", "type": "text", "label": "Email", "span": "right" }, + { "name": "slug", "type": "text", "label": "Slug", "preset": { "field": "name", "type": "slug" } }, + { "name": "password", "type": "password", "label": "Password", "span": "left", "context": ["create", "update"] }, + { "name": "password_confirmation", "type": "password", "label": "Repeat the password", "span": "right", "context": ["create", "update"] }, + { "name": "notify", "type": "checkbox", "label": "Send a welcome message", "default": true, "context": "create" }, { "name": "joined_ip", "type": "text", "label": "Joined from IP address", "context": "preview" } ], "preview": { "headerPartial": "status" }, diff --git a/admin/tests/fixtures/roster.record.json b/admin/tests/fixtures/roster.record.json index 7dbaf47..53128d2 100644 --- a/admin/tests/fixtures/roster.record.json +++ b/admin/tests/fixtures/roster.record.json @@ -1,5 +1,5 @@ { - "data": { "id": 1, "name": "Ada Lovelace", "email": "ada@example.test", "joined_ip": "203.0.113.7" }, + "data": { "id": 1, "name": "Ada Lovelace", "email": "ada@example.test", "slug": "ada-lovelace", "joined_ip": "203.0.113.7" }, "meta": { "labels": {}, "actions": [ diff --git a/admin/tests/smoke/preview.smoke.test.ts b/admin/tests/smoke/preview.smoke.test.ts index b9a76cc..57c75db 100644 --- a/admin/tests/smoke/preview.smoke.test.ts +++ b/admin/tests/smoke/preview.smoke.test.ts @@ -102,7 +102,7 @@ describe('preview screen (UI-SPEC S3, D-11)', () => { const grid = wrapper.find('[data-preview] dl') expect(grid.exists()).toBe(true) - expect(grid.findAll('dt').map((item) => item.text())).toEqual(['Name', 'Email', 'Joined from IP address']) + expect(grid.findAll('dt').map((item) => item.text())).toEqual(['Name', 'Email', 'Slug', 'Joined from IP address']) expect(value(wrapper, 'name').text()).toBe('Ada Lovelace') expect(value(wrapper, 'email').text()).toBe('ada@example.test') // Values wrap and are never truncated; labels carry no required mark. diff --git a/admin/tests/smoke/seams.smoke.test.ts b/admin/tests/smoke/seams.smoke.test.ts new file mode 100644 index 0000000..c491883 --- /dev/null +++ b/admin/tests/smoke/seams.smoke.test.ts @@ -0,0 +1,204 @@ +// Phase 12.1 form seams in the admin SPA: the password field (UI-SPEC S7, +// D-19) and preset fields (D-27 G7). Fixtures are neutral acme.roster.* data; +// no application names appear in framework tests. +import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { enableAutoUnmount, flushPromises, type VueWrapper } from '@vue/test-utils' +import { editablePayload, presetValue } from '../../src/components/form/formState' +import { setBundle } from '../../src/app/i18n' +import { clone, langFixture, rosterFormSchemaFixture, rosterRecordFixture } from '../fixtures/typed' +import { API, mountApp, requestsTo, resetState, type Reply, type Route } from '../helpers' + +const LIST = `${API}/acme/roster/people` +const RECORD = `${LIST}/1` + +// The framework strings these controls use, as GET /lang serves them in en. +const strings = { + 'backend::lang.form.show_password': { other: 'Show password' }, + 'backend::lang.form.hide_password': { other: 'Hide password' }, +} + +function routes(overrides: Record = {}): Record { + return { + [`GET ${LIST}/schema/form`]: { body: rosterFormSchemaFixture }, + [`GET ${RECORD}`]: { body: rosterRecordFixture }, + [`GET ${LIST}/partials/status`]: { body: { data: { nodes: [] }, meta: {} } }, + ...overrides, + } +} + +const input = (wrapper: VueWrapper, name: string) => wrapper.find(`#field-${name}`) +const toggle = (wrapper: VueWrapper, name: string) => wrapper.find(`[data-field="${name}"] [data-password-toggle]`) + +async function save(wrapper: VueWrapper): Promise { + await wrapper.find('[data-action="save"]').trigger('click') + await flushPromises() +} + +beforeEach(() => { + resetState() + setBundle({ ...langFixture.data, ...strings }, 'en') +}) + +afterEach(() => { + document.body.innerHTML = '' +}) + +enableAutoUnmount(afterEach) + +describe('password field (UI-SPEC S7, D-19)', () => { + it('renders empty and masked although the record is loaded, with the toggle after the input', async () => { + // The record response carries no password, as on the server. + const { wrapper } = await mountApp('/acme/roster/people/1', routes()) + const password = input(wrapper, 'password') + expect(password.element.value).toBe('') + expect(password.attributes('type')).toBe('password') + expect(password.attributes('autocomplete')).toBe('new-password') + expect(password.attributes('spellcheck')).toBe('false') + expect(password.classes()).toEqual(expect.arrayContaining(['h-input', 'pr-12'])) + expect(input(wrapper, 'password_confirmation').element.value).toBe('') + + const button = toggle(wrapper, 'password') + expect(button.attributes('type')).toBe('button') + expect(button.attributes('aria-pressed')).toBe('false') + expect(button.attributes('aria-label')).toBe('Show password') + // The toggle follows the input in the DOM, so Tab reaches it second. + expect(password.element.compareDocumentPosition(button.element) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy() + }) + + it('shows and hides the text with the toggle', async () => { + const { wrapper } = await mountApp('/acme/roster/people/1', routes()) + await input(wrapper, 'password').setValue('correct horse') + await toggle(wrapper, 'password').trigger('click') + expect(input(wrapper, 'password').attributes('type')).toBe('text') + expect(input(wrapper, 'password').element.value).toBe('correct horse') + expect(toggle(wrapper, 'password').attributes('aria-pressed')).toBe('true') + expect(toggle(wrapper, 'password').attributes('aria-label')).toBe('Hide password') + // The confirmation has its own toggle and stays masked. + expect(input(wrapper, 'password_confirmation').attributes('type')).toBe('password') + await toggle(wrapper, 'password').trigger('click') + expect(input(wrapper, 'password').attributes('type')).toBe('password') + }) + + it('leaves an empty password out of the update body', async () => { + const { wrapper, calls } = await mountApp('/acme/roster/people/1', routes({ [`PUT ${RECORD}`]: { body: rosterRecordFixture } })) + await input(wrapper, 'name').setValue('Ada B') + // Typed and removed again: still "unchanged". + await input(wrapper, 'password').setValue('x') + await input(wrapper, 'password').setValue('') + await save(wrapper) + + const [request] = requestsTo(calls, 'PUT', RECORD) + const body = (await request!.clone().json()) as Record + expect(body.name).toBe('Ada B') + expect('password' in body).toBe(false) + expect('password_confirmation' in body).toBe(false) + // notify is a create-only field and joined_ip a preview-only one. + expect('notify' in body).toBe(false) + expect('joined_ip' in body).toBe(false) + }) + + it('sends the password pair as entered and clears and hides both after a successful save', async () => { + const { wrapper, calls } = await mountApp('/acme/roster/people/1', routes({ [`PUT ${RECORD}`]: { body: rosterRecordFixture } })) + await input(wrapper, 'password').setValue('correct horse') + await input(wrapper, 'password_confirmation').setValue('correct horse') + await toggle(wrapper, 'password').trigger('click') + await toggle(wrapper, 'password_confirmation').trigger('click') + await save(wrapper) + + const [request] = requestsTo(calls, 'PUT', RECORD) + const body = (await request!.clone().json()) as Record + expect(body.password).toBe('correct horse') + expect(body.password_confirmation).toBe('correct horse') + for (const name of ['password', 'password_confirmation']) { + expect(input(wrapper, name).element.value).toBe('') + expect(input(wrapper, name).attributes('type')).toBe('password') + expect(toggle(wrapper, name).attributes('aria-pressed')).toBe('false') + } + // The password never reaches a toast or the URL. + expect(document.body.textContent).not.toContain('correct horse') + expect(window.location.href).not.toContain('correct') + }) + + it('sends a lone password as entered and shows the server 422 on the field', async () => { + const refused: Reply = { + status: 422, + body: { + error: { + code: 'validation_failed', + message: 'Validation failed', + details: { password: ['The password confirmation does not match.'] }, + }, + }, + } + const { wrapper, calls } = await mountApp('/acme/roster/people/1', routes({ [`PUT ${RECORD}`]: refused }), { attach: true }) + await input(wrapper, 'password').setValue('correct horse') + await save(wrapper) + + const [request] = requestsTo(calls, 'PUT', RECORD) + const body = (await request!.clone().json()) as Record + // The SPA does not compare the two fields: the save goes out as entered. + expect(body.password).toBe('correct horse') + expect('password_confirmation' in body).toBe(false) + expect(wrapper.find('[data-field="password"]').text()).toContain('The password confirmation does not match.') + expect(input(wrapper, 'password').attributes('aria-invalid')).toBe('true') + // A refused save keeps what was typed. + expect(input(wrapper, 'password').element.value).toBe('correct horse') + }) + + it('keeps an empty password in a create body and drops it only on update', () => { + const fields = rosterFormSchemaFixture.data.fields.filter((field) => field.type === 'password') + expect(editablePayload(fields, { password: '' }, 'create')).toEqual({ password: '' }) + expect(editablePayload(fields, { password: '' }, 'update')).toEqual({}) + expect(editablePayload(fields, { password: 'abc' }, 'update')).toEqual({ password: 'abc' }) + }) +}) + +describe('preset (D-27 G7)', () => { + it('slugs lower-case ASCII with single hyphens and no cut', () => { + expect(presetValue('slug', 'Ada Lovelace')).toBe('ada-lovelace') + expect(presetValue('slug', ' Hello, World!! ')).toBe('hello-world') + expect(presetValue('slug', 'Zażółć 42')).toBe('za-42') + expect(presetValue('slug', '')).toBe('') + expect(presetValue('exact', 'Ada Lovelace')).toBe('Ada Lovelace') + const long = 'word '.repeat(80).trim() + expect(presetValue('slug', long)).toHaveLength(long.length) + }) + + it('fills the target from the source on create until the target is edited by hand', async () => { + const { wrapper } = await mountApp('/acme/roster/people/create', routes()) + expect(input(wrapper, 'slug').element.value).toBe('') + await input(wrapper, 'name').setValue('Grace Hopper') + expect(input(wrapper, 'slug').element.value).toBe('grace-hopper') + await input(wrapper, 'name').setValue('Grace B. Hopper') + expect(input(wrapper, 'slug').element.value).toBe('grace-b-hopper') + // An empty source leaves the target empty. + await input(wrapper, 'name').setValue('') + expect(input(wrapper, 'slug').element.value).toBe('') + + // The first manual edit stops it for the session. + await input(wrapper, 'slug').setValue('admiral') + await input(wrapper, 'name').setValue('Grace Hopper') + expect(input(wrapper, 'slug').element.value).toBe('admiral') + // The target is an ordinary input with no marker. + expect(input(wrapper, 'slug').attributes('readonly')).toBeUndefined() + }) + + it('sends the preset value with the create body', async () => { + const created = clone(rosterRecordFixture) + created.data.id = 7 + const { wrapper, calls } = await mountApp('/acme/roster/people/create', routes({ [`POST ${LIST}`]: { status: 201, body: created }, [`GET ${LIST}/7`]: { body: created } })) + await input(wrapper, 'name').setValue('Grace Hopper') + await save(wrapper) + const [request] = requestsTo(calls, 'POST', LIST) + const body = (await request!.clone().json()) as Record + expect(body.slug).toBe('grace-hopper') + expect(body.notify).toBe(true) + }) + + it('does not follow the source on update', async () => { + const { wrapper } = await mountApp('/acme/roster/people/1', routes()) + expect(input(wrapper, 'slug').element.value).toBe('ada-lovelace') + await input(wrapper, 'name').setValue('Ada King') + expect(input(wrapper, 'slug').element.value).toBe('ada-lovelace') + }) +}) diff --git a/docs/backend/admin-controllers.md b/docs/backend/admin-controllers.md index be805ea..5da8670 100644 --- a/docs/backend/admin-controllers.md +++ b/docs/backend/admin-controllers.md @@ -221,6 +221,47 @@ A hook or scope that has to read the database during a write should use the tran Scope reads and writes with `pact.ListExtendQuery` and `pact.FormExtendQuery` rather than checking in a hook: the scope then applies to every route, including relation and action routes. +### Form-only values and rules + +A form may collect values that are not columns of the record (see [Form-only fields](forms.md#form-only-fields)). The Form hooks read what the administrator submitted with `cabana.VirtualFieldsFromContext(ctx)`. The map holds only the fields that were sent and that the field's `context` allows for this operation, so a missing key means "not submitted". Values are scalars as decoded from the request: a string, a bool, a `json.Number` or nil. The map is a copy, and the second result is false outside a create or update. + +```go src=modules/cabana/example_form_seams_test.go#MembersController.FormBeforeCreate +// FormBeforeCreate reads the submitted virtual values, which have passed the +// rules by now, and stores what the model needs. +func (MembersController) FormBeforeCreate(ctx context.Context, model any) error { + values, _ := cabana.VirtualFieldsFromContext(ctx) + member := model.(*Member) + if plain, ok := values["password"].(string); ok && plain != "" { + member.Password = hashPassword(plain) + } + if notify, _ := values["notify"].(bool); notify { + // Queue the welcome message here. + } + return nil +} +``` + +A save validates the record against the model's `Rules()`. Those are often the rules of a public sign-up, which an admin form cannot meet: an update that changes only a name would have to repeat the password. A controller implementing `pact.FormRules` returns the rules of an admin save for `create` or `update`, and that set replaces the model's: + +```go src=modules/cabana/example_form_seams_test.go#MembersController.FormRules +// FormRules replaces the model's rules for admin saves: a create needs a +// password, an update takes one only when the administrator types it. +func (MembersController) FormRules(_ context.Context, op string) map[string]string { + rules := map[string]string{"name": "required"} + if op == "create" { + rules["password"] = "required|between:8,255|confirmed" + } else { + rules["password"] = "nullable|between:8,255|confirmed" + } + return rules +} +``` + +- The form's `required` flags are still merged in, also for form-only fields. +- A rule on a form-only field is checked against the submitted value, or against nothing when the field was not sent; the model column of the same name is never read. `confirmed` compares with the submitted `_confirmation`. +- Rule strings use the tokens `lagoon.Validate` supports. An unknown token is the opaque 500 on every save, so checks outside that set belong in a hook that returns a `cabana.ValidationError`. +- The model must still have a `Rules` method; relation forms and settings forms keep using the model's rules. + ## Refusing a write A hook or an action stops a write by returning an error. Which error decides what the administrator sees: diff --git a/docs/backend/forms.md b/docs/backend/forms.md index f1f5057..637fde4 100644 --- a/docs/backend/forms.md +++ b/docs/backend/forms.md @@ -95,15 +95,29 @@ for _, f := range form.Fields { | `partial` | A server-rendered template; see [Partials and widgets](partials-and-widgets.md). | | `fileupload` | Uploads for an attachOne or attachMany relation; see [File uploads](#file-uploads). | | `datepicker` | A date, date and time, or time of day; see [Date pickers](#date-pickers). | +| `password` | A masked input with a show and hide button. It is a form-only field: the value is sent with a save and never returned; see [Form-only fields](#form-only-fields). | The WinterCMS widgets that are not in this list (the rich editor, the markdown editor, the code editor, the color picker, the media finder, the repeater, the tag list and the others) are not provided. A field with one of those types stops the start-up. ### 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. WinterCMS keys outside this set, such as `readOnly`, `disabled`, `trigger` or `dependsOn`, 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 and `preset` on text fields. WinterCMS keys outside this set, such as `readOnly`, `disabled`, `trigger` or `dependsOn`, 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. +`preset` makes a `text` field follow another text field of the same form while the administrator has not edited it, as a slug field follows a title. It is the source field's name, or a mapping with `field` and `type`: + +```yaml +slug: + label: acme.blog::lang.posts.slug + type: text + preset: + field: title + type: slug +``` + +`type: slug` (the default, and what the short form `preset: title` means) lower-cases the text and turns every run of characters other than ASCII letters and digits into one hyphen; `type: exact` copies the text. The admin SPA applies it on the create form only, and the first manual edit of the field stops it. The server does not fill the field: a model that needs a slug even when none is sent sets it in its own `BeforeValidate`. The schema reports the key as `preset` (a `cabana.FieldPreset`). A `preset` on another field type, an unknown type, or a source that is not a text field of the same form stops the start-up, and the key is not accepted on settings forms or relation forms. + ## Date pickers A `type: datepicker` field edits one model column. Its `mode` decides the column's Go type, and the start-up stops when they do not match: @@ -216,6 +230,26 @@ messages: - `recordUrl` in `config_list.yaml` and the form's `create.redirect`, `update.redirectClose` and the other redirects may point at the screen as `///preview/:id`. On the update form of a record with a preview, the back arrow and Cancel return to the preview; after a delete the form goes to the list. - The footer holds the record actions the show response offers in `meta.actions`, then the edit button. After an action the record and the status hint are loaded again in place. +## Form-only fields + +Some fields of a form are not columns of the record: a password and its confirmation, or a "send an invitation" checkbox. A controller lists them through `pact.FormVirtualFields`: + +```go src=modules/cabana/example_form_seams_test.go#MembersController.FormVirtualFields +// FormVirtualFields names the fields of fields.yaml that are not columns of +// the form. cabana never fills or returns them. +func (MembersController) FormVirtualFields() []string { + return []string{"password", "password_confirmation", "notify"} +} +``` + +- A listed field needs no model column. cabana never binds it, never fills it into the model and never puts it in a record response, on any route. A model column with the same name (a stored password hash) is not touched by the form. +- The values an administrator submits reach the controller's Form hooks through `cabana.VirtualFieldsFromContext(ctx)`; see [Admin controllers](admin-controllers.md#form-only-values-and-rules). Only fields that were sent and whose `context` allows the operation are there. A value must be a scalar: an object or a list is a 422 on the field. +- Every listed name must be a field of the form's `fields.yaml` with the type `password`, `text`, `textarea`, `number`, `checkbox`, `switch` or `dropdown`. Anything else stops the start-up. +- `type: password` is always a form-only field: a password field the controller does not list stops the start-up. The admin SPA shows it empty on every load, leaves an empty password out of an update (empty means unchanged), and clears it after a save. A confirmation is a second `password` field, compared by the `confirmed` rule on the server. +- Form-only fields are not available on settings forms or relation forms. + ## 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)). 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. +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)). 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. + +[Form-only fields](#form-only-fields) are never written by cabana. Their submitted values are validated, when a rule names them, and handed to the controller's hooks; what is stored from them is the hook's decision. diff --git a/modules/boardwalk/dist/assets/index-57SuA8gQ.css b/modules/boardwalk/dist/assets/index-57SuA8gQ.css deleted file mode 100644 index 3080712..0000000 --- a/modules/boardwalk/dist/assets/index-57SuA8gQ.css +++ /dev/null @@ -1 +0,0 @@ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, monospace;--color-white:#fff;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--c-bg);--color-surface:var(--c-surface);--color-subtle:var(--c-subtle);--color-border:var(--c-border);--color-border-strong:var(--c-border-strong);--color-text:var(--c-text);--color-muted:var(--c-muted);--color-placeholder:var(--c-placeholder);--color-primary:var(--c-primary);--color-on-primary:var(--c-on-primary);--color-danger:var(--c-danger);--color-danger-soft:var(--c-danger-soft);--color-ok-bg:var(--c-ok-bg);--color-ok-text:var(--c-ok-text);--color-hover:var(--c-hover);--color-sel:var(--c-sel);--color-skel:var(--c-skel);--color-overlay:var(--c-overlay);--color-side:var(--c-side);--color-side-border:var(--c-side-border);--color-accent:#fcd34d;--color-on-accent:#1b2540;--color-accent-soft:#fcd34d24;--color-side-text:#c3cbda;--color-side-hover:#ffffff14;--radius-control:10px;--radius-card:16px;--radius-modal:20px;--radius-inner:12px;--radius-tab:9px;--radius-checkbox:5px;--radius-pager:8px;--radius-pill:999px;--spacing-button:42px;--spacing-input:44px;--spacing-header:64px;--spacing-nav:40px;--spacing-row:54px;--spacing-row-head:44px;--spacing-pager:34px;--spacing-rail:80px;--spacing-panel:224px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-family:var(--font-sans);color:var(--c-text);background:var(--c-bg);font-size:14px;line-height:1.5}body{min-height:100vh;margin:0}a:focus-visible,button:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--c-ring);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--c-placeholder)}}@layer components{.bg-overlay[data-state=open]{animation:.2s ease-out summer-fade-in}[data-dialog-content][data-state=open],[role=alertdialog][data-state=open]{animation:.2s ease-out summer-dialog-in}.toast-enter-active{transition:opacity .2s ease-out,scale .2s ease-out}.toast-enter-from{opacity:0;scale:.98}.summer-partial{color:var(--c-text);overflow-wrap:anywhere;font-size:14px;line-height:1.5}.summer-partial :where(p,ul,ol){margin:0 0 8px}.summer-partial :where(p,ul,ol):last-child{margin-bottom:0}.summer-partial a{color:var(--c-text);text-decoration:underline}.summer-partial a:focus-visible{outline:3px solid var(--c-ring);outline-offset:2px}.summer-stats{background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--c-shadow-card);border-radius:16px;flex-wrap:wrap;gap:8px 32px;margin:0;padding:16px 20px;display:flex}.summer-stat{flex-direction:column-reverse;gap:4px;min-width:0;display:flex}.summer-stat__label{color:var(--c-muted);overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:400;line-height:1.5}.summer-stat__value{color:var(--c-text);font-variant-numeric:tabular-nums;margin:0;font-size:20px;font-weight:600;line-height:1.2}.summer-callout{overflow-wrap:anywhere;border-radius:12px;flex-direction:column;gap:4px;margin:0;padding:14px 18px;font-size:14px;line-height:1.5;display:flex}.summer-callout--warning{background:var(--c-sel);color:var(--c-text)}.summer-callout--danger{background:var(--c-danger-soft);color:var(--c-danger)}.summer-callout__title{margin:0;font-weight:600}.summer-callout__text{margin:0;font-weight:400}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-\[3px\]{top:3px}.top-full{top:100%}.right-2{right:calc(var(--spacing) * 2)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-\[88px\]{bottom:88px}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.left-\[3px\]{left:3px}.left-\[calc\(var\(--spacing-rail\)\+8px\)\]{left:calc(var(--spacing-rail) + 8px)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-px{margin-top:1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-10\!{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40)}.size-\[18px\]{width:18px;height:18px}.size-\[22px\]{width:22px;height:22px}.size-\[26px\]{width:26px;height:26px}.size-\[30px\]{width:30px;height:30px}.size-\[34px\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[42px\]{height:42px}.h-\[44px\]{height:44px}.h-\[54px\]{height:54px}.h-\[56px\]{height:56px}.h-\[68px\]{height:68px}.h-\[80px\]{height:80px}.h-\[112px\]{height:112px}.h-button{height:var(--spacing-button)}.h-full{height:100%}.h-header{height:var(--spacing-header)}.h-input{height:var(--spacing-input)}.h-nav{height:var(--spacing-nav)}.h-pager{height:var(--spacing-pager)}.h-px{height:1px}.h-row{height:var(--spacing-row)}.h-row-head{height:var(--spacing-row-head)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-32px\)\]{max-height:calc(100vh - 32px)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[30px\]{min-height:30px}.min-h-\[112px\]{min-height:112px}.min-h-input{min-height:var(--spacing-input)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-24{width:calc(var(--spacing) * 24)}.w-\[52px\]{width:52px}.w-\[56px\]{width:56px}.w-\[68px\]{width:68px}.w-\[160px\]{width:160px}.w-\[220px\]{width:220px}.w-\[230px\]{width:230px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[284px\]{width:284px}.w-\[320px\]{width:320px}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-full{width:100%}.w-panel{width:var(--spacing-panel)}.w-rail{width:var(--spacing-rail)}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[560px\]{max-width:560px}.max-w-\[720px\]{max-width:720px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-\[120px\]{min-width:120px}.min-w-\[480px\]{min-width:480px}.min-w-\[640px\]{min-width:640px}.min-w-pager{min-width:var(--spacing-pager)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[18px\]{--tw-translate-x:18px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-start\!{align-items:flex-start!important}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[18px\]{gap:18px}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-\[22px\]{row-gap:22px}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[14px\]{border-radius:14px}.rounded-card{border-radius:var(--radius-card)}.rounded-checkbox{border-radius:var(--radius-checkbox)}.rounded-control{border-radius:var(--radius-control)}.rounded-full{border-radius:3.40282e38px}.rounded-inner{border-radius:var(--radius-inner)}.rounded-modal{border-radius:var(--radius-modal)}.rounded-pager{border-radius:var(--radius-pager)}.rounded-pill{border-radius:var(--radius-pill)}.rounded-tab{border-radius:var(--radius-tab)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#c62828\]{border-color:#c62828}.border-\[\#d2d8e2\]{border-color:#d2d8e2}.border-\[\#e0b020\]{border-color:#e0b020}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-danger{border-color:var(--color-danger)}.border-primary{border-color:var(--color-primary)}.border-side-border{border-color:var(--color-side-border)}.border-transparent{border-color:#0000}.bg-\[\#1d2740\]{background-color:#1d2740}.bg-\[\#22304d\]{background-color:#22304d}.bg-\[\#f58a8a\]{background-color:#f58a8a}.bg-\[\#fdf0f0\]{background-color:#fdf0f0}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-hover{background-color:var(--color-hover)}.bg-ok-bg{background-color:var(--color-ok-bg)}.bg-on-primary{background-color:var(--color-on-primary)}.bg-overlay{background-color:var(--color-overlay)}.bg-primary{background-color:var(--color-primary)}.bg-sel{background-color:var(--color-sel)}.bg-side{background-color:var(--color-side)}.bg-skel{background-color:var(--color-skel)}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\!{padding-inline:calc(var(--spacing) * 0)!important}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[18px\]{padding-inline:18px}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[26px\]{font-size:26px}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.02em\]{--tw-tracking:.02em;letter-spacing:.02em}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#1d2740\]{color:#1d2740}.text-\[\#141b2d\]{color:#141b2d}.text-\[\#c3cbda\]{color:#c3cbda}.text-\[\#c62828\]{color:#c62828}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-muted{color:var(--color-muted)}.text-ok-text{color:var(--color-ok-text)}.text-on-accent{color:var(--color-on-accent)}.text-on-primary{color:var(--color-on-primary)}.text-side-text{color:var(--color-side-text)}.text-text{color:var(--color-text)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.accent-primary{accent-color:var(--color-primary)}.opacity-50{opacity:.5}.shadow-card{--tw-shadow:var(--c-shadow-card);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-login{--tw-shadow:0 24px 60px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-menu{--tw-shadow:0 16px 40px var(--tw-shadow-color,#141b2d29);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-pop{--tw-shadow:0 16px 40px var(--tw-shadow-color,#141b2d2e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-tab{--tw-shadow:0 1px 3px var(--tw-shadow-color,#141b2d1f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-toast{--tw-shadow:0 16px 40px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.first\:pl-5:first-child{padding-left:calc(var(--spacing) * 5)}.last\:pr-5:last-child{padding-right:calc(var(--spacing) * 5)}.focus-within\:border-primary:focus-within{border-color:var(--color-primary)}.focus-within\:shadow-\[0_0_0_3px_var\(--c-ring\)\]:focus-within{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--c-ring));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.hover\:bg-danger-soft:hover{background-color:var(--color-danger-soft)}.hover\:bg-hover:hover{background-color:var(--color-hover)}.hover\:bg-side-hover:hover{background-color:var(--color-side-hover)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-text:hover{color:var(--color-text)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-90:hover{opacity:.9}}.focus\:bg-sel:focus{background-color:var(--color-sel)}.focus\:text-text:focus{color:var(--color-text)}.focus-visible\:shadow-none:focus-visible{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}.has-\[\[data-invalid\]\]\:border-danger:has([data-invalid]){border-color:var(--color-danger)}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:text-placeholder[data-disabled]{color:var(--color-placeholder)}.data-\[disabled\]\:opacity-40[data-disabled]{opacity:.4}@media(hover:hover){.data-\[disabled\]\:hover\:bg-transparent[data-disabled]:hover{background-color:#0000}}.data-\[highlighted\]\:bg-hover[data-highlighted]{background-color:var(--color-hover)}.data-\[outside-view\]\:text-placeholder[data-outside-view],.data-\[placeholder\]\:text-placeholder[data-placeholder]{color:var(--color-placeholder)}.focus\:data-\[placeholder\]\:text-text:focus[data-placeholder]{color:var(--color-text)}.data-\[selected\]\:bg-primary[data-selected]{background-color:var(--color-primary)}.data-\[selected\]\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[selected\]\:text-on-primary[data-selected]{color:var(--color-on-primary)}.data-\[today\]\:font-semibold[data-today]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[today\]\:shadow-\[inset_0_0_0_1px_var\(--c-border-strong\)\][data-today]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--c-border-strong));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[unavailable\]\:cursor-not-allowed[data-unavailable]{cursor:not-allowed}.data-\[unavailable\]\:opacity-40[data-unavailable]{opacity:.4}@media not all and (min-width:1099px){.max-\[1099px\]\:hidden{display:none}}@media(min-width:600px){.min-\[600px\]\:col-start-1{grid-column-start:1}.min-\[600px\]\:col-start-2{grid-column-start:2}.min-\[600px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:900px){.min-\[900px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(./dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(./dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(./dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(./dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(./dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(./dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./dm-sans-latin-ext-700-normal-CJIcxD6K.woff2)format("woff2"),url(./dm-sans-latin-ext-700-normal-BLI3TTWz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(./dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(./dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(./dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(./dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(./dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-bg:#f4f6f9;--c-surface:#fff;--c-subtle:#f3f5f8;--c-border:#e6e9ef;--c-border-strong:#d2d8e2;--c-text:#141b2d;--c-muted:#566175;--c-placeholder:#6b7588;--c-primary:#22304d;--c-on-primary:#fff;--c-danger:#c62828;--c-danger-soft:#fdf0f0;--c-ok-bg:#e3f4e8;--c-ok-text:#1c6b35;--c-ring:#fcc4288c;--c-hover:#f1f3f7;--c-sel:#fdf3cf;--c-skel:#eceff4;--c-overlay:#141b2d80;--c-side:#1d2740;--c-side-border:transparent;--c-shadow-card:0 1px 2px #141b2d0a, 0 4px 16px #141b2d0d}.dark{color-scheme:dark;--c-bg:#111726;--c-surface:#182033;--c-subtle:#1f283d;--c-border:#29334b;--c-border-strong:#3a4661;--c-text:#eef1f6;--c-muted:#a9b3c6;--c-placeholder:#8a95ab;--c-primary:#fcd34d;--c-on-primary:#1b2540;--c-danger:#f58a8a;--c-danger-soft:#3a1d24;--c-ok-bg:#173826;--c-ok-text:#8fdfa8;--c-ring:#fcd34d73;--c-hover:#212b42;--c-sel:#3a3622;--c-skel:#263049;--c-overlay:#050810b3;--c-side:#0d1320;--c-side-border:#222b40;--c-shadow-card:none}@keyframes summer-fade-in{0%{opacity:0}}@keyframes summer-dialog-in{0%{opacity:0;scale:.98}}@media(prefers-reduced-motion:reduce){.bg-overlay,[data-dialog-content],[role=alertdialog]{animation:none!important}.toast-enter-active{transition:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/modules/boardwalk/dist/assets/index-B2epb8_Z.css b/modules/boardwalk/dist/assets/index-B2epb8_Z.css new file mode 100644 index 0000000..cadda5a --- /dev/null +++ b/modules/boardwalk/dist/assets/index-B2epb8_Z.css @@ -0,0 +1 @@ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, monospace;--color-white:#fff;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--c-bg);--color-surface:var(--c-surface);--color-subtle:var(--c-subtle);--color-border:var(--c-border);--color-border-strong:var(--c-border-strong);--color-text:var(--c-text);--color-muted:var(--c-muted);--color-placeholder:var(--c-placeholder);--color-primary:var(--c-primary);--color-on-primary:var(--c-on-primary);--color-danger:var(--c-danger);--color-danger-soft:var(--c-danger-soft);--color-ok-bg:var(--c-ok-bg);--color-ok-text:var(--c-ok-text);--color-hover:var(--c-hover);--color-sel:var(--c-sel);--color-skel:var(--c-skel);--color-overlay:var(--c-overlay);--color-side:var(--c-side);--color-side-border:var(--c-side-border);--color-accent:#fcd34d;--color-on-accent:#1b2540;--color-accent-soft:#fcd34d24;--color-side-text:#c3cbda;--color-side-hover:#ffffff14;--radius-control:10px;--radius-card:16px;--radius-modal:20px;--radius-inner:12px;--radius-tab:9px;--radius-checkbox:5px;--radius-pager:8px;--radius-pill:999px;--spacing-button:42px;--spacing-input:44px;--spacing-header:64px;--spacing-nav:40px;--spacing-row:54px;--spacing-row-head:44px;--spacing-pager:34px;--spacing-rail:80px;--spacing-panel:224px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-family:var(--font-sans);color:var(--c-text);background:var(--c-bg);font-size:14px;line-height:1.5}body{min-height:100vh;margin:0}a:focus-visible,button:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--c-ring);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--c-placeholder)}}@layer components{.bg-overlay[data-state=open]{animation:.2s ease-out summer-fade-in}[data-dialog-content][data-state=open],[role=alertdialog][data-state=open]{animation:.2s ease-out summer-dialog-in}.toast-enter-active{transition:opacity .2s ease-out,scale .2s ease-out}.toast-enter-from{opacity:0;scale:.98}.summer-partial{color:var(--c-text);overflow-wrap:anywhere;font-size:14px;line-height:1.5}.summer-partial :where(p,ul,ol){margin:0 0 8px}.summer-partial :where(p,ul,ol):last-child{margin-bottom:0}.summer-partial a{color:var(--c-text);text-decoration:underline}.summer-partial a:focus-visible{outline:3px solid var(--c-ring);outline-offset:2px}.summer-stats{background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--c-shadow-card);border-radius:16px;flex-wrap:wrap;gap:8px 32px;margin:0;padding:16px 20px;display:flex}.summer-stat{flex-direction:column-reverse;gap:4px;min-width:0;display:flex}.summer-stat__label{color:var(--c-muted);overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:400;line-height:1.5}.summer-stat__value{color:var(--c-text);font-variant-numeric:tabular-nums;margin:0;font-size:20px;font-weight:600;line-height:1.2}.summer-callout{overflow-wrap:anywhere;border-radius:12px;flex-direction:column;gap:4px;margin:0;padding:14px 18px;font-size:14px;line-height:1.5;display:flex}.summer-callout--warning{background:var(--c-sel);color:var(--c-text)}.summer-callout--danger{background:var(--c-danger-soft);color:var(--c-danger)}.summer-callout__title{margin:0;font-weight:600}.summer-callout__text{margin:0;font-weight:400}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-\[3px\]{top:3px}.top-full{top:100%}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-\[88px\]{bottom:88px}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.left-\[3px\]{left:3px}.left-\[calc\(var\(--spacing-rail\)\+8px\)\]{left:calc(var(--spacing-rail) + 8px)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-px{margin-top:1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-10\!{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40)}.size-\[18px\]{width:18px;height:18px}.size-\[22px\]{width:22px;height:22px}.size-\[26px\]{width:26px;height:26px}.size-\[30px\]{width:30px;height:30px}.size-\[34px\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing) * 1)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[42px\]{height:42px}.h-\[44px\]{height:44px}.h-\[54px\]{height:54px}.h-\[56px\]{height:56px}.h-\[68px\]{height:68px}.h-\[80px\]{height:80px}.h-\[112px\]{height:112px}.h-button{height:var(--spacing-button)}.h-full{height:100%}.h-header{height:var(--spacing-header)}.h-input{height:var(--spacing-input)}.h-nav{height:var(--spacing-nav)}.h-pager{height:var(--spacing-pager)}.h-px{height:1px}.h-row{height:var(--spacing-row)}.h-row-head{height:var(--spacing-row-head)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-32px\)\]{max-height:calc(100vh - 32px)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[30px\]{min-height:30px}.min-h-\[112px\]{min-height:112px}.min-h-input{min-height:var(--spacing-input)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-24{width:calc(var(--spacing) * 24)}.w-\[52px\]{width:52px}.w-\[56px\]{width:56px}.w-\[68px\]{width:68px}.w-\[160px\]{width:160px}.w-\[220px\]{width:220px}.w-\[230px\]{width:230px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[284px\]{width:284px}.w-\[320px\]{width:320px}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-full{width:100%}.w-panel{width:var(--spacing-panel)}.w-rail{width:var(--spacing-rail)}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[560px\]{max-width:560px}.max-w-\[720px\]{max-width:720px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-\[120px\]{min-width:120px}.min-w-\[480px\]{min-width:480px}.min-w-\[640px\]{min-width:640px}.min-w-pager{min-width:var(--spacing-pager)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[18px\]{--tw-translate-x:18px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-start\!{align-items:flex-start!important}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[18px\]{gap:18px}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-\[22px\]{row-gap:22px}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[14px\]{border-radius:14px}.rounded-card{border-radius:var(--radius-card)}.rounded-checkbox{border-radius:var(--radius-checkbox)}.rounded-control{border-radius:var(--radius-control)}.rounded-full{border-radius:3.40282e38px}.rounded-inner{border-radius:var(--radius-inner)}.rounded-modal{border-radius:var(--radius-modal)}.rounded-pager{border-radius:var(--radius-pager)}.rounded-pill{border-radius:var(--radius-pill)}.rounded-tab{border-radius:var(--radius-tab)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#c62828\]{border-color:#c62828}.border-\[\#d2d8e2\]{border-color:#d2d8e2}.border-\[\#e0b020\]{border-color:#e0b020}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-danger{border-color:var(--color-danger)}.border-primary{border-color:var(--color-primary)}.border-side-border{border-color:var(--color-side-border)}.border-transparent{border-color:#0000}.bg-\[\#1d2740\]{background-color:#1d2740}.bg-\[\#22304d\]{background-color:#22304d}.bg-\[\#f58a8a\]{background-color:#f58a8a}.bg-\[\#fdf0f0\]{background-color:#fdf0f0}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-hover{background-color:var(--color-hover)}.bg-ok-bg{background-color:var(--color-ok-bg)}.bg-on-primary{background-color:var(--color-on-primary)}.bg-overlay{background-color:var(--color-overlay)}.bg-primary{background-color:var(--color-primary)}.bg-sel{background-color:var(--color-sel)}.bg-side{background-color:var(--color-side)}.bg-skel{background-color:var(--color-skel)}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\!{padding-inline:calc(var(--spacing) * 0)!important}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[18px\]{padding-inline:18px}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[26px\]{font-size:26px}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.02em\]{--tw-tracking:.02em;letter-spacing:.02em}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#1d2740\]{color:#1d2740}.text-\[\#141b2d\]{color:#141b2d}.text-\[\#c3cbda\]{color:#c3cbda}.text-\[\#c62828\]{color:#c62828}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-muted{color:var(--color-muted)}.text-ok-text{color:var(--color-ok-text)}.text-on-accent{color:var(--color-on-accent)}.text-on-primary{color:var(--color-on-primary)}.text-side-text{color:var(--color-side-text)}.text-text{color:var(--color-text)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.accent-primary{accent-color:var(--color-primary)}.opacity-50{opacity:.5}.shadow-card{--tw-shadow:var(--c-shadow-card);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-login{--tw-shadow:0 24px 60px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-menu{--tw-shadow:0 16px 40px var(--tw-shadow-color,#141b2d29);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-pop{--tw-shadow:0 16px 40px var(--tw-shadow-color,#141b2d2e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-tab{--tw-shadow:0 1px 3px var(--tw-shadow-color,#141b2d1f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-toast{--tw-shadow:0 16px 40px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.first\:pl-5:first-child{padding-left:calc(var(--spacing) * 5)}.last\:pr-5:last-child{padding-right:calc(var(--spacing) * 5)}.focus-within\:border-primary:focus-within{border-color:var(--color-primary)}.focus-within\:shadow-\[0_0_0_3px_var\(--c-ring\)\]:focus-within{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--c-ring));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.hover\:bg-danger-soft:hover{background-color:var(--color-danger-soft)}.hover\:bg-hover:hover{background-color:var(--color-hover)}.hover\:bg-side-hover:hover{background-color:var(--color-side-hover)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-text:hover{color:var(--color-text)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-90:hover{opacity:.9}}.focus\:bg-sel:focus{background-color:var(--color-sel)}.focus\:text-text:focus{color:var(--color-text)}.focus-visible\:shadow-none:focus-visible{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}.has-\[\[data-invalid\]\]\:border-danger:has([data-invalid]){border-color:var(--color-danger)}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:text-placeholder[data-disabled]{color:var(--color-placeholder)}.data-\[disabled\]\:opacity-40[data-disabled]{opacity:.4}@media(hover:hover){.data-\[disabled\]\:hover\:bg-transparent[data-disabled]:hover{background-color:#0000}}.data-\[highlighted\]\:bg-hover[data-highlighted]{background-color:var(--color-hover)}.data-\[outside-view\]\:text-placeholder[data-outside-view],.data-\[placeholder\]\:text-placeholder[data-placeholder]{color:var(--color-placeholder)}.focus\:data-\[placeholder\]\:text-text:focus[data-placeholder]{color:var(--color-text)}.data-\[selected\]\:bg-primary[data-selected]{background-color:var(--color-primary)}.data-\[selected\]\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[selected\]\:text-on-primary[data-selected]{color:var(--color-on-primary)}.data-\[today\]\:font-semibold[data-today]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[today\]\:shadow-\[inset_0_0_0_1px_var\(--c-border-strong\)\][data-today]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--c-border-strong));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[unavailable\]\:cursor-not-allowed[data-unavailable]{cursor:not-allowed}.data-\[unavailable\]\:opacity-40[data-unavailable]{opacity:.4}@media not all and (min-width:1099px){.max-\[1099px\]\:hidden{display:none}}@media(min-width:600px){.min-\[600px\]\:col-start-1{grid-column-start:1}.min-\[600px\]\:col-start-2{grid-column-start:2}.min-\[600px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:900px){.min-\[900px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(./dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(./dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(./dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(./dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(./dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(./dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./dm-sans-latin-ext-700-normal-CJIcxD6K.woff2)format("woff2"),url(./dm-sans-latin-ext-700-normal-BLI3TTWz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(./dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(./dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(./dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(./dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(./dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-bg:#f4f6f9;--c-surface:#fff;--c-subtle:#f3f5f8;--c-border:#e6e9ef;--c-border-strong:#d2d8e2;--c-text:#141b2d;--c-muted:#566175;--c-placeholder:#6b7588;--c-primary:#22304d;--c-on-primary:#fff;--c-danger:#c62828;--c-danger-soft:#fdf0f0;--c-ok-bg:#e3f4e8;--c-ok-text:#1c6b35;--c-ring:#fcc4288c;--c-hover:#f1f3f7;--c-sel:#fdf3cf;--c-skel:#eceff4;--c-overlay:#141b2d80;--c-side:#1d2740;--c-side-border:transparent;--c-shadow-card:0 1px 2px #141b2d0a, 0 4px 16px #141b2d0d}.dark{color-scheme:dark;--c-bg:#111726;--c-surface:#182033;--c-subtle:#1f283d;--c-border:#29334b;--c-border-strong:#3a4661;--c-text:#eef1f6;--c-muted:#a9b3c6;--c-placeholder:#8a95ab;--c-primary:#fcd34d;--c-on-primary:#1b2540;--c-danger:#f58a8a;--c-danger-soft:#3a1d24;--c-ok-bg:#173826;--c-ok-text:#8fdfa8;--c-ring:#fcd34d73;--c-hover:#212b42;--c-sel:#3a3622;--c-skel:#263049;--c-overlay:#050810b3;--c-side:#0d1320;--c-side-border:#222b40;--c-shadow-card:none}@keyframes summer-fade-in{0%{opacity:0}}@keyframes summer-dialog-in{0%{opacity:0;scale:.98}}@media(prefers-reduced-motion:reduce){.bg-overlay,[data-dialog-content],[role=alertdialog]{animation:none!important}.toast-enter-active{transition:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/modules/boardwalk/dist/assets/index-DEJgWNHv.js b/modules/boardwalk/dist/assets/index-DEJgWNHv.js deleted file mode 100644 index be2e63b..0000000 --- a/modules/boardwalk/dist/assets/index-DEJgWNHv.js +++ /dev/null @@ -1,9 +0,0 @@ -(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 $u(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const nt={},lr=[],gn=()=>{},op=()=>!1,Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zo=e=>e.startsWith("onUpdate:"),ut=Object.assign,Cu=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oy=Object.prototype.hasOwnProperty,Xe=(e,t)=>oy.call(e,t),Me=Array.isArray,or=e=>Sl(e)==="[object Map]",sp=e=>Sl(e)==="[object Set]",Bc=e=>Sl(e)==="[object Date]",Fe=e=>typeof e=="function",rt=e=>typeof e=="string",Vt=e=>typeof e=="symbol",Ze=e=>e!==null&&typeof e=="object",ip=e=>(Ze(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),up=Object.prototype.toString,Sl=e=>up.call(e),sy=e=>Sl(e).slice(8,-1),cp=e=>Sl(e)==="[object Object]",Ho=e=>rt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Jr=$u(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ko=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},iy=/-\w/g,ht=Ko(e=>e.replace(iy,t=>t.slice(1).toUpperCase())),uy=/\B([A-Z])/g,ga=Ko(e=>e.replace(uy,"-$1").toLowerCase()),Wo=Ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zr=Ko(e=>e?`on${Wo(e)}`:""),pn=(e,t)=>!Object.is(e,t),io=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},Su=e=>{const t=parseFloat(e);return isNaN(t)?e:t},cy=e=>{const t=rt(e)?Number(e):NaN;return isNaN(t)?e:t};let Nc;const Go=()=>Nc||(Nc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fn(e){if(Me(e)){const t={};for(let n=0;n{if(n){const a=n.split(fy);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function xe(e){let t="";if(rt(e))t=e;else if(Me(e))for(let n=0;n!!(e&&e.__v_isRef===!0),T=e=>rt(e)?e:e==null?"":Me(e)||Ze(e)&&(e.toString===up||!Fe(e.toString))?pp(e)?T(e.value):JSON.stringify(e,vp,2):String(e),vp=(e,t)=>pp(t)?vp(e,t.value):or(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,r],l)=>(n[js(a,l)+" =>"]=r,n),{})}:sp(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>js(n))}:Vt(t)?js(t):Ze(t)&&!Me(t)&&!cp(t)?String(t):t,js=(e,t="")=>{var n;return Vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let ct;class hp{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&&ct&&(ct.active?(this.parent=ct,this.index=(ct.scopes||(ct.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(ct===this)ct=this.prevScope;else{let t=ct;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(Xr){let t=Xr;for(Xr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Qr;){let t=Qr;for(Qr=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 xp(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function wp(e){let t,n=e.depsTail,a=n;for(;a;){const r=a.prevDep;a.version===-1?(a===n&&(n=r),Ou(a),gy(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=r}e.deps=t,e.depsTail=n}function Ii(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(kp(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function kp(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===il)||(e.globalVersion=il,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ii(e))))return;e.flags|=2;const t=e.dep,n=at,a=Jt;at=e,Jt=!0;try{xp(e);const r=e.fn(e._value);(t.version===0||pn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{at=n,Jt=a,wp(e),e.flags&=-3}}function Ou(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)Ou(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function gy(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Jt=!0;const $p=[];function Vn(){$p.push(Jt),Jt=!1}function Ln(){const e=$p.pop();Jt=e===void 0?!0:e}function Vc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=at;at=void 0;try{t()}finally{at=n}}}let il=0;class by{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 Yo{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(!at||!Jt||at===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==at)n=this.activeLink=new by(at,this),at.deps?(n.prevDep=at.depsTail,at.depsTail.nextDep=n,at.depsTail=n):at.deps=at.depsTail=n,Cp(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=at.depsTail,n.nextDep=void 0,at.depsTail.nextDep=n,at.depsTail=n,at.deps===n&&(at.deps=a)}return n}trigger(t){this.version++,il++,this.notify(t)}notify(t){Du();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Pu()}}}function Cp(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)Cp(a)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const mo=new WeakMap,Ma=Symbol(""),Fi=Symbol(""),ul=Symbol("");function yt(e,t,n){if(Jt&&at){let a=mo.get(e);a||mo.set(e,a=new Map);let r=a.get(n);r||(a.set(n,r=new Yo),r.map=a,r.key=n),r.track()}}function On(e,t,n,a,r,l){const o=mo.get(e);if(!o){il++;return}const s=i=>{i&&i.trigger()};if(Du(),t==="clear")o.forEach(s);else{const i=Me(e),c=i&&Ho(n);if(i&&n==="length"){const d=Number(a);o.forEach((f,p)=>{(p==="length"||p===ul||!Vt(p)&&p>=d)&&s(f)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),c&&s(o.get(ul)),t){case"add":i?c&&s(o.get("length")):(s(o.get(Ma)),or(e)&&s(o.get(Fi)));break;case"delete":i||(s(o.get(Ma)),or(e)&&s(o.get(Fi)));break;case"set":or(e)&&s(o.get(Ma));break}}Pu()}function _y(e,t){const n=mo.get(e);return n&&n.get(t)}function Ha(e){const t=Je(e);return t===e?t:(yt(t,"iterate",ul),Nt(e)?t:t.map(Qt))}function Jo(e){return yt(e=Je(e),"iterate",ul),e}function dn(e,t){return jn(e)?hr(Ta(e)?Qt(t):t):Qt(t)}const xy={__proto__:null,[Symbol.iterator](){return zs(this,Symbol.iterator,e=>dn(this,e))},concat(...e){return Ha(this).concat(...e.map(t=>Me(t)?Ha(t):t))},entries(){return zs(this,"entries",e=>(e[1]=dn(this,e[1]),e))},every(e,t){return Sn(this,"every",e,t,void 0,arguments)},filter(e,t){return Sn(this,"filter",e,t,n=>n.map(a=>dn(this,a)),arguments)},find(e,t){return Sn(this,"find",e,t,n=>dn(this,n),arguments)},findIndex(e,t){return Sn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Sn(this,"findLast",e,t,n=>dn(this,n),arguments)},findLastIndex(e,t){return Sn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Sn(this,"forEach",e,t,void 0,arguments)},includes(...e){return Hs(this,"includes",e)},indexOf(...e){return Hs(this,"indexOf",e)},join(e){return Ha(this).join(e)},lastIndexOf(...e){return Hs(this,"lastIndexOf",e)},map(e,t){return Sn(this,"map",e,t,void 0,arguments)},pop(){return qr(this,"pop")},push(...e){return qr(this,"push",e)},reduce(e,...t){return Lc(this,"reduce",e,t)},reduceRight(e,...t){return Lc(this,"reduceRight",e,t)},shift(){return qr(this,"shift")},some(e,t){return Sn(this,"some",e,t,void 0,arguments)},splice(...e){return qr(this,"splice",e)},toReversed(){return Ha(this).toReversed()},toSorted(e){return Ha(this).toSorted(e)},toSpliced(...e){return Ha(this).toSpliced(...e)},unshift(...e){return qr(this,"unshift",e)},values(){return zs(this,"values",e=>dn(this,e))}};function zs(e,t,n){const a=Jo(e),r=a[t]();return a!==e&&!Nt(e)&&(r._next=r.next,r.next=()=>{const l=r._next();return l.done||(l.value=n(l.value)),l}),r}const wy=Array.prototype;function Sn(e,t,n,a,r,l){const o=Jo(e),s=o!==e&&!Nt(e),i=o[t];if(i!==wy[t]){const f=i.apply(e,l);return s?Qt(f):f}let c=n;o!==e&&(s?c=function(f,p){return n.call(this,dn(e,f),p,e)}:n.length>2&&(c=function(f,p){return n.call(this,f,p,e)}));const d=i.call(o,c,a);return s&&r?r(d):d}function Lc(e,t,n,a){const r=Jo(e),l=r!==e&&!Nt(e);let o=n,s=!1;r!==e&&(l?(s=a.length===0,o=function(c,d,f){return s&&(s=!1,c=dn(e,c)),n.call(this,c,dn(e,d),f,e)}):n.length>3&&(o=function(c,d,f){return n.call(this,c,d,f,e)}));const i=r[t](o,...a);return s?dn(e,i):i}function Hs(e,t,n){const a=Je(e);yt(a,"iterate",ul);const r=a[t](...n);return(r===-1||r===!1)&&Xo(n[0])?(n[0]=Je(n[0]),a[t](...n)):r}function qr(e,t,n=[]){Vn(),Du();const a=Je(e)[t].apply(e,n);return Pu(),Ln(),a}const ky=$u("__proto__,__v_isRef,__isVue"),Sp=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vt));function $y(e){Vt(e)||(e=String(e));const t=Je(this);return yt(t,"has",e),t.hasOwnProperty(e)}class Ep{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?Tp:Mp:l?Op:Pp).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const o=Me(t);if(!r){let i;if(o&&(i=xy[n]))return i;if(n==="hasOwnProperty")return $y}const s=Reflect.get(t,n,ot(t)?t:a);if((Vt(n)?Sp.has(n):ky(n))||(r||yt(t,"get",n),l))return s;if(ot(s)){const i=o&&Ho(n)?s:s.value;return r&&Ze(i)?dt(i):i}return Ze(s)?r?dt(s):Zt(s):s}}class Ap extends Ep{constructor(t=!1){super(!1,t)}set(t,n,a,r){let l=t[n];const o=Me(t)&&Ho(n);if(!this._isShallow){const c=jn(l);if(!Nt(a)&&!jn(a)&&(l=Je(l),a=Je(a)),!o&&ot(l)&&!ot(a))return c||(l.value=a),!0}const s=o?Number(n)e,Hl=e=>Reflect.getPrototypeOf(e);function Dy(e,t,n){return function(...a){const r=this.__v_raw,l=Je(r),o=or(l),s=e==="entries"||e===Symbol.iterator&&o,i=e==="keys"&&o,c=r[e](...a),d=n?Bi:t?hr:Qt;return!t&&yt(l,"iterate",i?Fi:Ma),ut(Object.create(c),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[d(f[0]),d(f[1])]:d(f),done:p}}})}}function Kl(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Py(e,t){const n={get(r){const l=this.__v_raw,o=Je(l),s=Je(r);e||(pn(r,s)&&yt(o,"get",r),yt(o,"get",s));const{has:i}=Hl(o),c=t?Bi:e?hr:Qt;if(i.call(o,r))return c(l.get(r));if(i.call(o,s))return c(l.get(s));l!==o&&l.get(r)},get size(){const r=this.__v_raw;return!e&&yt(Je(r),"iterate",Ma),r.size},has(r){const l=this.__v_raw,o=Je(l),s=Je(r);return e||(pn(r,s)&&yt(o,"has",r),yt(o,"has",s)),r===s?l.has(r):l.has(r)||l.has(s)},forEach(r,l){const o=this,s=o.__v_raw,i=Je(s),c=t?Bi:e?hr:Qt;return!e&&yt(i,"iterate",Ma),s.forEach((d,f)=>r.call(l,c(d),c(f),o))}};return ut(n,e?{add:Kl("add"),set:Kl("set"),delete:Kl("delete"),clear:Kl("clear")}:{add(r){const l=Je(this),o=Hl(l),s=Je(r),i=!t&&!Nt(r)&&!jn(r)?s:r;return o.has.call(l,i)||pn(r,i)&&o.has.call(l,r)||pn(s,i)&&o.has.call(l,s)||(l.add(i),On(l,"add",i,i)),this},set(r,l){!t&&!Nt(l)&&!jn(l)&&(l=Je(l));const o=Je(this),{has:s,get:i}=Hl(o);let c=s.call(o,r);c||(r=Je(r),c=s.call(o,r));const d=i.call(o,r);return o.set(r,l),c?pn(l,d)&&On(o,"set",r,l):On(o,"add",r,l),this},delete(r){const l=Je(this),{has:o,get:s}=Hl(l);let i=o.call(l,r);i||(r=Je(r),i=o.call(l,r)),s&&s.call(l,r);const c=l.delete(r);return i&&On(l,"delete",r,void 0),c},clear(){const r=Je(this),l=r.size!==0,o=r.clear();return l&&On(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Dy(r,e,t)}),n}function Zo(e,t){const n=Py(e,t);return(a,r,l)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?a:Reflect.get(Xe(n,r)&&r in a?n:a,r,l)}const Oy={get:Zo(!1,!1)},My={get:Zo(!1,!0)},Ty={get:Zo(!0,!1)},Ry={get:Zo(!0,!0)},Pp=new WeakMap,Op=new WeakMap,Mp=new WeakMap,Tp=new WeakMap;function qy(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Zt(e){return jn(e)?e:Qo(e,!1,Cy,Oy,Pp)}function Rp(e){return Qo(e,!1,Ey,My,Op)}function dt(e){return Qo(e,!0,Sy,Ty,Mp)}function Ka(e){return Qo(e,!0,Ay,Ry,Tp)}function Qo(e,t,n,a,r){if(!Ze(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=qy(sy(e));if(o===0)return e;const s=new Proxy(e,o===2?a:n);return r.set(e,s),s}function Ta(e){return jn(e)?Ta(e.__v_raw):!!(e&&e.__v_isReactive)}function jn(e){return!!(e&&e.__v_isReadonly)}function Nt(e){return!!(e&&e.__v_isShallow)}function Xo(e){return e?!!e.__v_raw:!1}function Je(e){const t=e&&e.__v_raw;return t?Je(t):e}function yo(e){return!Xe(e,"__v_skip")&&Object.isExtensible(e)&&dp(e,"__v_skip",!0),e}const Qt=e=>Ze(e)?Zt(e):e,hr=e=>Ze(e)?dt(e):e;function ot(e){return e?e.__v_isRef===!0:!1}function M(e){return qp(e,!1)}function es(e){return qp(e,!0)}function qp(e,t){return ot(e)?e:new Iy(e,t)}class Iy{constructor(t,n){this.dep=new Yo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Je(t),this._value=n?t:Qt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,a=this.__v_isShallow||Nt(t)||jn(t);t=a?t:Je(t),pn(t,n)&&(this._rawValue=t,this._value=a?t:Qt(t),this.dep.trigger())}}function Fy(e){e.dep&&e.dep.trigger()}function u(e){return ot(e)?e.value:e}function Tt(e){return Fe(e)?e():u(e)}const By={get:(e,t,n)=>t==="__v_raw"?e:u(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const r=e[t];return ot(r)&&!ot(n)?(r.value=n,!0):Reflect.set(e,t,n,a)}};function Ip(e){return Ta(e)?e:new Proxy(e,By)}class Ny{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Yo,{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 Vy(e){return new Ny(e)}function Lt(e){const t=Me(e)?new Array(e.length):{};for(const n in e)t[n]=Fp(e,n);return t}class Ly{constructor(t,n,a){this._object=t,this._defaultValue=a,this.__v_isRef=!0,this._value=void 0,this._key=Vt(n)?n:String(n),this._raw=Je(t);let r=!0,l=t;if(!Me(t)||Vt(this._key)||!Ho(this._key))do r=!Xo(l)||Nt(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&&ot(this._raw[this._key])){const n=this._object[this._key];if(ot(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return _y(this._raw,this._key)}}class jy{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 Uy(e,t,n){return ot(e)?e:Fe(e)?new jy(e):Ze(e)&&arguments.length>1?Fp(e,t,n):M(e)}function Fp(e,t,n){return new Ly(e,t,n)}class zy{constructor(t,n,a){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Yo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=il-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=a}notify(){if(this.flags|=16,!(this.flags&8)&&at!==this)return _p(this,!0),!0}get value(){const t=this.dep.track();return kp(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hy(e,t,n=!1){let a,r;return Fe(e)?a=e:(a=e.get,r=e.set),new zy(a,r,n)}const Wl={},go=new WeakMap;let Ea;function Ky(e,t=!1,n=Ea){if(n){let a=go.get(n);a||go.set(n,a=[]),a.push(e)}}function Wy(e,t,n=nt){const{immediate:a,deep:r,once:l,scheduler:o,augmentJob:s,call:i}=n,c=A=>r?A:Nt(A)||r===!1||r===0?Mn(A,1):Mn(A);let d,f,p,v,m=!1,g=!1;if(ot(e)?(f=()=>e.value,m=Nt(e)):Ta(e)?(f=()=>c(e),m=!0):Me(e)?(g=!0,m=e.some(A=>Ta(A)||Nt(A)),f=()=>e.map(A=>{if(ot(A))return A.value;if(Ta(A))return c(A);if(Fe(A))return i?i(A,2):A()})):Fe(e)?t?f=i?()=>i(e,2):e:f=()=>{if(p){Vn();try{p()}finally{Ln()}}const A=Ea;Ea=d;try{return i?i(e,3,[v]):e(v)}finally{Ea=A}}:f=gn,t&&r){const A=f,L=r===!0?1/0:r;f=()=>Mn(A(),L)}const _=Au(),y=()=>{d.stop(),_&&_.active&&Cu(_.effects,d)};if(l&&t){const A=t;t=(...L)=>{A(...L),y()}}let x=g?new Array(e.length).fill(Wl):Wl;const S=A=>{if(!(!(d.flags&1)||!d.dirty&&!A))if(t){const L=d.run();if(r||m||(g?L.some((J,z)=>pn(J,x[z])):pn(L,x))){p&&p();const J=Ea;Ea=d;try{const z=[L,x===Wl?void 0:g&&x[0]===Wl?[]:x,v];x=L,i?i(t,3,z):t(...z)}finally{Ea=J}}}else d.run()};return s&&s(S),d=new gp(f),d.scheduler=o?()=>o(S,!1):S,v=A=>Ky(A,!1,d),p=d.onStop=()=>{const A=go.get(d);if(A){if(i)i(A,4);else for(const L of A)L();go.delete(d)}},t?a?S(!0):x=d.run():o?o(S.bind(null,!0),!0):d.run(),y.pause=d.pause.bind(d),y.resume=d.resume.bind(d),y.stop=y,y}function Mn(e,t=1/0,n){if(t<=0||!Ze(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ot(e))Mn(e.value,t,n);else if(Me(e))for(let a=0;a{Mn(a,t,n)});else if(cp(e)){for(const a in e)Mn(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&Mn(e[a],t,n)}return e}function El(e,t,n,a){try{return a?e(...a):e()}catch(r){ts(r,t,n)}}function Gt(e,t,n,a){if(Fe(e)){const r=El(e,t,n,a);return r&&ip(r)&&r.catch(l=>{ts(l,t,n)}),r}if(Me(e)){const r=[];for(let l=0;l>>1,r=Et[a],l=cl(r);l=cl(n)?Et.push(e):Et.splice(Yy(t),0,e),e.flags|=1,Np()}}function Np(){bo||(bo=Bp.then(Lp))}function Jy(e){Me(e)?sr.push(...e):ra&&e.id===-1?ra.splice(Xa+1,0,e):e.flags&1||(sr.push(e),e.flags|=1),Np()}function jc(e,t,n=un+1){for(;ncl(n)-cl(a));if(sr.length=0,ra){ra.push(...t);return}for(ra=t,Xa=0;Xae.id==null?e.flags&2?-1:1/0:e.id;function Lp(e){try{for(un=0;un{a._d&&ko(-1);const l=_o(t);let o;try{o=e(...r)}finally{_o(l),a._d&&ko(1)}return o};return a._n=!0,a._c=!0,a._d=!0,a}function Ra(e,t){if(vt===null)return e;const n=os(vt),a=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&Fe(t)?t.call(a&&a.proxy):t}}const Zy=Symbol.for("v-scx"),Qy=()=>st(Zy);function Xt(e,t){return ns(e,null,t)}function Up(e,t){return ns(e,null,{flush:"post"})}function Be(e,t,n){return ns(e,t,n)}function ns(e,t,n=nt){const{immediate:a,deep:r,flush:l,once:o}=n,s=ut({},n),i=t&&a||!t&&l!=="post";let c;if(vl){if(l==="sync"){const v=Qy();c=v.__watcherHandles||(v.__watcherHandles=[])}else if(!i){const v=()=>{};return v.stop=gn,v.resume=gn,v.pause=gn,v}}const d=gt;s.call=(v,m,g)=>Gt(v,d,m,g);let f=!1;l==="post"?s.scheduler=v=>{St(v,d&&d.suspense)}:l!=="sync"&&(f=!0,s.scheduler=(v,m)=>{m?v():Mu(v)}),s.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,d&&(v.id=d.uid,v.i=d))};const p=Wy(e,t,s);return vl&&(c?c.push(p):i&&p()),p}function Xy(e,t,n){const a=this.proxy,r=rt(e)?e.includes(".")?zp(a,e):()=>a[e]:e.bind(a,a);let l;Fe(t)?l=t:(l=t.handler,n=t);const o=Al(this),s=ns(r,l.bind(a),n);return o(),s}function zp(e,t){const n=t.split(".");return()=>{let a=e;for(let r=0;re.__isTeleport,Da=e=>e&&(e.disabled||e.disabled===""),tg=e=>e&&(e.defer||e.defer===""),Uc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,zc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ni=(e,t)=>{const n=e&&e.to;return rt(n)?t?t(n):null:n},ng={name:"Teleport",__isTeleport:!0,process(e,t,n,a,r,l,o,s,i,c){const{mc:d,pc:f,pbc:p,o:{insert:v,querySelector:m,createText:g,createComment:_,parentNode:y}}=c,x=Da(t.props);let{dynamicChildren:S}=t;const A=(z,K,k)=>{z.shapeFlag&16&&d(z.children,K,k,r,l,o,s,i)},L=(z=t)=>{const K=Da(z.props),k=z.target=Ni(z.props,m),F=Vi(k,z,g,v);k&&(o!=="svg"&&Uc(k)?o="svg":o!=="mathml"&&zc(k)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(k),K||(A(z,k,F),Hr(z,!1)))},J=z=>{const K=()=>{if(ta.get(z)===K){if(ta.delete(z),Da(z.props)){const k=y(z.el)||n;A(z,k,z.anchor),Hr(z,!0)}L(z)}};ta.set(z,K),St(K,l)};if(e==null){const z=t.el=g(""),K=t.anchor=g("");if(v(z,n,a),v(K,n,a),tg(t.props)||l&&l.pendingBranch){J(t);return}x&&(A(t,n,K),Hr(t,!0)),L()}else{t.el=e.el;const z=t.anchor=e.anchor,K=ta.get(e);if(K){K.flags|=8,ta.delete(e),J(t);return}t.targetStart=e.targetStart;const k=t.target=e.target,F=t.targetAnchor=e.targetAnchor,G=Da(e.props),D=G?n:k,V=G?z:F;if(o==="svg"||Uc(k)?o="svg":(o==="mathml"||zc(k))&&(o="mathml"),S?(p(e.dynamicChildren,S,D,r,l,o,s),Iu(e,t,!0)):i||f(e,t,D,V,r,l,o,s,!1),x)G?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Gl(t,n,z,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=t.target=Ni(t.props,m);W&&Gl(t,W,null,c,0)}else G&&Gl(t,k,F,c,1);Hr(t,x)}},remove(e,t,n,{um:a,o:{remove:r}},l){const{shapeFlag:o,children:s,anchor:i,targetStart:c,targetAnchor:d,target:f,props:p}=e,v=l||!Da(p),m=ta.get(e);if(m&&(m.flags|=8,ta.delete(e)),f&&(r(c),r(d)),l&&r(i),!m&&o&16)for(let g=0;g{e.isMounted=!0}),qt(()=>{e.isUnmounting=!0}),e}const jt=[Function,Array],og={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jt,onEnter:jt,onAfterEnter:jt,onEnterCancelled:jt,onBeforeLeave:jt,onLeave:jt,onAfterLeave:jt,onLeaveCancelled:jt,onBeforeAppear:jt,onAppear:jt,onAfterAppear:jt,onAppearCancelled:jt};function sg(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 Li(e,t,n,a,r){const{appear:l,mode:o,persisted:s=!1,onBeforeEnter:i,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:p,onLeave:v,onAfterLeave:m,onLeaveCancelled:g,onBeforeAppear:_,onAppear:y,onAfterAppear:x,onAppearCancelled:S}=t,A=String(e.key),L=sg(n,e),J=(k,F)=>{k&&Gt(k,a,9,F)},z=(k,F)=>{const G=F[1];J(k,F),Me(k)?k.every(D=>D.length<=1)&&G():k.length<=1&&G()},K={mode:o,persisted:s,beforeEnter(k){let F=i;if(!n.isMounted)if(l)F=_||i;else return;k[cn]&&k[cn](!0);const G=L[A];G&&er(e,G)&&G.el[cn]&&G.el[cn](),J(F,[k])},enter(k){if(L[A]===e)return;let F=c,G=d,D=f;if(!n.isMounted)if(l)F=y||c,G=x||d,D=S||f;else return;let V=!1;k[Ir]=N=>{V||(V=!0,N?J(D,[k]):J(G,[k]),K.delayedLeave&&K.delayedLeave(),k[Ir]=void 0)};const W=k[Ir].bind(null,!1);F?z(F,[k,W]):W()},leave(k,F){const G=String(e.key);if(k[Ir]&&k[Ir](!0),n.isUnmounting)return F();J(p,[k]);let D=!1;k[cn]=W=>{D||(D=!0,F(),W?J(g,[k]):J(m,[k]),k[cn]=void 0,L[G]===e&&delete L[G])};const V=k[cn].bind(null,!1);L[G]=e,v?z(v,[k,V]):V()},clone(k){return Li(k,t,n,a)}};return K}function dl(e,t){e.shapeFlag&6&&e.component?(e.transition=t,dl(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 Kp(e,t=!1,n){let a=[],r=0;for(let l=0;l1)for(let l=0;lel(g,t&&(Me(t)?t[_]:t),n,a,r));return}if(ir(a)&&!r){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&el(e,t,n,a.component.subTree);return}const l=a.shapeFlag&4?os(a.component):a.el,o=r?null:l,{i:s,r:i}=e,c=t&&t.r,d=s.refs===nt?s.refs={}:s.refs,f=s.setupState,p=Je(f),v=f===nt?op:g=>Hc(d,g)?!1:Xe(p,g),m=(g,_)=>!(_&&Hc(d,_));if(c!=null&&c!==i){if(Kc(t),rt(c))d[c]=null,v(c)&&(f[c]=null);else if(ot(c)){const g=t;m(c,g.k)&&(c.value=null),g.k&&(d[g.k]=null)}}if(Fe(i))El(i,s,12,[o,d]);else{const g=rt(i),_=ot(i);if(g||_){const y=()=>{if(e.f){const x=g?v(i)?f[i]:d[i]:m()||!e.k?i.value:d[e.k];if(r)Me(x)&&Cu(x,l);else if(Me(x))x.includes(l)||x.push(l);else if(g)d[i]=[l],v(i)&&(f[i]=d[i]);else{const S=[l];m(i,e.k)&&(i.value=S),e.k&&(d[e.k]=S)}}else g?(d[i]=o,v(i)&&(f[i]=o)):_&&(m(i,e.k)&&(i.value=o),e.k&&(d[e.k]=o))};if(o){const x=()=>{y(),xo.delete(e)};x.id=-1,xo.set(e,x),St(x,n)}else Kc(e),y()}}}function Kc(e){const t=xo.get(e);t&&(t.flags|=8,xo.delete(e))}Go().requestIdleCallback;Go().cancelIdleCallback;const ir=e=>!!e.type.__asyncLoader,Gp=e=>e.type.__isKeepAlive;function Yp(e,t){Zp(e,"a",t)}function Jp(e,t){Zp(e,"da",t)}function Zp(e,t,n=gt){const a=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(as(t,a,n),n){let r=n.parent;for(;r&&r.parent;)Gp(r.parent.vnode)&&ug(a,t,n,r),r=r.parent}}function ug(e,t,n,a){const r=as(t,e,a,!0);Er(()=>{Cu(a[t],r)},n)}function as(e,t,n=gt,a=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...o)=>{Vn();const s=Al(n),i=Gt(t,n,e,o);return s(),Ln(),i});return a?r.unshift(l):r.push(l),l}}const Kn=e=>(t,n=gt)=>{(!vl||e==="sp")&&as(e,(...a)=>t(...a),n)},cg=Kn("bm"),_t=Kn("m"),dg=Kn("bu"),Tu=Kn("u"),qt=Kn("bum"),Er=Kn("um"),fg=Kn("sp"),pg=Kn("rtg"),vg=Kn("rtc");function hg(e,t=gt){as("ec",e,t)}const mg="components",Qp=Symbol.for("v-ndc");function bn(e){return rt(e)?yg(mg,e,!1)||e:e||Qp}function yg(e,t,n=!0,a=!1){const r=vt||gt;if(r){const l=r.type;{const s=Xg(l,!1);if(s&&(s===t||s===ht(t)||s===Wo(ht(t))))return l}const o=Wc(r[e]||l[e],t)||Wc(r.appContext[e],t);return!o&&a?l:o}}function Wc(e,t){return e&&(e[t]||e[ht(t)]||e[Wo(ht(t))])}function Ne(e,t,n,a){let r;const l=n,o=Me(e);if(o||rt(e)){const s=o&&Ta(e);let i=!1,c=!1;s&&(i=!Nt(e),c=jn(e),e=Jo(e)),r=new Array(e.length);for(let d=0,f=e.length;dt(s,i,void 0,l));else{const s=Object.keys(e);r=new Array(s.length);for(let i=0,c=s.length;i0;return t!=="default"&&(n.name=t),h(),U(_e,null,[H("slot",n,a&&a())],c?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),h();const o=l&&Xp(l(n)),s=n.key||o&&o.key,i=U(_e,{key:(s&&!Vt(s)?s:`_${t}`)+(!o&&a?"_fb":"")},o||(a?a():[]),o&&e._===1?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),l&&l._c&&(l._d=!0),i}function Xp(e){return e.some(t=>pl(t)?!(t.type===en||t.type===_e&&!Xp(t.children)):!0)?e:null}function ev(e,t){const n={};for(const a in e)n[Zr(a)]=e[a];return n}const ji=e=>e?_v(e)?os(e):ji(e.parent):null,tl=ut(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=>ji(e.parent),$root:e=>ji(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>av(e),$forceUpdate:e=>e.f||(e.f=()=>{Mu(e.update)}),$nextTick:e=>e.n||(e.n=ze.bind(e.proxy)),$watch:e=>Xy.bind(e)}),Ks=(e,t)=>e!==nt&&!e.__isScriptSetup&&Xe(e,t),gg={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:r,props:l,accessCache:o,type:s,appContext:i}=e;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return a[t];case 2:return r[t];case 4:return n[t];case 3:return l[t]}else{if(Ks(a,t))return o[t]=1,a[t];if(r!==nt&&Xe(r,t))return o[t]=2,r[t];if(Xe(l,t))return o[t]=3,l[t];if(n!==nt&&Xe(n,t))return o[t]=4,n[t];zi&&(o[t]=0)}}const c=tl[t];let d,f;if(c)return t==="$attrs"&&yt(e.attrs,"get",""),c(e);if((d=s.__cssModules)&&(d=d[t]))return d;if(n!==nt&&Xe(n,t))return o[t]=4,n[t];if(f=i.config.globalProperties,Xe(f,t))return f[t]},set({_:e},t,n){const{data:a,setupState:r,ctx:l}=e;return Ks(r,t)?(r[t]=n,!0):a!==nt&&Xe(a,t)?(a[t]=n,!0):Xe(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}},s){let i;return!!(n[s]||e!==nt&&s[0]!=="$"&&Xe(e,s)||Ks(t,s)||Xe(l,s)||Xe(a,s)||Xe(tl,s)||Xe(r.config.globalProperties,s)||(i=o.__cssModules)&&i[s])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Xe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ui(e){return Me(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function tv(e,t){const n=Ui(e);for(const a in t){if(a.startsWith("__skip"))continue;let r=n[a];r?Me(r)||Fe(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 zi=!0;function bg(e){const t=av(e),n=e.proxy,a=e.ctx;zi=!1,t.beforeCreate&&Gc(t.beforeCreate,e,"bc");const{data:r,computed:l,methods:o,watch:s,provide:i,inject:c,created:d,beforeMount:f,mounted:p,beforeUpdate:v,updated:m,activated:g,deactivated:_,beforeDestroy:y,beforeUnmount:x,destroyed:S,unmounted:A,render:L,renderTracked:J,renderTriggered:z,errorCaptured:K,serverPrefetch:k,expose:F,inheritAttrs:G,components:D,directives:V,filters:W}=t;if(c&&_g(c,a,null),o)for(const ne in o){const ie=o[ne];Fe(ie)&&(a[ne]=ie.bind(n))}if(r){const ne=r.call(n,n);Ze(ne)&&(e.data=Zt(ne))}if(zi=!0,l)for(const ne in l){const ie=l[ne],te=Fe(ie)?ie.bind(n,n):Fe(ie.get)?ie.get.bind(n,n):gn,oe=!Fe(ie)&&Fe(ie.set)?ie.set.bind(n):gn,le=w({get:te,set:oe});Object.defineProperty(a,ne,{enumerable:!0,configurable:!0,get:()=>le.value,set:re=>le.value=re})}if(s)for(const ne in s)nv(s[ne],a,n,ne);if(i){const ne=Fe(i)?i.call(n):i;Reflect.ownKeys(ne).forEach(ie=>{Dt(ie,ne[ie])})}d&&Gc(d,e,"c");function Q(ne,ie){Me(ie)?ie.forEach(te=>ne(te.bind(n))):ie&&ne(ie.bind(n))}if(Q(cg,f),Q(_t,p),Q(dg,v),Q(Tu,m),Q(Yp,g),Q(Jp,_),Q(hg,K),Q(vg,J),Q(pg,z),Q(qt,x),Q(Er,A),Q(fg,k),Me(F))if(F.length){const ne=e.exposed||(e.exposed={});F.forEach(ie=>{Object.defineProperty(ne,ie,{get:()=>n[ie],set:te=>n[ie]=te,enumerable:!0})})}else e.exposed||(e.exposed={});L&&e.render===gn&&(e.render=L),G!=null&&(e.inheritAttrs=G),D&&(e.components=D),V&&(e.directives=V),k&&Wp(e)}function _g(e,t,n=gn){Me(e)&&(e=Hi(e));for(const a in e){const r=e[a];let l;Ze(r)?"default"in r?l=st(r.from||a,r.default,!0):l=st(r.from||a):l=st(r),ot(l)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>l.value,set:o=>l.value=o}):t[a]=l}}function Gc(e,t,n){Gt(Me(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function nv(e,t,n,a){let r=a.includes(".")?zp(n,a):()=>n[a];if(rt(e)){const l=t[e];Fe(l)&&Be(r,l)}else if(Fe(e))Be(r,e.bind(n));else if(Ze(e))if(Me(e))e.forEach(l=>nv(l,t,n,a));else{const l=Fe(e.handler)?e.handler.bind(n):t[e.handler];Fe(l)&&Be(r,l,e)}}function av(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:o}}=e.appContext,s=l.get(t);let i;return s?i=s:!r.length&&!n&&!a?i=t:(i={},r.length&&r.forEach(c=>wo(i,c,o,!0)),wo(i,t,o)),Ze(t)&&l.set(t,i),i}function wo(e,t,n,a=!1){const{mixins:r,extends:l}=t;l&&wo(e,l,n,!0),r&&r.forEach(o=>wo(e,o,n,!0));for(const o in t)if(!(a&&o==="expose")){const s=xg[o]||n&&n[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const xg={data:Yc,props:Jc,emits:Jc,methods:Kr,computed:Kr,beforeCreate:Ct,created:Ct,beforeMount:Ct,mounted:Ct,beforeUpdate:Ct,updated:Ct,beforeDestroy:Ct,beforeUnmount:Ct,destroyed:Ct,unmounted:Ct,activated:Ct,deactivated:Ct,errorCaptured:Ct,serverPrefetch:Ct,components:Kr,directives:Kr,watch:kg,provide:Yc,inject:wg};function Yc(e,t){return t?e?function(){return ut(Fe(e)?e.call(this,this):e,Fe(t)?t.call(this,this):t)}:t:e}function wg(e,t){return Kr(Hi(e),Hi(t))}function Hi(e){if(Me(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${ga(t)}Modifiers`];function Eg(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||nt;let r=n;const l=t.startsWith("update:"),o=l&&Sg(a,t.slice(7));o&&(o.trim&&(r=n.map(d=>rt(d)?d.trim():d)),o.number&&(r=n.map(Su)));let s,i=a[s=Zr(t)]||a[s=Zr(ht(t))];!i&&l&&(i=a[s=Zr(ga(t))]),i&&Gt(i,e,6,r);const c=a[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Gt(c,e,6,r)}}const Ag=new WeakMap;function lv(e,t,n=!1){const a=n?Ag:t.emitsCache,r=a.get(e);if(r!==void 0)return r;const l=e.emits;let o={},s=!1;if(!Fe(e)){const i=c=>{const d=lv(c,t,!0);d&&(s=!0,ut(o,d))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!l&&!s?(Ze(e)&&a.set(e,null),null):(Me(l)?l.forEach(i=>o[i]=null):ut(o,l),Ze(e)&&a.set(e,o),o)}function rs(e,t){return!e||!Uo(t)?!1:(t=t.slice(2).replace(/Once$/,""),Xe(e,t[0].toLowerCase()+t.slice(1))||Xe(e,ga(t))||Xe(e,t))}function Zc(e){const{type:t,vnode:n,proxy:a,withProxy:r,propsOptions:[l],slots:o,attrs:s,emit:i,render:c,renderCache:d,props:f,data:p,setupState:v,ctx:m,inheritAttrs:g}=e,_=_o(e);let y,x;try{if(n.shapeFlag&4){const A=r||a,L=A;y=fn(c.call(L,A,d,f,v,p,m)),x=s}else{const A=t;y=fn(A.length>1?A(f,{attrs:s,slots:o,emit:i}):A(f,null)),x=t.props?s:Dg(s)}}catch(A){nl.length=0,ts(A,e,1),y=H(en)}let S=y;if(x&&g!==!1){const A=Object.keys(x),{shapeFlag:L}=S;A.length&&L&7&&(l&&A.some(zo)&&(x=Pg(x,l)),S=fa(S,x,!1,!0))}return n.dirs&&(S=fa(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&dl(S,n.transition),y=S,_o(_),y}const Dg=e=>{let t;for(const n in e)(n==="class"||n==="style"||Uo(n))&&((t||(t={}))[n]=e[n]);return t},Pg=(e,t)=>{const n={};for(const a in e)(!zo(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function Og(e,t,n){const{props:a,children:r,component:l}=e,{props:o,children:s,patchFlag:i}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return a?Qc(a,o,c):!!o;if(i&8){const d=t.dynamicProps;for(let f=0;fObject.create(sv),uv=e=>Object.getPrototypeOf(e)===sv;function Tg(e,t,n,a=!1){const r={},l=iv();e.propsDefaults=Object.create(null),cv(e,t,r,l);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=a?r:Rp(r):e.type.props?e.props=r:e.props=l,e.attrs=l}function Rg(e,t,n,a){const{props:r,attrs:l,vnode:{patchFlag:o}}=e,s=Je(r),[i]=e.propsOptions;let c=!1;if((a||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[p,v]=dv(f,t,!0);ut(o,p),v&&s.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!i)return Ze(e)&&a.set(e,lr),lr;if(Me(l))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",qu=e=>Me(e)?e.map(fn):[fn(e)],Ig=(e,t,n)=>{if(t._n)return t;const a=B((...r)=>qu(t(...r)),n);return a._c=!1,a},fv=(e,t,n)=>{const a=e._ctx;for(const r in e){if(Ru(r))continue;const l=e[r];if(Fe(l))t[r]=Ig(r,l,a);else if(l!=null){const o=qu(l);t[r]=()=>o}}},pv=(e,t)=>{const n=qu(t);e.slots.default=()=>n},vv=(e,t,n)=>{for(const a in t)(n||!Ru(a))&&(e[a]=t[a])},Fg=(e,t,n)=>{const a=e.slots=iv();if(e.vnode.shapeFlag&32){const r=t._;r?(vv(a,t,n),n&&dp(a,"_",r,!0)):fv(t,a)}else t&&pv(e,t)},Bg=(e,t,n)=>{const{vnode:a,slots:r}=e;let l=!0,o=nt;if(a.shapeFlag&32){const s=t._;s?n&&s===1?l=!1:vv(r,t,n):(l=!t.$stable,fv(t,r)),o=t}else t&&(pv(e,t),o={default:1});if(l)for(const s in r)!Ru(s)&&o[s]==null&&delete r[s]},St=Ug;function Ng(e){return Vg(e)}function Vg(e,t){const n=Go();n.__VUE__=!0;const{insert:a,remove:r,patchProp:l,createElement:o,createText:s,createComment:i,setText:c,setElementText:d,parentNode:f,nextSibling:p,setScopeId:v=gn,insertStaticContent:m}=e,g=(b,C,E,R=null,q=null,Y=null,de=void 0,ve=null,me=!!C.dynamicChildren)=>{if(b===C)return;b&&!er(b,C)&&(R=Z(b),re(b,q,Y,!0),b=null),C.patchFlag===-2&&(me=!1,C.dynamicChildren=null);const{type:ce,ref:Ee,shapeFlag:be}=C;switch(ce){case ls:_(b,C,E,R);break;case en:y(b,C,E,R);break;case Gs:b==null&&x(C,E,R,de);break;case _e:D(b,C,E,R,q,Y,de,ve,me);break;default:be&1?L(b,C,E,R,q,Y,de,ve,me):be&6?V(b,C,E,R,q,Y,de,ve,me):(be&64||be&128)&&ce.process(b,C,E,R,q,Y,de,ve,me,ue)}Ee!=null&&q?el(Ee,b&&b.ref,Y,C||b,!C):Ee==null&&b&&b.ref!=null&&el(b.ref,null,Y,b,!0)},_=(b,C,E,R)=>{if(b==null)a(C.el=s(C.children),E,R);else{const q=C.el=b.el;C.children!==b.children&&c(q,C.children)}},y=(b,C,E,R)=>{b==null?a(C.el=i(C.children||""),E,R):C.el=b.el},x=(b,C,E,R)=>{[b.el,b.anchor]=m(b.children,C,E,R,b.el,b.anchor)},S=({el:b,anchor:C},E,R)=>{let q;for(;b&&b!==C;)q=p(b),a(b,E,R),b=q;a(C,E,R)},A=({el:b,anchor:C})=>{let E;for(;b&&b!==C;)E=p(b),r(b),b=E;r(C)},L=(b,C,E,R,q,Y,de,ve,me)=>{if(C.type==="svg"?de="svg":C.type==="math"&&(de="mathml"),b==null)J(C,E,R,q,Y,de,ve,me);else{const ce=b.el&&b.el._isVueCE?b.el:null;try{ce&&ce._beginPatch(),k(b,C,q,Y,de,ve,me)}finally{ce&&ce._endPatch()}}},J=(b,C,E,R,q,Y,de,ve)=>{let me,ce;const{props:Ee,shapeFlag:be,transition:Se,dirs:Re}=b;if(me=b.el=o(b.type,Y,Ee&&Ee.is,Ee),be&8?d(me,b.children):be&16&&K(b.children,me,null,R,q,Ws(b,Y),de,ve),Re&&wa(b,null,R,"created"),z(me,b,b.scopeId,de,R),Ee){for(const We in Ee)We!=="value"&&!Jr(We)&&l(me,We,null,Ee[We],Y,R);"value"in Ee&&l(me,"value",null,Ee.value,Y),(ce=Ee.onVnodeBeforeMount)&&on(ce,R,b)}Re&&wa(b,null,R,"beforeMount");const je=Lg(q,Se);je&&Se.beforeEnter(me),a(me,C,E),((ce=Ee&&Ee.onVnodeMounted)||je||Re)&&St(()=>{ce&&on(ce,R,b),je&&Se.enter(me),Re&&wa(b,null,R,"mounted")},q)},z=(b,C,E,R,q)=>{if(E&&v(b,E),R)for(let Y=0;Y{for(let ce=me;ce{const ve=C.el=b.el;let{patchFlag:me,dynamicChildren:ce,dirs:Ee}=C;me|=b.patchFlag&16;const be=b.props||nt,Se=C.props||nt;let Re;if(E&&ka(E,!1),(Re=Se.onVnodeBeforeUpdate)&&on(Re,E,C,b),Ee&&wa(C,b,E,"beforeUpdate"),E&&ka(E,!0),(be.innerHTML&&Se.innerHTML==null||be.textContent&&Se.textContent==null)&&d(ve,""),ce?F(b.dynamicChildren,ce,ve,E,R,Ws(C,q),Y):de||ie(b,C,ve,null,E,R,Ws(C,q),Y,!1),me>0){if(me&16)G(ve,be,Se,E,q);else if(me&2&&be.class!==Se.class&&l(ve,"class",null,Se.class,q),me&4&&l(ve,"style",be.style,Se.style,q),me&8){const je=C.dynamicProps;for(let We=0;We{Re&&on(Re,E,C,b),Ee&&wa(C,b,E,"updated")},R)},F=(b,C,E,R,q,Y,de)=>{for(let ve=0;ve{if(C!==E){if(C!==nt)for(const Y in C)!Jr(Y)&&!(Y in E)&&l(b,Y,C[Y],null,q,R);for(const Y in E){if(Jr(Y))continue;const de=E[Y],ve=C[Y];de!==ve&&Y!=="value"&&l(b,Y,ve,de,q,R)}"value"in E&&l(b,"value",C.value,E.value,q)}},D=(b,C,E,R,q,Y,de,ve,me)=>{const ce=C.el=b?b.el:s(""),Ee=C.anchor=b?b.anchor:s("");let{patchFlag:be,dynamicChildren:Se,slotScopeIds:Re}=C;Re&&(ve=ve?ve.concat(Re):Re),b==null?(a(ce,E,R),a(Ee,E,R),K(C.children||[],E,Ee,q,Y,de,ve,me)):be>0&&be&64&&Se&&b.dynamicChildren&&b.dynamicChildren.length===Se.length?(F(b.dynamicChildren,Se,E,q,Y,de,ve),(C.key!=null||q&&C===q.subTree)&&Iu(b,C,!0)):ie(b,C,E,Ee,q,Y,de,ve,me)},V=(b,C,E,R,q,Y,de,ve,me)=>{C.slotScopeIds=ve,b==null?C.shapeFlag&512?q.ctx.activate(C,E,R,de,me):W(C,E,R,q,Y,de,me):N(b,C,me)},W=(b,C,E,R,q,Y,de)=>{const ve=b.component=Gg(b,R,q);if(Gp(b)&&(ve.ctx.renderer=ue),Yg(ve,!1,de),ve.asyncDep){if(q&&q.registerDep(ve,Q,de),!b.el){const me=ve.subTree=H(en);y(null,me,C,E),b.placeholder=me.el}}else Q(ve,b,C,E,q,Y,de)},N=(b,C,E)=>{const R=C.component=b.component;if(Og(b,C,E))if(R.asyncDep&&!R.asyncResolved){ne(R,C,E);return}else R.next=C,R.update();else C.el=b.el,R.vnode=C},Q=(b,C,E,R,q,Y,de)=>{const ve=()=>{if(b.isMounted){let{next:be,bu:Se,u:Re,parent:je,vnode:We}=b;{const Pt=hv(b);if(Pt){be&&(be.el=We.el,ne(b,be,de)),Pt.asyncDep.then(()=>{St(()=>{b.isUnmounted||ce()},q)});return}}let Ue=be,lt;ka(b,!1),be?(be.el=We.el,ne(b,be,de)):be=We,Se&&io(Se),(lt=be.props&&be.props.onVnodeBeforeUpdate)&&on(lt,je,be,We),ka(b,!0);const it=Zc(b),wt=b.subTree;b.subTree=it,g(wt,it,f(wt.el),Z(wt),b,q,Y),be.el=it.el,Ue===null&&Mg(b,it.el),Re&&St(Re,q),(lt=be.props&&be.props.onVnodeUpdated)&&St(()=>on(lt,je,be,We),q)}else{let be;const{el:Se,props:Re}=C,{bm:je,m:We,parent:Ue,root:lt,type:it}=b,wt=ir(C);ka(b,!1),je&&io(je),!wt&&(be=Re&&Re.onVnodeBeforeMount)&&on(be,Ue,C),ka(b,!0);{lt.ce&<.ce._hasShadowRoot()&<.ce._injectChildStyle(it,b.parent?b.parent.type:void 0);const Pt=b.subTree=Zc(b);g(null,Pt,E,R,b,q,Y),C.el=Pt.el}if(We&&St(We,q),!wt&&(be=Re&&Re.onVnodeMounted)){const Pt=C;St(()=>on(be,Ue,Pt),q)}(C.shapeFlag&256||Ue&&ir(Ue.vnode)&&Ue.vnode.shapeFlag&256)&&b.a&&St(b.a,q),b.isMounted=!0,C=E=R=null}};b.scope.on();const me=b.effect=new gp(ve);b.scope.off();const ce=b.update=me.run.bind(me),Ee=b.job=me.runIfDirty.bind(me);Ee.i=b,Ee.id=b.uid,me.scheduler=()=>Mu(Ee),ka(b,!0),ce()},ne=(b,C,E)=>{C.component=b;const R=b.vnode.props;b.vnode=C,b.next=null,Rg(b,C.props,R,E),Bg(b,C.children,E),Vn(),jc(b),Ln()},ie=(b,C,E,R,q,Y,de,ve,me=!1)=>{const ce=b&&b.children,Ee=b?b.shapeFlag:0,be=C.children,{patchFlag:Se,shapeFlag:Re}=C;if(Se>0){if(Se&128){oe(ce,be,E,R,q,Y,de,ve,me);return}else if(Se&256){te(ce,be,E,R,q,Y,de,ve,me);return}}Re&8?(Ee&16&&fe(ce,q,Y),be!==ce&&d(E,be)):Ee&16?Re&16?oe(ce,be,E,R,q,Y,de,ve,me):fe(ce,q,Y,!0):(Ee&8&&d(E,""),Re&16&&K(be,E,R,q,Y,de,ve,me))},te=(b,C,E,R,q,Y,de,ve,me)=>{b=b||lr,C=C||lr;const ce=b.length,Ee=C.length,be=Math.min(ce,Ee);let Se;for(Se=0;SeEe?fe(b,q,Y,!0,!1,be):K(C,E,R,q,Y,de,ve,me,be)},oe=(b,C,E,R,q,Y,de,ve,me)=>{let ce=0;const Ee=C.length;let be=b.length-1,Se=Ee-1;for(;ce<=be&&ce<=Se;){const Re=b[ce],je=C[ce]=me?Pn(C[ce]):fn(C[ce]);if(er(Re,je))g(Re,je,E,null,q,Y,de,ve,me);else break;ce++}for(;ce<=be&&ce<=Se;){const Re=b[be],je=C[Se]=me?Pn(C[Se]):fn(C[Se]);if(er(Re,je))g(Re,je,E,null,q,Y,de,ve,me);else break;be--,Se--}if(ce>be){if(ce<=Se){const Re=Se+1,je=ReSe)for(;ce<=be;)re(b[ce],q,Y,!0),ce++;else{const Re=ce,je=ce,We=new Map;for(ce=je;ce<=Se;ce++){const Ae=C[ce]=me?Pn(C[ce]):fn(C[ce]);Ae.key!=null&&We.set(Ae.key,ce)}let Ue,lt=0;const it=Se-je+1;let wt=!1,Pt=0;const ln=new Array(it);for(ce=0;ce=it){re(Ae,q,Y,!0);continue}let qe;if(Ae.key!=null)qe=We.get(Ae.key);else for(Ue=je;Ue<=Se;Ue++)if(ln[Ue-je]===0&&er(Ae,C[Ue])){qe=Ue;break}qe===void 0?re(Ae,q,Y,!0):(ln[qe-je]=ce+1,qe>=Pt?Pt=qe:wt=!0,g(Ae,C[qe],E,null,q,Y,de,ve,me),lt++)}const De=wt?jg(ln):lr;for(Ue=De.length-1,ce=it-1;ce>=0;ce--){const Ae=je+ce,qe=C[Ae],kt=C[Ae+1],Rr=Ae+1{const{el:Y,type:de,transition:ve,children:me,shapeFlag:ce}=b;if(ce&6){le(b.component.subTree,C,E,R);return}if(ce&128){b.suspense.move(C,E,R);return}if(ce&64){de.move(b,C,E,ue);return}if(de===_e){a(Y,C,E);for(let be=0;beve.enter(Y),q));else{const{leave:be,delayLeave:Se,afterLeave:Re}=ve,je=()=>{b.ctx.isUnmounted?r(Y):a(Y,C,E)},We=()=>{const Ue=Y._isLeaving||!!Y[cn];Y._isLeaving&&Y[cn](!0),ve.persisted&&!Ue?je():be(Y,()=>{je(),Re&&Re()})};Se?Se(Y,je,We):We()}else a(Y,C,E)},re=(b,C,E,R=!1,q=!1)=>{const{type:Y,props:de,ref:ve,children:me,dynamicChildren:ce,shapeFlag:Ee,patchFlag:be,dirs:Se,cacheIndex:Re,memo:je}=b;if(be===-2&&(q=!1),ve!=null&&(Vn(),el(ve,null,E,b,!0),Ln()),Re!=null&&(C.renderCache[Re]=void 0),Ee&256){C.ctx.deactivate(b);return}const We=Ee&1&&Se,Ue=!ir(b);let lt;if(Ue&&(lt=de&&de.onVnodeBeforeUnmount)&&on(lt,C,b),Ee&6)Ce(b.component,E,R);else{if(Ee&128){b.suspense.unmount(E,R);return}We&&wa(b,null,C,"beforeUnmount"),Ee&64?b.type.remove(b,C,E,ue,R):ce&&!ce.hasOnce&&(Y!==_e||be>0&&be&64)?fe(ce,C,E,!1,!0):(Y===_e&&be&384||!q&&Ee&16)&&fe(me,C,E),R&&we(b)}const it=je!=null&&Re==null;(Ue&&(lt=de&&de.onVnodeUnmounted)||We||it)&&St(()=>{lt&&on(lt,C,b),We&&wa(b,null,C,"unmounted"),it&&(b.el=null)},E)},we=b=>{const{type:C,el:E,anchor:R,transition:q}=b;if(C===_e){se(E,R);return}if(C===Gs){A(b);return}const Y=()=>{r(E),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(b.shapeFlag&1&&q&&!q.persisted){const{leave:de,delayLeave:ve}=q,me=()=>de(E,Y);ve?ve(b.el,Y,me):me()}else Y()},se=(b,C)=>{let E;for(;b!==C;)E=p(b),r(b),b=E;r(C)},Ce=(b,C,E)=>{const{bum:R,scope:q,job:Y,subTree:de,um:ve,m:me,a:ce}=b;ed(me),ed(ce),R&&io(R),q.stop(),Y&&(Y.flags|=8,re(de,b,C,E)),ve&&St(ve,C),St(()=>{b.isUnmounted=!0},C)},fe=(b,C,E,R=!1,q=!1,Y=0)=>{for(let de=Y;de{if(b.shapeFlag&6)return Z(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const C=p(b.anchor||b.el),E=C&&C[Hp];return E?p(E):C};let pe=!1;const X=(b,C,E)=>{let R;b==null?C._vnode&&(re(C._vnode,null,null,!0),R=C._vnode.component):g(C._vnode||null,b,C,null,null,null,E),C._vnode=b,pe||(pe=!0,jc(R),Vp(),pe=!1)},ue={p:g,um:re,m:le,r:we,mt:W,mc:K,pc:ie,pbc:F,n:Z,o:e};return{render:X,hydrate:void 0,createApp:Cg(X)}}function Ws({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 ka({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Lg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Iu(e,t,n=!1){const a=e.children,r=t.children;if(Me(a)&&Me(r))for(let l=0;l>1,e[n[s]]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 hv(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:hv(t)}function ed(e){if(e)for(let t=0;te.__isSuspense;function Ug(e,t){t&&t.pendingBranch?Me(e)?t.effects.push(...e):t.effects.push(e):Jy(e)}const _e=Symbol.for("v-fgt"),ls=Symbol.for("v-txt"),en=Symbol.for("v-cmt"),Gs=Symbol.for("v-stc"),nl=[];let Ft=null;function h(e=!1){nl.push(Ft=e?null:[])}function zg(){nl.pop(),Ft=nl[nl.length-1]||null}let fl=1;function ko(e,t=!1){fl+=e,e<0&&Ft&&t&&(Ft.hasOnce=!0)}function gv(e){return e.dynamicChildren=fl>0?Ft||lr:null,zg(),fl>0&&Ft&&Ft.push(e),e}function $(e,t,n,a,r,l){return gv(O(e,t,n,a,r,l,!0))}function U(e,t,n,a,r){return gv(H(e,t,n,a,r,!0))}function pl(e){return e?e.__v_isVNode===!0:!1}function er(e,t){return e.type===t.type&&e.key===t.key}const bv=({key:e})=>e??null,uo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?rt(e)||ot(e)||Fe(e)?{i:vt,r:e,k:t,f:!!n}:e:null);function O(e,t=null,n=null,a=0,r=null,l=e===_e?0:1,o=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&bv(t),ref:t&&uo(t),scopeId:jp,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:vt};return s?(Fu(i,n),l&128&&e.normalize(i)):n&&(i.shapeFlag|=rt(n)?8:16),fl>0&&!o&&Ft&&(i.patchFlag>0||l&6)&&i.patchFlag!==32&&Ft.push(i),i}const H=Hg;function Hg(e,t=null,n=null,a=0,r=null,l=!1){if((!e||e===Qp)&&(e=en),pl(e)){const s=fa(e,t,!0);return n&&Fu(s,n),fl>0&&!l&&Ft&&(s.shapeFlag&6?Ft[Ft.indexOf(e)]=s:Ft.push(s)),s.patchFlag=-2,s}if(eb(e)&&(e=e.__vccOpts),t){t=Ge(t);let{class:s,style:i}=t;s&&!rt(s)&&(t.class=xe(s)),Ze(i)&&(Xo(i)&&!Me(i)&&(i=ut({},i)),t.style=Fn(i))}const o=rt(e)?1:yv(e)?128:eg(e)?64:Ze(e)?4:Fe(e)?2:0;return O(e,t,n,a,r,o,l,!0)}function Ge(e){return e?Xo(e)||uv(e)?ut({},e):e:null}function fa(e,t,n=!1,a=!1){const{props:r,ref:l,patchFlag:o,children:s,transition:i}=e,c=t?Le(r||{},t):r,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&bv(c),ref:t&&t.ref?n&&l?Me(l)?l.concat(uo(t)):[l,uo(t)]:uo(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&fa(e.ssContent),ssFallback:e.ssFallback&&fa(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&a&&dl(d,i.clone(d)),d}function $e(e=" ",t=0){return H(ls,null,e,t)}function ae(e="",t=!1){return t?(h(),U(en,null,e)):H(en,null,e)}function fn(e){return e==null||typeof e=="boolean"?H(en):Me(e)?H(_e,null,e.slice()):pl(e)?Pn(e):H(ls,null,String(e))}function Pn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:fa(e)}function Fu(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(Me(t))n=16;else if(typeof t=="object")if(a&65){const r=t.default;r&&(r._c&&(r._d=!1),Fu(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!uv(t)?t._ctx=vt:r===3&&vt&&(vt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Fe(t)?(t={default:t,_ctx:vt},n=32):(t=String(t),a&64?(n=16,t=[$e(t)]):n=8);e.children=t,e.shapeFlag|=n}function Le(...e){const t={};for(let n=0;ngt||vt;let $o,Wi;{const e=Go(),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)}};$o=t("__VUE_INSTANCE_SETTERS__",n=>gt=n),Wi=t("__VUE_SSR_SETTERS__",n=>vl=n)}const Al=e=>{const t=gt;return $o(e),e.scope.on(),()=>{e.scope.off(),$o(t)}},td=()=>{gt&>.scope.off(),$o(null)};function _v(e){return e.vnode.shapeFlag&4}let vl=!1;function Yg(e,t=!1,n=!1){t&&Wi(t);const{props:a,children:r}=e.vnode,l=_v(e);Tg(e,a,l,t),Fg(e,r,n||t);const o=l?Jg(e,t):void 0;return t&&Wi(!1),o}function Jg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,gg);const{setup:a}=n;if(a){Vn();const r=e.setupContext=a.length>1?Qg(e):null,l=Al(e),o=El(a,e,0,[e.props,r]),s=ip(o);if(Ln(),l(),(s||e.sp)&&!ir(e)&&Wp(e),s){if(o.then(td,td),t)return o.then(i=>{nd(e,i)}).catch(i=>{ts(i,e,0)});e.asyncDep=o}else nd(e,o)}else xv(e)}function nd(e,t,n){Fe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ze(t)&&(e.setupState=Ip(t)),xv(e)}function xv(e,t,n){const a=e.type;e.render||(e.render=a.render||gn);{const r=Al(e);Vn();try{bg(e)}finally{Ln(),r()}}}const Zg={get(e,t){return yt(e,"get",""),e[t]}};function Qg(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Zg),slots:e.slots,emit:e.emit,expose:t}}function os(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ip(yo(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in tl)return tl[n](e)},has(t,n){return n in t||n in tl}})):e.proxy}function Xg(e,t=!0){return Fe(e)?e.displayName||e.name:e.name||t&&e.__name}function eb(e){return Fe(e)&&"__vccOpts"in e}const w=(e,t)=>Hy(e,t,vl);function Kt(e,t,n){try{ko(-1);const a=arguments.length;return a===2?Ze(t)&&!Me(t)?pl(t)?H(e,null,[t]):H(e,t):H(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&pl(n)&&(n=[n]),H(e,t,n))}finally{ko(1)}}const tb="3.5.35";let Gi;const ad=typeof window<"u"&&window.trustedTypes;if(ad)try{Gi=ad.createPolicy("vue",{createHTML:e=>e})}catch{}const wv=Gi?e=>Gi.createHTML(e):e=>e,nb="http://www.w3.org/2000/svg",ab="http://www.w3.org/1998/Math/MathML",An=typeof document<"u"?document:null,rd=An&&An.createElement("template"),rb={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"?An.createElementNS(nb,e):t==="mathml"?An.createElementNS(ab,e):n?An.createElement(e,{is:n}):An.createElement(e);return e==="select"&&a&&a.multiple!=null&&r.setAttribute("multiple",a.multiple),r},createText:e=>An.createTextNode(e),createComment:e=>An.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>An.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{rd.innerHTML=wv(a==="svg"?`${e}`:a==="mathml"?`${e}`:e);const s=rd.content;if(a==="svg"||a==="mathml"){const i=s.firstChild;for(;i.firstChild;)s.appendChild(i.firstChild);s.removeChild(i)}t.insertBefore(s,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Qn="transition",Fr="animation",mr=Symbol("_vtc"),kv={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},lb=ut({},og,kv),$a=(e,t=[])=>{Me(e)?e.forEach(n=>n(...t)):e&&e(...t)},ld=e=>e?Me(e)?e.some(t=>t.length>1):e.length>1:!1;function ob(e){const t={};for(const D in e)D in kv||(t[D]=e[D]);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:s=`${n}-enter-to`,appearFromClass:i=l,appearActiveClass:c=o,appearToClass:d=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,m=sb(r),g=m&&m[0],_=m&&m[1],{onBeforeEnter:y,onEnter:x,onEnterCancelled:S,onLeave:A,onLeaveCancelled:L,onBeforeAppear:J=y,onAppear:z=x,onAppearCancelled:K=S}=t,k=(D,V,W,N)=>{D._enterCancelled=N,na(D,V?d:s),na(D,V?c:o),W&&W()},F=(D,V)=>{D._isLeaving=!1,na(D,f),na(D,v),na(D,p),V&&V()},G=D=>(V,W)=>{const N=D?z:x,Q=()=>k(V,D,W);$a(N,[V,Q]),od(()=>{na(V,D?i:l),sn(V,D?d:s),ld(N)||sd(V,a,g,Q)})};return ut(t,{onBeforeEnter(D){$a(y,[D]),sn(D,l),sn(D,o)},onBeforeAppear(D){$a(J,[D]),sn(D,i),sn(D,c)},onEnter:G(!1),onAppear:G(!0),onLeave(D,V){D._isLeaving=!0;const W=()=>F(D,V);sn(D,f),D._enterCancelled?(sn(D,p),Yi(D)):(Yi(D),sn(D,p)),od(()=>{D._isLeaving&&(na(D,f),sn(D,v),ld(A)||sd(D,a,_,W))}),$a(A,[D,W])},onEnterCancelled(D){k(D,!1,void 0,!0),$a(S,[D])},onAppearCancelled(D){k(D,!0,void 0,!0),$a(K,[D])},onLeaveCancelled(D){F(D),$a(L,[D])}})}function sb(e){if(e==null)return null;if(Ze(e))return[Ys(e.enter),Ys(e.leave)];{const t=Ys(e);return[t,t]}}function Ys(e){return cy(e)}function sn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[mr]||(e[mr]=new Set)).add(t)}function na(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[mr];n&&(n.delete(t),n.size||(e[mr]=void 0))}function od(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ib=0;function sd(e,t,n,a){const r=e._endId=++ib,l=()=>{r===e._endId&&a()};if(n!=null)return setTimeout(l,n);const{type:o,timeout:s,propCount:i}=$v(e,t);if(!o)return a();const c=o+"end";let d=0;const f=()=>{e.removeEventListener(c,p),l()},p=v=>{v.target===e&&++d>=i&&f()};setTimeout(()=>{d(n[m]||"").split(", "),r=a(`${Qn}Delay`),l=a(`${Qn}Duration`),o=id(r,l),s=a(`${Fr}Delay`),i=a(`${Fr}Duration`),c=id(s,i);let d=null,f=0,p=0;t===Qn?o>0&&(d=Qn,f=o,p=l.length):t===Fr?c>0&&(d=Fr,f=c,p=i.length):(f=Math.max(o,c),d=f>0?o>c?Qn:Fr:null,p=d?d===Qn?l.length:i.length:0);const v=d===Qn&&/\b(?:transform|all)(?:,|$)/.test(a(`${Qn}Property`).toString());return{type:d,timeout:f,propCount:p,hasTransform:v}}function id(e,t){for(;e.lengthud(n)+ud(e[a])))}function ud(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Yi(e){return(e?e.ownerDocument:document).body.offsetHeight}function ub(e,t,n){const a=e[mr];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Co=Symbol("_vod"),Cv=Symbol("_vsh"),Ji={name:"show",beforeMount(e,{value:t},{transition:n}){e[Co]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Br(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),Br(e,!0),a.enter(e)):a.leave(e,()=>{Br(e,!1)}):Br(e,t))},beforeUnmount(e,{value:t}){Br(e,t)}};function Br(e,t){e.style.display=t?e[Co]:"none",e[Cv]=!t}const cb=Symbol(""),db=/(?:^|;)\s*display\s*:/;function fb(e,t,n){const a=e.style,r=rt(n);let l=!1;if(n&&!r){if(t)if(rt(t))for(const o of t.split(";")){const s=o.slice(0,o.indexOf(":")).trim();n[s]==null&&Wr(a,s,"")}else for(const o in t)n[o]==null&&Wr(a,o,"");for(const o in n){o==="display"&&(l=!0);const s=n[o];s!=null?vb(e,o,!rt(t)&&t?t[o]:void 0,s)||Wr(a,o,s):Wr(a,o,"")}}else if(r){if(t!==n){const o=a[cb];o&&(n+=";"+o),a.cssText=n,l=db.test(n)}}else t&&e.removeAttribute("style");Co in e&&(e[Co]=l?a.display:"",e[Cv]&&(a.display="none"))}const cd=/\s*!important$/;function Wr(e,t,n){if(Me(n))n.forEach(a=>Wr(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=pb(e,t);cd.test(n)?e.setProperty(ga(a),n.replace(cd,""),"important"):e[a]=n}}const dd=["Webkit","Moz","ms"],Js={};function pb(e,t){const n=Js[t];if(n)return n;let a=ht(t);if(a!=="filter"&&a in e)return Js[t]=a;a=Wo(a);for(let r=0;rZs||(gb.then(()=>Zs=0),Zs=Date.now());function _b(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;const r=n.value;if(Me(r)){const l=a.stopImmediatePropagation;a.stopImmediatePropagation=()=>{l.call(a),a._stopped=!0};const o=r.slice(),s=[a];for(let i=0;ie.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xb=(e,t,n,a,r,l)=>{const o=r==="svg";t==="class"?ub(e,a,o):t==="style"?fb(e,n,a):Uo(t)?zo(t)||mb(e,t,n,a,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wb(e,t,a,o))?(vd(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pd(e,t,a,o,l,t!=="value")):e._isVueCE&&(kb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!rt(a)))?vd(e,ht(t),a,l,t):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),pd(e,t,a,o))};function wb(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&yd(t)&&Fe(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 yd(t)&&rt(n)?!1:t in e}function kb(e,t){const n=e._def.props;if(!n)return!1;const a=ht(t);return Array.isArray(n)?n.some(r=>ht(r)===a):Object.keys(n).some(r=>ht(r)===a)}const Sv=new WeakMap,Ev=new WeakMap,So=Symbol("_moveCb"),gd=Symbol("_enterCb"),$b=e=>(delete e.props.mode,e),Cb=$b({name:"TransitionGroup",props:ut({},lb,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=$n(),a=lg();let r,l;return Tu(()=>{if(!r.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!Pb(r[0].el,n.vnode.el,o)){r=[];return}r.forEach(Eb),r.forEach(Ab);const s=r.filter(Db);Yi(n.vnode.el),s.forEach(i=>{const c=i.el,d=c.style;sn(c,o),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[So]=p=>{p&&p.target!==c||(!p||p.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[So]=null,na(c,o))};c.addEventListener("transitionend",f)}),r=[]}),()=>{const o=Je(e),s=ob(o);let i=o.tag||_e;if(r=[],l)for(let c=0;c{s.split(/\s+/).forEach(i=>i&&a.classList.remove(i))}),n.split(/\s+/).forEach(s=>s&&a.classList.add(s)),a.style.display="none";const l=t.nodeType===1?t:t.parentNode;l.appendChild(a);const{hasTransform:o}=$v(a);return l.removeChild(a),o}const bd=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Me(t)?n=>io(t,n):t};function Ob(e){e.target.composing=!0}function _d(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qs=Symbol("_assign");function xd(e,t,n){return t&&(e=e.trim()),n&&(e=Su(e)),e}const Eo={created(e,{modifiers:{lazy:t,trim:n,number:a}},r){e[Qs]=bd(r);const l=a||r.props&&r.props.type==="number";tr(e,t?"change":"input",o=>{o.target.composing||e[Qs](xd(e.value,n,l))}),(n||l)&&tr(e,"change",()=>{e.value=xd(e.value,n,l)}),t||(tr(e,"compositionstart",Ob),tr(e,"compositionend",_d),tr(e,"change",_d))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:a,trim:r,number:l}},o){if(e[Qs]=bd(o),e.composing)return;const s=(l||e.type==="number")&&!/^0\d/.test(e.value)?Su(e.value):e.value,i=t??"";if(s===i)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(a&&t===n||r&&e.value.trim()===i)||(e.value=i)}},Mb=["ctrl","shift","alt","meta"],Tb={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)=>Mb.some(n=>e[`${n}Key`]&&!t.includes(n))},pt=(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=ga(r.key);if(t.some(o=>o===l||Rb[o]===l))return e(r)}))},qb=ut({patchProp:xb},rb);let wd;function Ib(){return wd||(wd=Ng(qb))}const Fb=((...e)=>{const t=Ib().createApp(...e),{mount:n}=t;return t.mount=a=>{const r=Nb(a);if(!r)return;const l=t._component;!Fe(l)&&!l.render&&!l.template&&(l.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Bb(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Bb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Nb(e){return rt(e)?document.querySelector(e):e}const nr=typeof document<"u";function Dv(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Vb(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Dv(e.default)}const Qe=Object.assign;function Xs(e,t){const n={};for(const a in t){const r=t[a];n[a]=tn(r)?r.map(e):e(r)}return n}const al=()=>{},tn=Array.isArray;function kd(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}const Pv=Symbol("");function gr(e,t){return Qe(new Error,{type:e,[Pv]:!0},t)}function En(e,t){return e instanceof Error&&Pv in e&&(t==null||!!(e.type&t))}const Bu=Symbol(""),$d=Symbol(""),ss=Symbol(""),Nu=Symbol(""),Zi=Symbol("");function Ar(){return st(ss)}function an(e){return st(Nu)}const Ov=/#/g,Lb=/&/g,jb=/\//g,Ub=/=/g,zb=/\?/g,Mv=/\+/g,Hb=/%5B/g,Kb=/%5D/g,Tv=/%5E/g,Wb=/%60/g,Rv=/%7B/g,Gb=/%7C/g,qv=/%7D/g,Yb=/%20/g;function Vu(e){return e==null?"":encodeURI(""+e).replace(Gb,"|").replace(Hb,"[").replace(Kb,"]")}function Jb(e){return Vu(e).replace(Rv,"{").replace(qv,"}").replace(Tv,"^")}function Qi(e){return Vu(e).replace(Mv,"%2B").replace(Yb,"+").replace(Ov,"%23").replace(Lb,"%26").replace(Wb,"`").replace(Rv,"{").replace(qv,"}").replace(Tv,"^")}function Zb(e){return Qi(e).replace(Ub,"%3D")}function Qb(e){return Vu(e).replace(Ov,"%23").replace(zb,"%3F")}function Xb(e){return Qb(e).replace(jb,"%2F")}function Ao(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const e1=/\/$/,t1=e=>e.replace(e1,"");function ei(e,t,n="/"){let a,r={},l="",o="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(a=t.slice(0,i),l=t.slice(i,s>0?s:t.length),r=e(l.slice(1))),s>=0&&(a=a||t.slice(0,s),o=t.slice(s,t.length)),a=l1(a??t,n),{fullPath:a+l+o,path:a,query:r,hash:Ao(o)}}function n1(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Cd(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function a1(e,t,n){const a=t.matched.length-1,r=n.matched.length-1;return a>-1&&a===r&&br(t.matched[a],n.matched[r])&&Iv(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function br(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Iv(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!r1(e[n],t[n]))return!1;return!0}function r1(e,t){return tn(e)?Sd(e,t):tn(t)?Sd(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Sd(e,t){return tn(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function l1(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,s;for(o=0;o1&&l--;else break;return n.slice(0,l).join("/")+"/"+a.slice(o).join("/")}const Xn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function o1(e){if(!e)if(nr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),t1(e)}const s1=/^[^#]+#/;function i1(e,t){return e.replace(s1,"#")+t}function u1(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 is=()=>({left:window.scrollX,top:window.scrollY});function c1(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=u1(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 Ed(e,t){return(history.state?history.state.position-t:-1)+e}const Xi=new Map;function d1(e,t){Xi.set(e,t)}function f1(e){const t=Xi.get(e);return Xi.delete(e),t}function p1(e){return typeof e=="string"||e&&typeof e=="object"}function Fv(e){return typeof e=="string"||typeof e=="symbol"}function v1(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;ar&&Qi(r)):[a&&Qi(a)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function h1(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=tn(a)?a.map(r=>r==null?null:""+r):a==null?a:""+a)}return t}function Nr(){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 Bv(e,t,n){const a=e.value;if(!a)return;let r=a;const l=()=>{r[t].delete(n)};Er(l),Jp(l),Yp(()=>{const o=e.value;o&&(r=o),r[t].add(n)}),r[t].add(n)}function m1(e){Bv(st(Bu,{}),"leaveGuards",e)}function y1(e){Bv(st(Bu,{}),"updateGuards",e)}function la(e,t,n,a,r,l=o=>o()){const o=a&&(a.enterCallbacks[r]=a.enterCallbacks[r]||[]);return()=>new Promise((s,i)=>{const c=p=>{p===!1?i(gr(4,{from:n,to:t})):p instanceof Error?i(p):p1(p)?i(gr(2,{from:t,to:p})):(o&&a.enterCallbacks[r]===o&&typeof p=="function"&&o.push(p),s())},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(p=>i(p))})}function ti(e,t,n,a,r=l=>l()){const l=[];for(const o of e)for(const s in o.components){let i=o.components[s];if(!(t!=="beforeRouteEnter"&&!o.instances[s]))if(Dv(i)){const c=(i.__vccOpts||i)[t];c&&l.push(la(c,n,a,o,s,r))}else{let c=i();l.push(()=>c.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${s}" at "${o.path}"`);const f=Vb(d)?d.default:d;o.mods[s]=d,o.components[s]=f;const p=(f.__vccOpts||f)[t];return p&&la(p,n,a,o,s,r)()}))}}return l}function g1(e,t){const n=[],a=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let o=0;obr(c,s))?a.push(s):n.push(s));const i=e.matched[o];i&&(t.matched.find(c=>br(c,i))||r.push(i))}return[n,a,r]}let b1=()=>location.protocol+"//"+location.host;function Nv(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,s=r.slice(o);return s[0]!=="/"&&(s="/"+s),Cd(s,"")}return Cd(n,e)+a+r}function _1(e,t,n,a){let r=[],l=[],o=null;const s=({state:p})=>{const v=Nv(e,location),m=n.value,g=t.value;let _=0;if(p){if(n.value=v,t.value=p,o&&o===m){o=null;return}_=g?p.position-g.position:0}else a(v);r.forEach(y=>{y(n.value,m,{delta:_,type:"pop",direction:_?_>0?"forward":"back":""})})};function i(){o=n.value}function c(p){r.push(p);const v=()=>{const m=r.indexOf(p);m>-1&&r.splice(m,1)};return l.push(v),v}function d(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(Qe({},p.state,{scroll:is()}),"")}}function f(){for(const p of l)p();l=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:i,listen:c,destroy:f}}function Dd(e,t,n,a=!1,r=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:r?is():null}}function x1(e){const{history:t,location:n}=window,a={value:Nv(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(i,c,d){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:b1()+e+i;try{t[d?"replaceState":"pushState"](c,"",p),r.value=c}catch(v){console.error(v),n[d?"replace":"assign"](p)}}function o(i,c){l(i,Qe({},t.state,Dd(r.value.back,i,r.value.forward,!0),c,{position:r.value.position}),!0),a.value=i}function s(i,c){const d=Qe({},r.value,t.state,{forward:i,scroll:is()});l(d.current,d,!0),l(i,Qe({},Dd(a.value,i,null),{position:d.position+1},c),!1),a.value=i}return{location:a,state:r,push:s,replace:o}}function w1(e){e=o1(e);const t=x1(e),n=_1(e,t.state,t.location,t.replace);function a(l,o=!0){o||n.pauseListeners(),history.go(l)}const r=Qe({location:"",base:e,go:a,createHref:i1.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 k1={type:0,value:""},$1=/[a-zA-Z0-9_]/;function C1(e){if(!e)return[[]];if(e==="/")return[[k1]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${n})/"${c}": ${v}`)}let n=0,a=n;const r=[];let l;function o(){l&&r.push(l),l=[]}let s=0,i,c="",d="";function f(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:d,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=i}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function Vv(e,t){let n=0;const a=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const P1={strict:!1,end:!0,sensitive:!1};function O1(e,t,n){const a=A1(C1(e.path),n),r=Qe(a,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function M1(e,t){const n=[],a=new Map;t=kd(P1,t);function r(f){return a.get(f)}function l(f,p,v){const m=!v,g=Td(f);g.aliasOf=v&&v.record;const _=kd(t,f),y=[g];if("alias"in f){const A=typeof f.alias=="string"?[f.alias]:f.alias;for(const L of A)y.push(Td(Qe({},g,{components:v?v.record.components:g.components,path:L,aliasOf:v?v.record:g})))}let x,S;for(const A of y){const{path:L}=A;if(p&&L[0]!=="/"){const J=p.record.path,z=J[J.length-1]==="/"?"":"/";A.path=p.record.path+(L&&z+L)}if(x=O1(A,p,_),v?v.alias.push(x):(S=S||x,S!==x&&S.alias.push(x),m&&f.name&&!Rd(x)&&o(f.name)),Lv(x)&&i(x),g.children){const J=g.children;for(let z=0;z{o(S)}:al}function o(f){if(Fv(f)){const p=a.get(f);p&&(a.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&a.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return n}function i(f){const p=q1(f,n);n.splice(p,0,f),f.record.name&&!Rd(f)&&a.set(f.record.name,f)}function c(f,p){let v,m={},g,_;if("name"in f&&f.name){if(v=a.get(f.name),!v)throw gr(1,{location:f});_=v.record.name,m=Qe(Md(p.params,v.keys.filter(S=>!S.optional).concat(v.parent?v.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),f.params&&Md(f.params,v.keys.map(S=>S.name))),g=v.stringify(m)}else if(f.path!=null)g=f.path,v=n.find(S=>S.re.test(g)),v&&(m=v.parse(g),_=v.record.name,v.keys.forEach(S=>{S.optional&&!m[S.name]&&delete m[S.name]}));else{if(v=p.name?a.get(p.name):n.find(S=>S.re.test(p.path)),!v)throw gr(1,{location:f,currentLocation:p});_=v.record.name,m=Qe({},p.params,f.params),g=v.stringify(m)}const y=[];let x=v;for(;x;)y.unshift(x.record),x=x.parent;return{name:_,path:g,params:m,matched:y,meta:R1(y)}}e.forEach(f=>l(f));function d(){n.length=0,a.clear()}return{addRoute:l,resolve:c,removeRoute:o,clearRoutes:d,getRoutes:s,getRecordMatcher:r}}function Md(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function Td(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:T1(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 T1(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 Rd(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function R1(e){return e.reduce((t,n)=>Qe(t,n.meta),{})}function q1(e,t){let n=0,a=t.length;for(;n!==a;){const l=n+a>>1;Vv(e,t[l])<0?a=l:n=l+1}const r=I1(e);return r&&(a=t.lastIndexOf(r,a-1)),a}function I1(e){let t=e;for(;t=t.parent;)if(Lv(t)&&Vv(e,t)===0)return t}function Lv({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qd(e){const t=st(ss),n=st(Nu),a=w(()=>{const i=u(e.to);return t.resolve(i)}),r=w(()=>{const{matched:i}=a.value,{length:c}=i,d=i[c-1],f=n.matched;if(!d||!f.length)return-1;const p=f.findIndex(br.bind(null,d));if(p>-1)return p;const v=Id(i[c-2]);return c>1&&Id(d)===v&&f[f.length-1].path!==v?f.findIndex(br.bind(null,i[c-2])):p}),l=w(()=>r.value>-1&&N1(n.params,a.value.params)),o=w(()=>r.value>-1&&r.value===n.matched.length-1&&Iv(n.params,a.value.params));function s(i={}){if(B1(i)){const c=t[u(e.replace)?"replace":"push"](u(e.to)).catch(al);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:a,href:w(()=>a.value.href),isActive:l,isExactActive:o,navigate:s}}function F1(e){return e.length===1?e[0]:e}const _n=ee({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:qd,setup(e,{slots:t}){const n=Zt(qd(e)),{options:a}=st(ss),r=w(()=>({[Fd(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Fd(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&F1(t.default(n));return e.custom?l:Kt("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},l)}}});function B1(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 N1(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(!tn(r)||r.length!==a.length||a.some((l,o)=>l.valueOf()!==r[o].valueOf()))return!1}return!0}function Id(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Fd=(e,t,n)=>e??t??n,V1=ee({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=st(Zi),r=w(()=>e.route||a.value),l=st($d,0),o=w(()=>{let c=u(l);const{matched:d}=r.value;let f;for(;(f=d[c])&&!f.components;)c++;return c}),s=w(()=>r.value.matched[o.value]);Dt($d,w(()=>o.value+1)),Dt(Bu,s),Dt(Zi,r);const i=M();return Be(()=>[i.value,s.value,e.name],([c,d,f],[p,v,m])=>{d&&(d.instances[f]=c,v&&v!==d&&c&&c===p&&(d.leaveGuards.size||(d.leaveGuards=v.leaveGuards),d.updateGuards.size||(d.updateGuards=v.updateGuards))),c&&d&&(!v||!br(d,v)||!p)&&(d.enterCallbacks[f]||[]).forEach(g=>g(c))},{flush:"post"}),()=>{const c=r.value,d=e.name,f=s.value,p=f&&f.components[d];if(!p)return Bd(n.default,{Component:p,route:c});const v=f.props[d],m=v?v===!0?c.params:typeof v=="function"?v(c):v:null,_=Kt(p,Qe({},m,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(f.instances[d]=null)},ref:i}));return Bd(n.default,{Component:_,route:c})||_}}});function Bd(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const eu=V1;function L1(e){const t=M1(e.routes,e),n=e.parseQuery||v1,a=e.stringifyQuery||Ad,r=e.history,l=Nr(),o=Nr(),s=Nr(),i=es(Xn);let c=Xn;nr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=Xs.bind(null,Z=>""+Z),f=Xs.bind(null,Xb),p=Xs.bind(null,Ao);function v(Z,pe){let X,ue;return Fv(Z)?(X=t.getRecordMatcher(Z),ue=pe):ue=Z,t.addRoute(ue,X)}function m(Z){const pe=t.getRecordMatcher(Z);pe&&t.removeRoute(pe)}function g(){return t.getRoutes().map(Z=>Z.record)}function _(Z){return!!t.getRecordMatcher(Z)}function y(Z,pe){if(pe=Qe({},pe||i.value),typeof Z=="string"){const E=ei(n,Z,pe.path),R=t.resolve({path:E.path},pe),q=r.createHref(E.fullPath);return Qe(E,R,{params:p(R.params),redirectedFrom:void 0,href:q})}let X;if(Z.path!=null)X=Qe({},Z,{path:ei(n,Z.path,pe.path).path});else{const E=Qe({},Z.params);for(const R in E)E[R]==null&&delete E[R];X=Qe({},Z,{params:f(E)}),pe.params=f(pe.params)}const ue=t.resolve(X,pe),ge=Z.hash||"";ue.params=d(p(ue.params));const b=n1(a,Qe({},Z,{hash:Jb(ge),path:ue.path})),C=r.createHref(b);return Qe({fullPath:b,hash:ge,query:a===Ad?h1(Z.query):Z.query||{}},ue,{redirectedFrom:void 0,href:C})}function x(Z){return typeof Z=="string"?ei(n,Z,i.value.path):Qe({},Z)}function S(Z,pe){if(c!==Z)return gr(8,{from:pe,to:Z})}function A(Z){return z(Z)}function L(Z){return A(Qe(x(Z),{replace:!0}))}function J(Z,pe){const X=Z.matched[Z.matched.length-1];if(X&&X.redirect){const{redirect:ue}=X;let ge=typeof ue=="function"?ue(Z,pe):ue;return typeof ge=="string"&&(ge=ge.includes("?")||ge.includes("#")?ge=x(ge):{path:ge},ge.params={}),Qe({query:Z.query,hash:Z.hash,params:ge.path!=null?{}:Z.params},ge)}}function z(Z,pe){const X=c=y(Z),ue=i.value,ge=Z.state,b=Z.force,C=Z.replace===!0,E=J(X,ue);if(E)return z(Qe(x(E),{state:typeof E=="object"?Qe({},ge,E.state):ge,force:b,replace:C}),pe||X);const R=X;R.redirectedFrom=pe;let q;return!b&&a1(a,ue,X)&&(q=gr(16,{to:R,from:ue}),le(ue,ue,!0,!1)),(q?Promise.resolve(q):F(R,ue)).catch(Y=>En(Y)?En(Y,2)?Y:oe(Y):ie(Y,R,ue)).then(Y=>{if(Y){if(En(Y,2))return z(Qe({replace:C},x(Y.to),{state:typeof Y.to=="object"?Qe({},ge,Y.to.state):ge,force:b}),pe||R)}else Y=D(R,ue,!0,C,ge);return G(R,ue,Y),Y})}function K(Z,pe){const X=S(Z,pe);return X?Promise.reject(X):Promise.resolve()}function k(Z){const pe=se.values().next().value;return pe&&typeof pe.runWithContext=="function"?pe.runWithContext(Z):Z()}function F(Z,pe){let X;const[ue,ge,b]=g1(Z,pe);X=ti(ue.reverse(),"beforeRouteLeave",Z,pe);for(const E of ue)E.leaveGuards.forEach(R=>{X.push(la(R,Z,pe))});const C=K.bind(null,Z,pe);return X.push(C),fe(X).then(()=>{X=[];for(const E of l.list())X.push(la(E,Z,pe));return X.push(C),fe(X)}).then(()=>{X=ti(ge,"beforeRouteUpdate",Z,pe);for(const E of ge)E.updateGuards.forEach(R=>{X.push(la(R,Z,pe))});return X.push(C),fe(X)}).then(()=>{X=[];for(const E of b)if(E.beforeEnter)if(tn(E.beforeEnter))for(const R of E.beforeEnter)X.push(la(R,Z,pe));else X.push(la(E.beforeEnter,Z,pe));return X.push(C),fe(X)}).then(()=>(Z.matched.forEach(E=>E.enterCallbacks={}),X=ti(b,"beforeRouteEnter",Z,pe,k),X.push(C),fe(X))).then(()=>{X=[];for(const E of o.list())X.push(la(E,Z,pe));return X.push(C),fe(X)}).catch(E=>En(E,8)?E:Promise.reject(E))}function G(Z,pe,X){s.list().forEach(ue=>k(()=>ue(Z,pe,X)))}function D(Z,pe,X,ue,ge){const b=S(Z,pe);if(b)return b;const C=pe===Xn,E=nr?history.state:{};X&&(ue||C?r.replace(Z.fullPath,Qe({scroll:C&&E&&E.scroll},ge)):r.push(Z.fullPath,ge)),i.value=Z,le(Z,pe,X,C),oe()}let V;function W(){V||(V=r.listen((Z,pe,X)=>{if(!Ce.listening)return;const ue=y(Z),ge=J(ue,Ce.currentRoute.value);if(ge){z(Qe(ge,{replace:!0,force:!0}),ue).catch(al);return}c=ue;const b=i.value;nr&&d1(Ed(b.fullPath,X.delta),is()),F(ue,b).catch(C=>En(C,12)?C:En(C,2)?(z(Qe(x(C.to),{force:!0}),ue).then(E=>{En(E,20)&&!X.delta&&X.type==="pop"&&r.go(-1,!1)}).catch(al),Promise.reject()):(X.delta&&r.go(-X.delta,!1),ie(C,ue,b))).then(C=>{C=C||D(ue,b,!1),C&&(X.delta&&!En(C,8)?r.go(-X.delta,!1):X.type==="pop"&&En(C,20)&&r.go(-1,!1)),G(ue,b,C)}).catch(al)}))}let N=Nr(),Q=Nr(),ne;function ie(Z,pe,X){oe(Z);const ue=Q.list();return ue.length?ue.forEach(ge=>ge(Z,pe,X)):console.error(Z),Promise.reject(Z)}function te(){return ne&&i.value!==Xn?Promise.resolve():new Promise((Z,pe)=>{N.add([Z,pe])})}function oe(Z){return ne||(ne=!Z,W(),N.list().forEach(([pe,X])=>Z?X(Z):pe()),N.reset()),Z}function le(Z,pe,X,ue){const{scrollBehavior:ge}=e;if(!nr||!ge)return Promise.resolve();const b=!X&&f1(Ed(Z.fullPath,0))||(ue||!X)&&history.state&&history.state.scroll||null;return ze().then(()=>ge(Z,pe,b)).then(C=>C&&c1(C)).catch(C=>ie(C,Z,pe))}const re=Z=>r.go(Z);let we;const se=new Set,Ce={currentRoute:i,listening:!0,addRoute:v,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:y,options:e,push:A,replace:L,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:l.add,beforeResolve:o.add,afterEach:s.add,onError:Q.add,isReady:te,install(Z){Z.component("RouterLink",_n),Z.component("RouterView",eu),Z.config.globalProperties.$router=Ce,Object.defineProperty(Z.config.globalProperties,"$route",{enumerable:!0,get:()=>u(i)}),nr&&!we&&i.value===Xn&&(we=!0,A(r.location).catch(ue=>{}));const pe={};for(const ue in Xn)Object.defineProperty(pe,ue,{get:()=>i.value[ue],enumerable:!0});Z.provide(ss,Ce),Z.provide(Nu,Rp(pe)),Z.provide(Zi,i);const X=Z.unmount;se.add(Z),Z.unmount=function(){se.delete(Z),se.size<1&&(c=Xn,V&&V(),V=null,i.value=Xn,we=!1,ne=!1),X()}}};function fe(Z){return Z.reduce((pe,X)=>pe.then(()=>k(X)),Promise.resolve())}return Ce}const Nd=e=>e==="";const j1=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();const Vd=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const U1=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,a)=>a?a.toUpperCase():n.toLowerCase());const z1=e=>{const t=U1(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Wa={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 H1=Symbol("lucide-icons");function K1(){return st(H1,{})}const W1=({name:e,iconNode:t,absoluteStrokeWidth:n,"absolute-stroke-width":a,strokeWidth:r,"stroke-width":l,size:o,color:s,...i},{slots:c})=>{const{size:d,color:f,strokeWidth:p=2,absoluteStrokeWidth:v=!1,class:m=""}=K1(),g=w(()=>{const _=Nd(n)||Nd(a)||n===!0||a===!0||v===!0,y=r||l||p||Wa["stroke-width"];return _?Number(y)*24/Number(o??d??Wa.width):y});return Kt("svg",{...Wa,...i,width:o??d??Wa.width,height:o??d??Wa.height,stroke:s??f??Wa.stroke,"stroke-width":g.value,class:j1("lucide",m,...e?[`lucide-${Vd(z1(e))}-icon`,`lucide-${Vd(e)}`]:["lucide-icon"])},[...t.map(_=>Kt(..._)),...c.default?[c.default()]:[]])};const Te=(e,t)=>(n,{slots:a,attrs:r})=>Kt(W1,{...r,...n,iconNode:t,name:e},a.default?{default:a.default}:void 0);const G1=[["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"}]],Y1=Te("archive",G1);const J1=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],jv=Te("arrow-down",J1);const Z1=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],us=Te("arrow-left",Z1);const Q1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],X1=Te("arrow-right",Q1);const e0=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],Uv=Te("arrow-up-right",e0);const t0=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],zv=Te("arrow-up",t0);const n0=[["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"}]],a0=Te("calendar",n0);const r0=[["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"}]],l0=Te("cassette-tape",r0);const o0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],_r=Te("check",o0);const s0=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Dl=Te("chevron-down",s0);const i0=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],cs=Te("chevron-left",i0);const u0=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Pl=Te("chevron-right",u0);const c0=[["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"}]],Bt=Te("circle-alert",c0);const d0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],f0=Te("circle",d0);const p0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],Ld=Te("clock",p0);const v0=[["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"}]],h0=Te("disc-3",v0);const m0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],y0=Te("disc",m0);const g0=[["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"}]],jd=Te("download",g0);const b0=[["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"}]],Gr=Te("file-text",b0);const _0=[["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"}]],Ud=Te("grip-vertical",_0);const x0=[["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"}]],zd=Te("image-off",x0);const w0=[["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"}]],k0=Te("image",w0);const $0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],C0=Te("info",$0);const S0=[["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"}]],E0=Te("library",S0);const A0=[["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"}]],D0=Te("list",A0);const P0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],co=Te("loader-circle",P0);const O0=[["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"}]],Hv=Te("log-out",O0);const M0=[["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"}]],T0=Te("mic-vocal",M0);const R0=[["path",{d:"M5 12h14",key:"1ays0h"}]],Kv=Te("minus",R0);const q0=[["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"}]],I0=Te("palette",q0);const F0=[["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"}]],Wv=Te("panel-left-close",F0);const B0=[["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"}]],Gv=Te("panel-left-open",B0);const N0=[["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"}]],fo=Te("pencil",N0);const V0=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Lu=Te("plus",V0);const L0=[["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"}]],Yv=Te("puzzle",L0);const j0=[["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"}]],ni=Te("rotate-ccw",j0);const U0=[["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"}]],Jv=Te("search-x",U0);const z0=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ds=Te("search",z0);const H0=[["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"}]],Zv=Te("settings",H0);const K0=[["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"}]],W0=Te("shield-check",K0);const G0=[["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"}]],Y0=Te("sliders-horizontal",G0);const J0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],Z0=Te("square",J0);const Q0=[["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"}]],ju=Te("sun",Q0);const X0=[["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"}]],e_=Te("tags",X0);const t_=[["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"}]],Ol=Te("trash-2",t_);const n_=[["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"}]],ai=Te("upload",n_);const a_=[["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"}]],Qv=Te("user-minus",a_);const r_=[["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"}]],Xv=Te("user-plus",r_);const l_=[["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"}]],o_=Te("user",l_);const s_=[["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"}]],i_=Te("users-round",s_);const u_=[["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"}]],c_=Te("users",u_);const d_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wt=Te("x",d_),f_=/\{[^{}]+\}/g,p_=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function v_(){return Math.random().toString(36).slice(2,11)}function h_(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:a=globalThis.fetch,querySerializer:r,bodySerializer:l,pathSerializer:o,headers:s,requestInitExt:i=void 0,...c}={...e};i=p_()?i:void 0,t=Wd(t);const d=[];async function f(p,v){const{baseUrl:m,fetch:g=a,Request:_=n,headers:y,params:x={},parseAs:S="json",querySerializer:A,bodySerializer:L=l??y_,pathSerializer:J,body:z,middleware:K=[],...k}=v||{};let F=t;m&&(F=Wd(m)??t);let G=typeof r=="function"?r:Hd(r);A&&(G=typeof A=="function"?A:Hd({...typeof r=="object"?r:{},...A}));const D=J||o||m_,V=z===void 0?void 0:L(z,Kd(s,y,x.header)),W=Kd(V===void 0||V instanceof FormData?{}:{"Content-Type":"application/json"},s,y,x.header),N=[...d,...K],Q={redirect:"follow",...c,...k,body:V,headers:W};let ne,ie,te=new _(g_(p,{baseUrl:F,params:x,querySerializer:G,pathSerializer:D}),Q),oe;for(const we in k)we in te||(te[we]=k[we]);if(N.length){ne=v_(),ie=Object.freeze({baseUrl:F,fetch:g,parseAs:S,querySerializer:G,bodySerializer:L,pathSerializer:D});for(const we of N)if(we&&typeof we=="object"&&typeof we.onRequest=="function"){const se=await we.onRequest({request:te,schemaPath:p,params:x,options:ie,id:ne});if(se)if(se instanceof _)te=se;else if(se instanceof Response){oe=se;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!oe){try{oe=await g(te,i)}catch(we){let se=we;if(N.length)for(let Ce=N.length-1;Ce>=0;Ce--){const fe=N[Ce];if(fe&&typeof fe=="object"&&typeof fe.onError=="function"){const Z=await fe.onError({request:te,error:se,schemaPath:p,params:x,options:ie,id:ne});if(Z){if(Z instanceof Response){se=void 0,oe=Z;break}if(Z instanceof Error){se=Z;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(se)throw se}if(N.length)for(let we=N.length-1;we>=0;we--){const se=N[we];if(se&&typeof se=="object"&&typeof se.onResponse=="function"){const Ce=await se.onResponse({request:te,response:oe,schemaPath:p,params:x,options:ie,id:ne});if(Ce){if(!(Ce instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");oe=Ce}}}}const le=oe.headers.get("Content-Length");if(oe.status===204||te.method==="HEAD"||le==="0"&&!oe.headers.get("Transfer-Encoding")?.includes("chunked"))return oe.ok?{data:void 0,response:oe}:{error:void 0,response:oe};if(oe.ok)return{data:await(async()=>{if(S==="stream")return oe.body;if(S==="json"&&!le){const se=await oe.text();return se?JSON.parse(se):void 0}return await oe[S]()})(),response:oe};let re=await oe.text();try{re=JSON.parse(re)}catch{}return{error:re,response:oe}}return{request(p,v,m){return f(v,{...m,method:p.toUpperCase()})},GET(p,v){return f(p,{...v,method:"GET"})},PUT(p,v){return f(p,{...v,method:"PUT"})},POST(p,v){return f(p,{...v,method:"POST"})},DELETE(p,v){return f(p,{...v,method:"DELETE"})},OPTIONS(p,v){return f(p,{...v,method:"OPTIONS"})},HEAD(p,v){return f(p,{...v,method:"HEAD"})},PATCH(p,v){return f(p,{...v,method:"PATCH"})},TRACE(p,v){return f(p,{...v,method:"TRACE"})},use(...p){for(const v of p)if(v){if(typeof v!="object"||!("onRequest"in v||"onResponse"in v||"onError"in v))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");d.push(v)}},eject(...p){for(const v of p){const m=d.indexOf(v);m!==-1&&d.splice(m,1)}}}}function fs(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 eh(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 s in t)a.push(s,n.allowReserved===!0?t[s]:encodeURIComponent(t[s]));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 s=n.style==="deepObject"?`${e}[${o}]`:o;a.push(fs(s,t[o],n))}const l=a.join(r);return n.style==="label"||n.style==="matrix"?`${r}${l}`:l}function th(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(s=>encodeURIComponent(s))).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(fs(e,l,n));return n.style==="label"||n.style==="matrix"?`${a}${r.join(a)}`:r.join(a)}function Hd(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(th(r,l,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}));continue}if(typeof l=="object"){a.push(eh(r,l,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}));continue}a.push(fs(r,l,e))}}return a.join("&")}}function m_(e,t){let n=e;for(const a of e.match(f_)??[]){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 s=t[r];if(Array.isArray(s)){n=n.replace(a,th(r,s,{style:o,explode:l}));continue}if(typeof s=="object"){n=n.replace(a,eh(r,s,{style:o,explode:l}));continue}if(o==="matrix"){n=n.replace(a,`;${fs(r,s)}`);continue}n=n.replace(a,o==="label"?`.${encodeURIComponent(s)}`:encodeURIComponent(s))}return n}function y_(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 g_(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 Kd(...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 Wd(e){return e.endsWith("/")?e.substring(0,e.length-1):e}const Gd="/backend",b_="__SUMMER_ADMIN_BASE__";function __(e=document){const t=e.querySelector('meta[name="summer-admin-base"]')?.content.trim()??"";if(t===""||t===b_||!t.startsWith("/"))return Gd;const n=t.replace(/\/+$/,"");return n===""?Gd:n}const Yd=__(),ps={base:Yd,api:`${Yd}/api/v1`},nh="XMLHttpRequest";let Do=null,ah=null,Vr=null;const ri=new WeakMap;function x_(e){Do=e}function w_(){Do?.()}function k_(e){ah=e}function $_(e){return new URL(e.url,"http://local").pathname}function Jd(e){const t=$_(e);return t.endsWith("/auth/login")||t.endsWith("/auth/refresh")}function Uu(){return Vr||(Vr=(async()=>{try{const{data:e,response:t}=await Oe.POST("/auth/refresh");if(!t.ok||!e)return!1;const n=e.data.expires_in;return ah?.(typeof n=="number"?n:null),!0}catch{return!1}finally{Vr=null}})(),Vr)}const C_={onRequest({request:e}){return e.headers.set("X-Requested-With",nh),Jd(e)||ri.set(e,e.clone()),e},async onResponse({request:e,response:t}){if(t.status!==401||Jd(e))return t;const n=ri.get(e);if(ri.delete(e),!n||!await Uu())return Do?.(),t;const a=await globalThis.fetch(n);return a.status===401&&Do?.(),a}},Oe=h_({baseUrl:ps.api,credentials:"same-origin",fetch:e=>globalThis.fetch(e)});Oe.use(C_);const zu=M({}),Hu=M(typeof document>"u"?"pl":document.documentElement.lang||"pl"),hl=dt(Hu);function S_(e,t){zu.value=e,t&&(Hu.value=t,typeof document<"u"&&(document.documentElement.lang=t))}async function E_(){const{data:e,response:t}=await Oe.GET("/lang");!t.ok||!e||S_(e.data,e.meta.locale)}function Zd(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 tu(e,t={}){if(e==="")return e;const n=[];for(const[r,l]of Object.entries(t)){const o=r.replace(/^:/,"");if(o==="")continue;const s=String(l);n.push([`:${Zd(o)}`,Zd(s)]),n.push([`:${o.toUpperCase()}`,s.toUpperCase()]),n.push([`:${o}`,s])}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 Qd=new Map;function A_(e,t=Hu.value){let n=Qd.get(t);if(n===void 0){try{n=new Intl.PluralRules(t)}catch{n=null}Qd.set(t,n)}return n?n.select(e):"other"}function Ie(e,t,n={}){if(!e)return"";if(t===void 0)return tu(e.other??"",n);const a=e[A_(t)]??e.other??"";return tu(a,{count:t,...n})}function P(e,t={}){const n=zu.value[e]?.other;return n===void 0?e:tu(n,t)}function xr(e,t,n={}){const a=zu.value[e];return a?Ie(a,t,n):e}const Xd={archive:Y1,"arrow-down":jv,"arrow-left":us,"arrow-right":X1,"arrow-up":zv,"arrow-up-right":Uv,"cassette-tape":l0,check:_r,"chevron-down":Dl,"chevron-left":cs,"chevron-right":Pl,circle:f0,"circle-alert":Bt,disc:y0,"disc-3":h0,image:k0,library:E0,list:D0,"log-out":Hv,"mic-vocal":T0,minus:Kv,palette:I0,"panel-left-close":Wv,"panel-left-open":Gv,plus:Lu,puzzle:Yv,search:ds,"search-x":Jv,settings:Zv,"shield-check":W0,sun:ju,tags:e_,"trash-2":Ol,user:o_,"user-minus":Qv,"user-plus":Xv,users:c_,"users-round":i_,x:Wt},D_={"icon-archive":"archive","icon-circle":"circle","icon-list-ul":"list","icon-tags":"tags","icon-user":"user","icon-search":"search","icon-cog":"settings","icon-users":"users"},ef=Z0;function li(e,t){return Object.hasOwn(e,t)?e[t]:void 0}function vs(e){if(!e)return ef;const t=e.trim();return li(Xd,t)??li(Xd,li(D_,t)??"")??ef}const P_=/^[A-Za-z0-9_-]+$/;function hs(e){const t=e.split(".");if(t.length!==3||!t.every(l=>P_.test(l)))return null;const[n,a,r]=t;return{vendor:n,plugin:a,controller:r}}function Un(e){const t=hs(e);return t?`/${t.vendor}/${t.plugin}/${t.controller}`:null}function ms(e){return`${e.vendor}.${e.plugin}.${e.controller}`}function Ku(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 tf(e){const t=hs(e);return t?`${t.vendor}.${t.plugin}`:null}const Po=M([]);async function rh(){const{data:e,response:t}=await Oe.GET("/navigation");return Po.value=t.ok&&e?e.data:[],Po.value}function O_(e){Po.value=e}const Oo=w(()=>Po.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 Wu(e){for(const t of e.sideMenu){const n=Un(t.controller);if(n)return n}return Un(e.controller)}function ys(e,t){const n=`${e}.${t}`;return Oo.value.find(a=>tf(a.controller)===n||a.sideMenu.some(r=>tf(r.controller)===n))??null}function M_(){for(const e of Oo.value){const t=Wu(e);if(t)return t}return null}const wr=M([]),T_=w(()=>wr.value.length>0);async function lh(){const{data:e,response:t}=await Oe.GET("/settings");return wr.value=t.ok&&e?e.data:[],wr.value}function R_(e){wr.value=e}function nu(e){return wr.value.find(t=>t.code===e)??null}const nf=w(()=>{const e=wr.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}),oh="summer-admin.sidebar",q_="(max-width: 1099px)",gs=M(!1),rl=M(!1),I_=w(()=>rl.value||gs.value);function sh(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function F_(){try{return sh()?.getItem(oh)==="true"}catch{return!1}}function ih(e){gs.value=e;try{sh()?.setItem(oh,e?"true":"false")}catch{}}function B_(){if(gs.value=F_(),typeof window>"u"||typeof window.matchMedia!="function")return rl.value=!1,()=>{};const e=window.matchMedia(q_);rl.value=e.matches;const t=n=>{rl.value=n.matches};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}function uh(){return{collapsed:I_,narrow:dt(rl),manual:dt(gs),setCollapsed:ih,watchViewport:B_}}const N_=["id","aria-label"],V_={class:"px-2.5 pt-1 pb-2 text-[14px] font-bold","aria-hidden":"true"},L_=ee({__name:"SectionFlyout",props:{entry:{},id:{}},emits:["escape","leave","navigate"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=an(),o=M(null),s=w(()=>Ku(l.path)),i=w(()=>a.entry.sideMenu.flatMap(v=>{const m=Un(v.controller);return m?[{item:v,to:m,icon:vs(v.icon),current:s.value===v.controller}]:[]}));function c(){return[...o.value?.querySelectorAll('[role="menuitem"]')??[]]}async function d(){await ze(),c()[0]?.focus()}function f(v){return!!v&&!!o.value?.contains(v)}function p(v){const m=c(),g=m.indexOf(document.activeElement);switch(v.key){case"ArrowDown":v.preventDefault(),m[(g+1)%m.length]?.focus();break;case"ArrowUp":v.preventDefault(),m[(g-1+m.length)%m.length]?.focus();break;case"Home":v.preventDefault(),m[0]?.focus();break;case"End":v.preventDefault(),m[m.length-1]?.focus();break;case"Escape":v.preventDefault(),r("escape");break;case"Tab":r("leave");break}}return t({focusFirst:d,contains:f}),(v,m)=>(h(),$("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:p},[O("span",V_,T(e.entry.label),1),(h(!0),$(_e,null,Ne(i.value,g=>(h(),U(u(_n),{key:g.item.code,to:g.to,role:"menuitem",tabindex:"-1","aria-current":g.current?"page":void 0,class:xe([g.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:m[0]||(m[0]=_=>r("navigate"))},{default:B(()=>[(h(),U(bn(g.icon),{size:18,"aria-hidden":"true"})),O("span",null,T(g.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],40,N_))}}),j_=["aria-label"],U_={class:"mb-3.5 flex size-10 items-center justify-center rounded-inner bg-accent-soft",title:"SummerCMS"},z_=["aria-label","title"],H_=200,K_=ee({__name:"PluginRail",setup(e){const t=an(),{collapsed:n,narrow:a,setCollapsed:r}=uh(),l=w(()=>ys(String(t.params.vendor??""),String(t.params.plugin??""))),o=w(()=>t.path==="/settings"||t.path.startsWith("/settings/")),s=w(()=>Oo.value.map(K=>({entry:K,to:Wu(K)??"/",icon:vs(K.icon),current:l.value?.code===K.code}))),i=M(null),c=M(null),d=w(()=>Oo.value.find(K=>K.code===i.value)??null),f=new Map;let p=null,v=!1;function m(K){return`section-flyout-${K}`}function g(K,k){const F=k?.$el;F instanceof HTMLElement?f.set(K,F):f.delete(K)}function _(){p!==null&&(clearTimeout(p),p=null)}function y(){_(),i.value=null}function x(){_(),p=setTimeout(()=>{p=null;const K=document.activeElement,k=i.value;k!==null&&(f.get(k)===K||c.value?.contains(K))||(i.value=null)},H_)}function S(K){n.value&&(_(),i.value=K)}function A(K){v||S(K)}async function L(K,k){n.value&&(K.key==="Enter"||K.key==="ArrowDown"?(K.preventDefault(),S(k),await ze(),await c.value?.focusFirst()):K.key==="Escape"&&i.value!==null&&(K.preventDefault(),y()))}function J(){const K=i.value;y(),K!==null&&(v=!0,f.get(K)?.focus(),v=!1)}function z(){r(!1),ze(()=>document.querySelector("[data-sidebar-collapse]")?.focus())}return Be(n,K=>{K||y()}),qt(_),(K,k)=>(h(),$("nav",{"aria-label":u(P)("backend::lang.nav.plugins"),class:"flex w-rail shrink-0 flex-col items-center gap-1.5 border-r border-side-border bg-side pt-3.5 pb-3"},[O("span",U_,[H(u(ju),{size:22,class:"text-accent","aria-hidden":"true"})]),(h(!0),$(_e,null,Ne(s.value,F=>(h(),U(u(_n),{key:F.entry.code,ref_for:!0,ref:G=>g(F.entry.code,G),to:F.to,"data-rail-item":F.entry.code,"aria-current":F.current?"page":void 0,"aria-haspopup":u(n)?"menu":void 0,"aria-expanded":u(n)?i.value===F.entry.code?"true":"false":void 0,"aria-controls":u(n)&&i.value===F.entry.code?m(F.entry.code):void 0,class:xe([F.current?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[68px] flex-col items-center gap-1 rounded-inner px-1.5 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"]),onMouseenter:G=>S(F.entry.code),onMouseleave:x,onFocus:G=>A(F.entry.code),onBlur:x,onKeydown:G=>L(G,F.entry.code)},{default:B(()=>[(h(),U(bn(F.icon),{size:20,"aria-hidden":"true"})),O("span",null,T(F.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?(h(),U(L_,{key:0,id:m(d.value.code),ref_key:"flyout",ref:c,entry:d.value,onMouseenter:_,onMouseleave:x,onFocusin:_,onFocusout:x,onEscape:J,onLeave:x,onNavigate:y},null,8,["id","entry"])):ae("",!0),k[0]||(k[0]=O("span",{class:"flex-1","aria-hidden":"true"},null,-1)),u(n)&&!u(a)?(h(),$("button",{key:1,type:"button","data-sidebar-expand":"","aria-label":u(P)("backend::lang.nav.expand"),title:u(P)("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},[H(u(Gv),{size:20,"aria-hidden":"true"})],8,z_)):ae("",!0),u(T_)?(h(),U(u(_n),{key:2,to:"/settings","data-rail-settings":"","aria-current":o.value?"page":void 0,class:xe([o.value?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[68px] flex-col items-center gap-1 rounded-inner px-1.5 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"])},{default:B(()=>[H(u(Zv),{size:20,"aria-hidden":"true"}),O("span",null,T(u(P)("backend::lang.nav.settings")),1)]),_:1},8,["aria-current","class"])):ae("",!0)],8,j_))}}),W_=["aria-label"],G_={class:"mb-3.5 flex h-10 items-center justify-between gap-2 pl-2"},Y_={class:"truncate text-[16px] font-bold"},J_=["aria-label","title"],Z_=ee({__name:"SectionPanel",props:{entry:{}},setup(e){const t=e,n=an(),a=w(()=>Ku(n.path)),r=w(()=>t.entry.sideMenu.flatMap(o=>{const s=Un(o.controller);return s?[{item:o,to:s,icon:vs(o.icon),current:a.value===o.controller}]:[]}));function l(){ih(!0),ze(()=>document.querySelector("[data-sidebar-expand]")?.focus())}return(o,s)=>(h(),$("aside",{"aria-label":u(P)("backend::lang.nav.sections"),class:"flex w-panel shrink-0 flex-col gap-0.5 border-r border-border bg-surface px-3 py-3.5"},[O("div",G_,[O("span",Y_,T(e.entry.label),1),O("button",{type:"button","data-sidebar-collapse":"","aria-label":u(P)("backend::lang.nav.collapse"),title:u(P)("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},[H(u(Wv),{size:18,"aria-hidden":"true"})],8,J_)]),(h(!0),$(_e,null,Ne(r.value,i=>(h(),U(u(_n),{key:i.item.code,to:i.to,"aria-current":i.current?"page":void 0,class:xe([i.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(()=>[(h(),U(bn(i.icon),{size:18,"aria-hidden":"true"})),O("span",null,T(i.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],8,W_))}}),Gu=M(""),af=dt(Gu);function ch(e){Gu.value=e}function dh(){Gu.value=""}const Q_=["aria-label"],X_={class:"flex min-w-0 items-center gap-2"},ex=["aria-current"],tx=ee({__name:"Breadcrumbs",setup(e){const t=an(),n=w(()=>{if(t.name==="settings"||t.name==="settings-form"){const s=[{label:P("backend::lang.nav.settings"),to:"/settings"}],i=t.name==="settings-form"?nu(String(t.params.code??"")):null;return i&&s.push({label:i.label}),s}const a=ys(String(t.params.vendor??""),String(t.params.plugin??""));if(!a)return[];const r=[{label:a.label,to:Wu(a)??void 0}],l=Ku(t.path),o=a.sideMenu.find(s=>s.controller===l)??null;return o&&r.push({label:o.label,to:Un(o.controller)??void 0}),(t.name==="record"||t.name==="create")&&af.value!==""&&r.push({label:af.value}),r});return(a,r)=>(h(),$("nav",{"aria-label":u(P)("backend::lang.nav.breadcrumbs"),class:"min-w-0"},[O("ol",X_,[(h(!0),$(_e,null,Ne(n.value,(l,o)=>(h(),$("li",{key:o,"data-crumb":"",class:"flex min-w-0 items-center gap-2"},[o>0?(h(),U(u(Pl),{key:0,size:14,class:"shrink-0 text-muted","aria-hidden":"true"})):ae("",!0),o===n.value.length-1||!l.to?(h(),$("span",{key:1,"aria-current":o===n.value.length-1?"page":void 0,class:xe([o===n.value.length-1?"font-semibold text-text":"text-muted","truncate"])},T(l.label),11,ex)):(h(),U(u(_n),{key:2,to:l.to,class:"truncate text-muted no-underline transition-colors duration-150 ease-out hover:text-text"},{default:B(()=>[$e(T(l.label),1)]),_:2},1032,["to"]))]))),128))])],8,Q_))}});function Yl(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 oi(e,t,n,a){t=Number(t),n=Number(n);const r=(e-(Number.isNaN(t)?0:t))%a;let l=Yl(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(Yl(n/a,a))*a):ln&&(l=t+Math.floor(Yl((n-t)/a,a))*a),l=Yl(l,a),l}function xt(e,t){const n=typeof e=="string"&&!t?`${e}Context`:t,a=Symbol(n);return[o=>{const s=st(a,o);if(s||s===null)return s;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=>(Dt(a,o),o)]}function ft(){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 fh(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 nx(e,t){var n;const a=es();return Xt(()=>{a.value=e()},{...t,flush:(n=t?.flush)!==null&&n!==void 0?n:"sync"}),dt(a)}function ph(e,t){return Au()?(yp(e,t),!0):!1}function ax(e){let t=!1,n;const a=mp(!0);return((...r)=>(t||(n=a.run(()=>e(...r)),t=!0),n))}const Wn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const rx=e=>typeof e<"u",lx=Object.prototype.toString,ox=e=>lx.call(e)==="[object Object]",rf=sx();function sx(){var e,t,n;return Wn&&!!(!((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 si(e){return Array.isArray(e)?e:[e]}function ix(e){return $n()}function vh(e){if(!Wn)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=mp(!0),n=a.run(()=>e(...l))),ph(r),n))}function ux(e){return Zt(ot(e)?new Proxy({},{get(t,n,a){return u(Reflect.get(e.value,n,a))},set(t,n,a){return ot(e.value[n])&&!ot(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 cx(e){return ux(w(e))}function dx(e,...t){const n=t.flat(),a=n[0];return cx(()=>Object.fromEntries(typeof a=="function"?Object.entries(Lt(e)).filter(([r,l])=>!a(Tt(l),r)):Object.entries(Lt(e)).filter(r=>!n.includes(r[0]))))}function fx(e,t=1e4){return Vy((n,a)=>{let r=Tt(e),l;const o=()=>setTimeout(()=>{r=Tt(e),a()},Tt(t));return ph(()=>{clearTimeout(l)}),{get(){return n(),r},set(s){r=s,a(),clearTimeout(l),l=o()}}})}function px(e,t){ix()&&qt(e,t)}function vx(e,t,n){return Be(e,t,{...n,immediate:!0})}const Yu=Wn?window:void 0;function Dr(e){var t;const n=Tt(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Mo(...e){const t=(a,r,l,o)=>(a.addEventListener(r,l,o),()=>a.removeEventListener(r,l,o)),n=w(()=>{const a=si(Tt(e[0])).filter(r=>r!=null);return a.every(r=>typeof r!="string")?a:void 0});return vx(()=>{var a,r;return[(a=(r=n.value)===null||r===void 0?void 0:r.map(l=>Dr(l)))!==null&&a!==void 0?a:[Yu].filter(l=>l!=null),si(Tt(n.value?e[1]:e[0])),si(u(n.value?e[2]:e[1])),Tt(n.value?e[3]:e[2])]},([a,r,l,o],s,i)=>{if(!a?.length||!r?.length||!l?.length)return;const c=ox(o)?{...o}:o,d=a.flatMap(f=>r.flatMap(p=>l.map(v=>t(f,p,v,c))));i(()=>{d.forEach(f=>f())})},{flush:"post"})}function hx(){const e=es(!1),t=$n();return t&&_t(()=>{e.value=!0},t),e}function mx(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function yx(...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=Yu,eventName:l="keydown",passive:o=!1,dedupe:s=!1}=a,i=mx(t);return Mo(r,l,d=>{d.repeat&&Tt(s)||i(d)&&n(d)},o)}function gx(e){return JSON.parse(JSON.stringify(e))}function bt(e,t,n,a={}){var r,l;const{clone:o=!1,passive:s=!1,eventName:i,deep:c=!1,defaultValue:d,shouldEmit:f}=a,p=$n(),v=n||p?.emit||(p==null||(r=p.$emit)===null||r===void 0?void 0:r.bind(p))||(p==null||(l=p.proxy)===null||l===void 0||(l=l.$emit)===null||l===void 0?void 0:l.bind(p?.proxy));let m=i;t||(t="modelValue"),m=m||`update:${t.toString()}`;const g=x=>o?typeof o=="function"?o(x):gx(x):x,_=()=>rx(e[t])?g(e[t]):d,y=x=>{f?f(x)&&v(m,x):v(m,x)};if(s){const x=M(_());let S=!1;return Be(()=>e[t],A=>{S||(S=!0,x.value=g(A),ze(()=>S=!1))}),Be(x,A=>{!S&&(A!==e[t]||c)&&y(A)},{deep:c}),x}else return w({get(){return _()},set(x){y(x)}})}function Ju(e){return e?e.flatMap(t=>t.type===_e?Ju(t.children):[t]):[]}const bx=["INPUT","TEXTAREA"];function lf(e,t,n,a={}){if(!t||a.enableIgnoredElement&&bx.includes(t.nodeName))return null;const{arrowKeyOptions:r="both",attributeName:l="[data-reka-collection-item]",itemsArray:o=[],loop:s=!0,dir:i="ltr",preventScroll:c=!0,focus:d=!1}=a,[f,p,v,m,g,_]=[e.key==="ArrowRight",e.key==="ArrowLeft",e.key==="ArrowUp",e.key==="ArrowDown",e.key==="Home",e.key==="End"],y=v||m,x=f||p;if(!g&&!_&&(!y&&!x||r==="vertical"&&x||r==="horizontal"&&y))return null;const S=n?Array.from(n.querySelectorAll(l)):o;if(!S.length)return null;c&&e.preventDefault();let A=null;return x||y?A=hh(S,t,{goForward:y?m:i==="ltr"?f:p,loop:s}):g?A=S.at(0)||null:_&&(A=S.at(-1)||null),d&&A?.focus(),A}function hh(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,s=e[o];return s?s.hasAttribute("disabled")&&s.getAttribute("disabled")!=="false"?hh(e,s,n,a):s:null}const[bs]=xt("ConfigProvider");function ii(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 au(e,t,n=".",a){if(!ii(t))return au(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]]:ii(o)&&ii(r[l])?r[l]=au(o,r[l],(n?`${n}.`:"")+l.toString(),a):r[l]=o))}return r}function _x(e){return(...t)=>t.reduce((n,a)=>au(n,a,"",e),{})}const mh=_x(),xx=vh(()=>{const e=M(new Map),t=M(),n=w(()=>{for(const o of e.value.values())if(o)return!0;return!1}),a=bs({scrollBody:M(!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??"",rf&&r?.(),t.value=void 0};return Be(n,(o,s)=>{if(!Wn)return;if(!o){s&&l();return}t.value===void 0&&(t.value=document.body.style.overflow);const i=window.innerWidth-document.documentElement.clientWidth,c={padding:i,margin:0},d=a.scrollBody?.value?typeof a.scrollBody.value=="object"?mh({padding:a.scrollBody.value.padding===!0?i:a.scrollBody.value.padding,margin:a.scrollBody.value.margin===!0?i:a.scrollBody.value.margin},c):c:{padding:0,margin:0};i>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",`${i}px`),document.body.style.overflow="hidden"),rf&&(r=Mo(document,"touchmove",f=>wx(f),{passive:!1})),ze(()=>{n.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function Zu(e){const t=Math.random().toString(36).substring(2,7),n=xx();n.value.set(t,e??!1);const a=w({get:()=>n.value.get(t)??!1,set:r=>n.value.set(t,r)});return px(()=>{n.value.delete(t)}),a}function yh(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 cr(e,t){return e-t*Math.floor(e/t)}const gh=1721426;function Oa(e,t,n,a){t=Ml(e,t);let r=t-1,l=-2;return n<=2?l=0:sa(t)&&(l=-1),gh-1+365*r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400)+Math.floor((367*n-362)/12+l+a)}function sa(e){return e%4===0&&(e%100!==0||e%400===0)}function Ml(e,t){return e==="BC"?1-t:t}function _s(e){let t="AD";return e<=0&&(t="BC",e=1-e),[t,e]}const kx={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 nn{fromJulianDay(t){let n=t,a=n-gh,r=Math.floor(a/146097),l=cr(a,146097),o=Math.floor(l/36524),s=cr(l,36524),i=Math.floor(s/1461),c=cr(s,1461),d=Math.floor(c/365),f=r*400+o*100+i*4+d+(o!==4&&d!==4?1:0),[p,v]=_s(f),m=n-Oa(p,v,1,1),g=2;n0&&t===rn()&&!xh())return new Date(e).getTimezoneOffset()*-6e4;let{year:n,month:a,day:r,hour:l,minute:o,second:s}=kh(e,t);return wh(n,a,r,l,o,s,0)-Math.floor(e/1e3)*1e3}const df=new Map;function kh(e,t){let n=df.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"}),df.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 ff=864e5;function Ox(e,t,n,a){return(n===a?[n]:[n,a]).filter(l=>Mx(e,t,l))}function Mx(e,t,n){let a=kh(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 Tn(e,t,n="compatible"){let a=xn(e);if(t==="UTC")return kr(a);if(t===rn()&&n==="compatible"&&!xh()){a=Mt(a,new nn);let i=new Date,c=Ml(a.era,a.year);return i.setFullYear(c,a.month-1,a.day),i.setHours(a.hour,a.minute,a.second,a.millisecond),i.getTime()}let r=kr(a),l=lu(r-ff,t),o=lu(r+ff,t),s=Ox(a,t,r-l,r-o);if(s.length===1)return s[0];if(s.length>1)switch(n){case"compatible":case"earlier":return s[0];case"later":return s[s.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 $h(e,t,n="compatible"){return new Date(Tn(e,t,n))}function Rn(e,t){let n=lu(e,t),a=new Date(e+n),r=a.getUTCFullYear(),l=a.getUTCMonth()+1,o=a.getUTCDate(),s=a.getUTCHours(),i=a.getUTCMinutes(),c=a.getUTCSeconds(),d=a.getUTCMilliseconds();return new zn(r<1?"BC":"AD",r<1?-r+1:r,l,o,t,n,s,i,c,d)}function Tx(e){return new tt(e.calendar,e.era,e.year,e.month,e.day)}function xn(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 va(e.calendar,e.era,e.year,e.month,e.day,n,a,r,l)}function Mt(e,t){if(Xu(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,qa(a),a}function ec(e,t,n){if(e instanceof zn)return e.timeZone===t?e:ws(e,t);let a=Tn(e,t,n);return Rn(a,t)}function Rx(e){let t=kr(e)-e.offset;return new Date(t)}function ws(e,t){let n=kr(e)-e.offset;return Mt(Rn(n,t),e.calendar)}const Lr=36e5;function ks(e,t){let n=e.copy(),a="hour"in n?Ah(n,t):0;ou(n,t.years||0),n.calendar.balanceYearMonth&&n.calendar.balanceYearMonth(n,e),n.month+=t.months||0,su(n),Ch(n),n.day+=(t.weeks||0)*7,n.day+=t.days||0,n.day+=a,qx(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 ou(e,t){e.calendar.isInverseEra?.(e)&&(t=-t),e.year+=t}function su(e){for(;e.month<1;)ou(e,-1),e.month+=e.calendar.getMonthsInYear(e);let t=0;for(;e.month>(t=e.calendar.getMonthsInYear(e));)e.month-=t,ou(e,1)}function qx(e){for(;e.day<1;)e.month--,su(e),e.day+=e.calendar.getDaysInMonth(e);for(;e.day>e.calendar.getDaysInMonth(e);)e.day-=e.calendar.getDaysInMonth(e),e.month++,su(e)}function Ch(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 qa(e){e.calendar.constrainDate&&e.calendar.constrainDate(e),e.year=Math.max(1,Math.min(e.calendar.getYearsInEra(e),e.year)),Ch(e)}function tc(e){let t={};for(let n in e)typeof e[n]=="number"&&(t[n]=-e[n]);return t}function Sh(e,t){return ks(e,tc(t))}function nc(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),qa(n),n}function ml(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),Eh(n),n}function Ix(e){e.second+=Math.floor(e.millisecond/1e3),e.millisecond=Jl(e.millisecond,1e3),e.minute+=Math.floor(e.second/60),e.second=Jl(e.second,60),e.hour+=Math.floor(e.minute/60),e.minute=Jl(e.minute,60);let t=Math.floor(e.hour/24);return e.hour=Jl(e.hour,24),t}function Eh(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 Jl(e,t){let n=e%t;return n<0&&(n+=t),n}function Ah(e,t){return e.hour+=t.hours||0,e.minute+=t.minutes||0,e.second+=t.seconds||0,e.millisecond+=t.milliseconds||0,Ix(e)}function Dh(e,t){let n=e.copy();return Ah(n,t),n}function Fx(e,t){return Dh(e,tc(t))}function ac(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=qn(o,n,0,l.length-1,a?.round),r.era=l[o],qa(r);break}case"year":r.calendar.isInverseEra?.(r)&&(n=-n),r.year=qn(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=qn(e.month,n,1,e.calendar.getMonthsInYear(e),a?.round);break;case"day":r.day=qn(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),qa(r),r}function rc(e,t,n,a){let r=e.copy();switch(t){case"hour":{let l=e.hour,o=0,s=23;if(a?.hourCycle===12){let i=l>=12;o=i?12:0,s=i?23:11}r.hour=qn(l,n,o,s,a?.round);break}case"minute":r.minute=qn(e.minute,n,0,59,a?.round);break;case"second":r.second=qn(e.second,n,0,59,a?.round);break;case"millisecond":r.millisecond=qn(e.millisecond,n,0,999,a?.round);break;default:throw new Error("Unsupported field "+t)}return r}function qn(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 Ph(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=ks(xn(e),{years:t.years,months:t.months,weeks:t.weeks,days:t.days});n=Tn(r,e.timeZone)}else n=kr(e)-e.offset;n+=t.milliseconds||0,n+=(t.seconds||0)*1e3,n+=(t.minutes||0)*6e4,n+=(t.hours||0)*36e5;let a=Rn(n,e.timeZone);return Mt(a,e.calendar)}function Bx(e,t){return Ph(e,tc(t))}function Nx(e,t,n,a){switch(t){case"hour":{let r=0,l=23;if(a?.hourCycle===12){let m=e.hour>=12;r=m?12:0,l=m?23:11}let o=xn(e),s=Mt(ml(o,{hour:r}),new nn),i=[Tn(s,e.timeZone,"earlier"),Tn(s,e.timeZone,"later")].filter(m=>Rn(m,e.timeZone).day===s.day)[0],c=Mt(ml(o,{hour:l}),new nn),d=[Tn(c,e.timeZone,"earlier"),Tn(c,e.timeZone,"later")].filter(m=>Rn(m,e.timeZone).day===c.day).pop(),f=kr(e)-e.offset,p=Math.floor(f/Lr),v=f%Lr;return f=qn(p,n,Math.floor(i/Lr),Math.floor(d/Lr),a?.round)*Lr+v,Mt(Rn(f,e.timeZone),e.calendar)}case"minute":case"second":case"millisecond":return rc(e,t,n,a);case"era":case"year":case"month":case"day":{let r=ac(xn(e),t,n,a),l=Tn(r,e.timeZone);return Mt(Rn(l,e.timeZone),e.calendar)}default:throw new Error("Unsupported field "+t)}}function Vx(e,t,n){let a=xn(e),r=ml(nc(a,t),t);if(r.compare(a)===0)return e;let l=Tn(r,e.timeZone,n);return Mt(Rn(l,e.timeZone),e.calendar)}const Lx=/^(\d{2})(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/,jx=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/,Oh=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/;function Ux(e){let t=e.match(Lx);if(!t)throw new Error("Invalid ISO 8601 time string: "+e);return new hn(mt(t[1],0,23),t[2]?mt(t[2],0,59):0,t[3]?mt(t[3],0,59):0,t[4]?mt(t[4],0,1/0)*1e3:0)}function Mh(e){let t=e.match(jx);if(!t)throw Oh.test(e)?new Error(`Invalid ISO 8601 date string: ${e}. Use parseAbsolute() instead.`):new Error("Invalid ISO 8601 date string: "+e);let n=new tt(mt(t[1],0,9999),mt(t[2],1,12),1);return n.day=mt(t[3],1,n.calendar.getDaysInMonth(n)),n}function pf(e,t){let n=e.match(Oh);if(!n)throw new Error("Invalid ISO 8601 date time string: "+e);let a=mt(n[1],-9999,9999),r=a<1?"BC":"AD",l=new zn(r,a<1?-a+1:a,mt(n[2],1,12),1,t,0,n[4]?mt(n[4],0,23):0,n[5]?mt(n[5],0,59):0,n[6]?mt(n[6],0,59):0,n[7]?mt(n[7],0,1/0)*1e3:0);return l.day=mt(n[3],0,l.calendar.getDaysInMonth(l)),n[8]&&(l.offset=mt(n[8],-23,23)*36e5+mt(n[9]??"0",0,59)*6e4),ws(l,t)}function mt(e,t,n){let a=Number(e);if(an)throw new RangeError(`Value out of range: ${t} <= ${a} <= ${n}`);return a}function Th(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 Rh(e){let t=Mt(e,new nn),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 qh(e){return`${Rh(e)}T${Th(e)}`}function zx(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 Hx(e){return`${qh(e)}${zx(e.offset)}[${e.timeZone}]`}function lc(e){let t=typeof e[0]=="object"?e.shift():new nn,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 tt{#e;constructor(...t){let[n,a,r,l,o]=lc(t);this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,qa(this)}copy(){return this.era?new tt(this.calendar,this.era,this.year,this.month,this.day):new tt(this.calendar,this.year,this.month,this.day)}add(t){return ks(this,t)}subtract(t){return Sh(this,t)}set(t){return nc(this,t)}cycle(t,n,a){return ac(this,t,n,a)}toDate(t){return $h(this,t)}toString(){return Rh(this)}compare(t){return bh(this,t)}}class hn{#e;constructor(t=0,n=0,a=0,r=0){this.hour=t,this.minute=n,this.second=a,this.millisecond=r,Eh(this)}copy(){return new hn(this.hour,this.minute,this.second,this.millisecond)}add(t){return Dh(this,t)}subtract(t){return Fx(this,t)}set(t){return ml(this,t)}cycle(t,n,a){return rc(this,t,n,a)}toString(){return Th(this)}compare(t){return _h(this,t)}}class va{#e;constructor(...t){let[n,a,r,l,o]=lc(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,qa(this)}copy(){return this.era?new va(this.calendar,this.era,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond):new va(this.calendar,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond)}add(t){return ks(this,t)}subtract(t){return Sh(this,t)}set(t){return nc(ml(this,t),t)}cycle(t,n,a){switch(t){case"era":case"year":case"month":case"day":return ac(this,t,n,a);default:return rc(this,t,n,a)}}toDate(t,n){return $h(this,t,n)}toString(){return qh(this)}compare(t){let n=bh(this,t);return n===0?_h(this,xn(t)):n}}class zn{#e;constructor(...t){let[n,a,r,l,o]=lc(t),s=t.shift(),i=t.shift();this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,this.timeZone=s,this.offset=i,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,qa(this)}copy(){return this.era?new zn(this.calendar,this.era,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond):new zn(this.calendar,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond)}add(t){return Ph(this,t)}subtract(t){return Bx(this,t)}set(t,n){return Vx(this,t,n)}cycle(t,n,a){return Nx(this,t,n,a)}toDate(){return Rx(this)}toString(){return Hx(this)}toAbsoluteString(){return this.toDate().toISOString()}compare(t){return this.toDate().getTime()-ec(t,this.timeZone).toDate().getTime()}}const fr=[[1868,9,8],[1912,7,30],[1926,12,25],[1989,1,8],[2019,5,1]],Kx=[[1912,7,29],[1926,12,24],[1989,1,7],[2019,4,30]],po=[1867,1911,1925,1988,2018],oa=["meiji","taisho","showa","heisei","reiwa"];function vf(e){const t=fr.findIndex(([n,a,r])=>e.year=0){let[,r,l]=fr[n];t.month=Math.max(r,t.month),t.month===r&&(t.day=Math.max(l,t.day))}}getEras(){return oa}getYearsInEra(t){let n=oa.indexOf(t.era),a=fr[n],r=fr[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 Yx extends nn{fromJulianDay(t){let n=super.fromJulianDay(t),a=Ml(n.era,n.year),[r,l]=yf(a);return new tt(this,r,l,n.month,n.day)}toJulianDay(t){return super.toJulianDay(gf(t))}getEras(){return["before_minguo","minguo"]}balanceDate(t){let[n,a]=yf(Fh(t));t.era=n,t.year=a}isInverseEra(t){return t.era==="before_minguo"}getDaysInMonth(t){return super.getDaysInMonth(gf(t))}getYearsInEra(t){return t.era==="before_minguo"?9999:9999-To}constructor(...t){super(...t),this.identifier="roc"}}function gf(e){let[t,n]=_s(Fh(e));return new tt(t,n,e.month,e.day)}const bf=1948320,_f=[0,31,62,93,124,155,186,216,246,276,306,336];class Jx{fromJulianDay(t){let n=t-bf,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),s=l-_f[o]+1;return new tt(this,a,o+1,s)}toJulianDay(t){let n=bf-1+365*(t.year-1)+Math.floor((8*t.year+21)/33);return n+=_f[t.month-1],n+=t.day,n}getMonthsInYear(){return 12}getDaysInMonth(t){return t.month<=6?31:t.month<=11||cr(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 fi=78,xf=80;class Zx extends nn{fromJulianDay(t){let n=super.fromJulianDay(t),a=n.year-fi,r=t-Oa(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&&sa(t.year+fi)||t.month>=2&&t.month<=6?31:30}getYearsInEra(){return 9919}getEras(){return["saka"]}balanceDate(){}constructor(...t){super(...t),this.identifier="indian"}}const Ro=1948440,wf=1948439,Ut=1300,Ga=1600,Qx=460322;function qo(e,t,n,a){return a+Math.ceil(29.5*(n-1))+(t-1)*354+Math.floor((3+11*t)/30)+e-1}function Bh(e,t,n){let a=Math.floor((30*(n-t)+10646)/10631),r=Math.min(12,Math.ceil((n-(29+qo(t,a,1,1)))/29.5)+1),l=n-qo(t,a,r,1)+1;return new tt(e,a,r,l)}function kf(e){return(14+11*e)%30<11}class oc{fromJulianDay(t){return Bh(this,Ro,t)}toJulianDay(t){return qo(Ro,t.year,t.month,t.day)}getDaysInMonth(t){let n=29+t.month%2;return t.month===12&&kf(t.year)&&n++,n}getMonthsInYear(){return 12}getDaysInYear(t){return kf(t.year)?355:354}getMaximumMonthsInYear(){return 12}getMaximumDaysInMonth(){return 30}getYearsInEra(){return 9665}getEras(){return["AH"]}constructor(){this.identifier="islamic-civil"}}class Xx extends oc{fromJulianDay(t){return Bh(this,wf,t)}toJulianDay(t){return qo(wf,t.year,t.month,t.day)}constructor(...t){super(...t),this.identifier="islamic-tbla"}}const ew="qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=";let iu,pr;function vo(e){return Qx+pr[e-Ut]}function Yr(e,t){let n=e-Ut,a=1<<11-(t-1);return(iu[n]&a)===0?29:30}function $f(e,t){let n=vo(e);for(let a=1;at.charCodeAt(0)).buffer)),!pr){pr=new Uint32Array(Ga-Ut+1);let t=0;for(let n=Ut;n<=Ga;n++){pr[n-Ut]=t;for(let a=1;a<=12;a++)t+=Yr(n,a)}}}fromJulianDay(t){let n=t-Ro,a=vo(Ut),r=vo(Ga);if(nr)return super.fromJulianDay(t);{let l=Ut-1,o=1,s=1;for(;s>0;){l++,s=n-vo(l)+1;let i=Cf(l);if(s===i){o=12;break}else if(sc;)s-=c,o++,c=Yr(l,o);break}}return new tt(this,l,o,n-$f(l,o)+1)}}toJulianDay(t){return t.yearGa?super.toJulianDay(t):Ro+$f(t.year,t.month)+(t.day-1)}getDaysInMonth(t){return t.yearGa?super.getDaysInMonth(t):Yr(t.year,t.month)}getDaysInYear(t){return t.yearGa?super.getDaysInYear(t):Cf(t.year)}}const Sf=347997,Nh=1080,Vh=24*Nh,nw=29,aw=12*Nh+793,rw=nw*Vh+aw;function Pa(e){return cr(e*7+1,19)<7}function ho(e){let t=Math.floor((235*e-234)/19),n=12084+13753*t,a=t*29+Math.floor(n/25920);return cr(3*(a+1),7)<3&&(a+=1),a}function lw(e){let t=ho(e-1),n=ho(e);return ho(e+1)-n===356?2:n-t===382?1:0}function ll(e){return ho(e)+lw(e)}function Lh(e){return ll(e+1)-ll(e)}function ow(e){let t=Lh(e);switch(t>380&&(t-=30),t){case 353:return 0;case 354:return 1;case 355:return 2}}function Zl(e,t){if(t>=6&&!Pa(e)&&t++,t===4||t===7||t===9||t===11||t===13)return 29;let n=ow(e);return t===2?n===2?30:29:t===3?n===0?29:30:t===6?Pa(e)?30:0:30}class sw{fromJulianDay(t){let n=t-Sf,a=n*Vh/rw,r=Math.floor((19*a+234)/235)+1,l=ll(r),o=Math.floor(n-l);for(;o<1;)r--,l=ll(r),o=Math.floor(n-l);let s=1,i=0;for(;i6?t.month--:!Pa(n.year)&&Pa(t.year)&&n.month>6&&t.month++)}constructor(){this.identifier="hebrew"}}const uu=1723856,Ef=1824665,cu=5500;function ol(e,t,n,a){return e+365*t+Math.floor(t/4)+30*(n-1)+a-1}function sc(e,t){let n=Math.floor(4*(t-e)/1461);t>=ol(e,n+1,1,1)&&n++;let a=1+Math.floor((t-ol(e,n,1,1))/30),r=t+1-ol(e,n,a,1);return[n,a,r]}function jh(e){return Math.floor(e%4/3)}function Uh(e,t){return t%13!==0?30:jh(e)+5}class ic{fromJulianDay(t){let[n,a,r]=sc(uu,t),l="AM";return n<=0&&(l="AA",n+=cu),new tt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="AA"&&(n-=cu),ol(uu,n,t.month,t.day)}getDaysInMonth(t){return Uh(t.year,t.month)}getMonthsInYear(){return 13}getDaysInYear(t){return 365+jh(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 iw extends ic{fromJulianDay(t){let[n,a,r]=sc(uu,t);return n+=cu,new tt(this,"AA",n,a,r)}getEras(){return["AA"]}getYearsInEra(){return 9999}constructor(...t){super(...t),this.identifier="ethioaa"}}class uw extends ic{fromJulianDay(t){let[n,a,r]=sc(Ef,t),l="CE";return n<=0&&(l="BCE",n=1-n),new tt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="BCE"&&(n=1-n),ol(Ef,n,t.month,t.day)}getDaysInMonth(t){let n=t.year;return t.era==="BCE"&&(n=1-n),Uh(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 cw(e){switch(e){case"buddhist":return new Gx;case"ethiopic":return new ic;case"ethioaa":return new iw;case"coptic":return new uw;case"hebrew":return new sw;case"indian":return new Zx;case"islamic-civil":return new oc;case"islamic-tbla":return new Xx;case"islamic-umalqura":return new tw;case"japanese":return new Wx;case"persian":return new Jx;case"roc":return new Yx;default:return new nn}}let pi=new Map;class Yt{constructor(t,n={}){this.formatter=zh(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 pw()&&(this.resolvedHourCycle||(this.resolvedHourCycle=vw(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 dw={true:{ja:"h11"},false:{}};function zh(e,t={}){if(typeof t.hour12=="boolean"&&fw()){t={...t};let r=dw[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 zt(e,t=rn()){return yl(e)?e.toDate():e.toDate(t)}function hw(e){return e instanceof va}function yl(e){return e instanceof zn}function du(e){return hw(e)||yl(e)}function da(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 ia(e,t){return e.compare(t)<0}function mi(e,t){return e.compare(t)>0}function mw(e,t,n){const a=xs(e,n,"sun");return t>a?e.subtract({days:a+7-t}):t===a?e:e.subtract({days:a-t})}function yw(e,t,n){const a=xs(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 uc(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(),s=l.getMonth()+1,i=l.getDate(),c=["hour","minute","second"],d=new Yt(r),f=cw(d.resolvedOptions().calendar);return c.includes(a??"day")?Mt(new va(o,s,i,0,0,0),f):Mt(new tt(o,s,i),f)}function gw(e){const{defaultValue:t,defaultPlaceholder:n}=e;return t?t.copy():n?n.copy():new hn(0,0,0)}function bw(e,t){const n=[];for(let a=0;at.set({day:y+1})),s=ru(t),i=uf(t),c=mw(s,n,r),d=yw(i,n,r),f=Af(c.subtract({days:1}),s),p=Af(i,d.add({days:1})),v=f.length+o.length+p.length;if(a&&v<42){const _=42-v;let y=p.at(-1);y||(y=uf(t));const x=Array.from({length:_},(S,A)=>{const L=A+1;return y.add({days:L})});p.push(...x)}const m=f.concat(o,p),g=bw(m,7);return{value:t,cells:m,rows:g}}function Ca(e){const{numberOfMonths:t,dateObj:n,...a}=e,r=[];if(!t||t===1)return r.push(gi({...a,dateObj:n})),r;r.push(gi({...a,dateObj:n}));for(let l=1;l({label:i(zt(_.set({month:x}))),value:x}))}function d(_,y={}){return new Yt(n.value,{...t,year:"numeric",...y}).format(_)}function f(_,y){return yl(_)?new Yt(n.value,{...t,...y,timeZone:_.timeZone}).formatToParts(zt(_)):new Yt(n.value,{...t,...y}).formatToParts(zt(_))}function p(_,y="narrow"){return new Yt(n.value,{...t,weekday:y}).format(_)}function v(_){const x=new Yt(n.value,{...t,hour:"numeric",minute:"numeric"}).formatToParts(_).find(S=>S.type==="dayPeriod")?.value;return x==="PM"||x==="pm"||x==="p.m."?"PM":"AM"}const m={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"};function g(_,y,x={}){const S={...m,...x},L=f(_,S).find(J=>J.type===y);return L?L.value:""}return{setLocale:r,getLocale:a,fullMonth:i,fullYear:d,fullMonthAndYear:s,toParts:f,custom:l,part:g,dayPeriod:v,selectedDate:o,dayOfWeek:p,getMonths:c}}function Na(e){const t=bs({dir:M("ltr")});return w(()=>e?.value||t.dir?.value||"ltr")}function Pr(e){const t=$n(),n=t?.type.emits,a={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(r=>{a[Zr(ht(r))]=(...l)=>e(r,...l)}),a}let bi=0;function Yh(){Xt(e=>{if(!Wn)return;const t=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",t[0]??Df()),document.body.insertAdjacentElement("beforeend",t[1]??Df()),bi++,e(()=>{bi===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(n=>n.remove()),bi--})})}function Df(){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 Ke(){const e=$n(),t=M(),n=w(()=>a());Tu(()=>{n.value!==a()&&Fy(t)});function a(){return t.value&&"$el"in t.value&&["#text","#comment"].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:Dr(t)}const r=Object.assign({},e.exposed),l={};for(const s in e.props)Object.defineProperty(l,s,{enumerable:!0,configurable:!0,get:()=>e.props[s]});if(Object.keys(r).length>0)for(const s in r)Object.defineProperty(l,s,{enumerable:!0,configurable:!0,get:()=>r[s]});Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=l;function o(s){if(t.value=s,!!s&&(Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>s instanceof Element?s:s.$el}),!(s instanceof Element)&&!Object.hasOwn(s,"$el"))){const i=s.$.exposed,c=Object.assign({},l);for(const d in i)Object.defineProperty(c,d,{enumerable:!0,configurable:!0,get:()=>i[d]});e.exposed=c}}return{forwardRef:o,currentRef:t,currentElement:n}}function Jh(e){const t=$n(),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=Uy(e);return w(()=>{const r={},l=t?.vnode.props??{};return Object.keys(l).forEach(o=>{r[ht(o)]=l[o]}),Object.keys({...n,...r}).reduce((o,s)=>(a.value[s]!==void 0&&(o[s]=a.value[s]),o),{})})}function Gn(e,t){const n=Jh(e),a=t?Pr(t):{};return w(()=>({...n.value,...a}))}var ww=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ya=new WeakMap,Ql=new WeakMap,Xl={},_i=0,Zh=function(e){return e&&(e.host||Zh(e.parentNode))},kw=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=Zh(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})},$w=function(e,t,n,a){var r=kw(t,Array.isArray(e)?e:[e]);Xl[n]||(Xl[n]=new WeakMap);var l=Xl[n],o=[],s=new Set,i=new Set(r),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};r.forEach(c);var d=function(f){!f||i.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(a),m=v!==null&&v!=="false",g=(Ya.get(p)||0)+1,_=(l.get(p)||0)+1;Ya.set(p,g),l.set(p,_),o.push(p),g===1&&m&&Ql.set(p,!0),_===1&&p.setAttribute(n,"true"),m||p.setAttribute(a,"true")}catch(y){console.error("aria-hidden: cannot operate on ",p,y)}})};return d(t),s.clear(),_i++,function(){o.forEach(function(f){var p=Ya.get(f)-1,v=l.get(f)-1;Ya.set(f,p),l.set(f,v),p||(Ql.has(f)||f.removeAttribute(a),Ql.delete(f)),v||f.removeAttribute(n)}),_i--,_i||(Ya=new WeakMap,Ya=new WeakMap,Ql=new WeakMap,Xl={})}},Cw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),r=ww(e);return r?(a.push.apply(a,Array.from(r.querySelectorAll("[aria-live], script"))),$w(a,r,n,"aria-hidden")):function(){return null}};function dc(e){let t;Be(()=>Dr(e),n=>{let a=!1;try{a=!!n?.closest("[popover]:not(:popover-open)")}catch{}n&&!a?t=Cw(n):t&&t()}),Er(()=>{t&&t()})}function $r(e,t="reka"){let n;const a=bs({useId:void 0});return a.useId?n=a.useId():n=ig?.(),t?`${t}-${n}`:n}function Or(){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 $s(e){const t=bs({locale:M("en")});return w(()=>e?.value||t.locale?.value||"en")}function Sw(e){const t=M(),n=w(()=>t.value?.width??0),a=w(()=>t.value?.height??0);return _t(()=>{const r=Dr(e);if(r){t.value={width:r.offsetWidth,height:r.offsetHeight};const l=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let i,c;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;i=f.inlineSize,c=f.blockSize}else i=r.offsetWidth,c=r.offsetHeight;t.value={width:i,height:c}});return l.observe(r,{box:"border-box"}),()=>l.unobserve(r)}else t.value=void 0}),{width:n,height:a}}function Ew(e,t){const n=M(e);function a(l){return t[n.value][l]??n.value}return{state:n,dispatch:l=>{n.value=a(l)}}}function Aw(e){const t=fx("",1e3);return{search:t,handleTypeaheadSearch:(r,l)=>{t.value=t.value+r;{const o=ft(),s=l.map(p=>({...p,textValue:p.value?.textValue??p.ref.textContent?.trim()??""})),i=s.find(p=>p.ref===o),c=s.map(p=>p.textValue),d=Pw(c,t.value,i?.textValue),f=s.find(p=>p.textValue===d);return f&&f.ref.focus(),f?.ref}},resetTypeahead:()=>{t.value=""}}}function Dw(e,t){return e.map((n,a)=>e[(t+a)%e.length])}function Pw(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=Dw(e,Math.max(l,0));r.length===1&&(o=o.filter(c=>c!==n));const i=o.find(c=>c.toLowerCase().startsWith(r.toLowerCase()));return i!==n?i:void 0}function Ow(e,t){const n=M({}),a=M("none"),r=M(e),l=e.value?"mounted":"unmounted";let o;const s=t.value?.ownerDocument.defaultView??Yu,{state:i,dispatch:c}=Ew(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),d=_=>{if(Wn){const y=new CustomEvent(_,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(y)}};Be(e,async(_,y)=>{const x=y!==_;if(await ze(),x){const S=a.value,A=eo(t.value);_?(c("MOUNT"),d("enter"),A==="none"&&d("after-enter")):A==="none"||A==="undefined"||n.value?.display==="none"?(c("UNMOUNT"),d("leave"),d("after-leave")):y&&S!==A?(c("ANIMATION_OUT"),d("leave")):(c("UNMOUNT"),d("after-leave"))}},{immediate:!0});const f=_=>{const y=eo(t.value),x=y.includes(CSS.escape(_.animationName)),S=i.value==="mounted"?"enter":"leave";if(_.target===t.value&&x&&(d(`after-${S}`),c("ANIMATION_END"),!r.value)){const A=t.value.style.animationFillMode;t.value.style.animationFillMode="forwards",o=s?.setTimeout(()=>{t.value?.style.animationFillMode==="forwards"&&(t.value.style.animationFillMode=A)})}_.target===t.value&&y==="none"&&c("ANIMATION_END")},p=_=>{_.target===t.value&&(a.value=eo(t.value))},v=Be(t,(_,y)=>{_?(n.value=getComputedStyle(_),_.addEventListener("animationstart",p),_.addEventListener("animationcancel",f),_.addEventListener("animationend",f)):(c("ANIMATION_END"),o!==void 0&&s?.clearTimeout(o),y?.removeEventListener("animationstart",p),y?.removeEventListener("animationcancel",f),y?.removeEventListener("animationend",f))},{immediate:!0}),m=Be(i,()=>{const _=eo(t.value);a.value=i.value==="mounted"?_:"none"});return Er(()=>{v(),m()}),{isPresent:w(()=>["mounted","unmountSuspended"].includes(i.value))}}function eo(e){return e&&getComputedStyle(e).animationName||"none"}var Cs=ee({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){const{present:a,forceMount:r}=Lt(e),l=M(),{isPresent:o}=Ow(a,l);n({present:o});let s=t.default({present:o.value});s=Ju(s||[]);const i=$n();if(s&&s?.length>1){const c=i?.parent?.type.name?`<${i.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?Kt(t.default({present:o.value})[0],{ref:c=>{const d=Dr(c);return typeof d?.hasAttribute>"u"||(d?.hasAttribute("data-reka-popper-content-wrapper")?l.value=d.firstElementChild:l.value=d),d}}):null}});const fu=ee({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;const a=Ju(n.default()),r=a.findIndex(i=>i.type!==en);if(r===-1)return a;const l=a[r];delete l.props?.ref;const o=l.props?Le(t,l.props):t,s=fa({...l,props:{}},o);return a.length===1?s:(a[r]=s,a)}}}),Mw=["area","img","input"],Ye=ee({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"&&Mw.includes(a)?()=>Kt(a,t):a!=="template"?()=>Kt(e.as,t,{default:n.default}):()=>Kt(fu,t,{default:n.default})}});function Cr(){const e=M(),t=w(()=>["#text","#comment"].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Dr(e));return{primitiveElement:e,currentElement:t}}const[Yn,Tw]=xt("DialogRoot");var Rw=ee({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=bt(n,"open",t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=M(),o=M(),{modal:s}=Lt(n);return Tw({open:r,modal:s,openModal:()=>{r.value=!0},onOpenChange:i=>{r.value=i},onOpenToggle:()=>{r.value=!r.value},contentId:"",titleId:"",descriptionId:"",triggerElement:l,contentElement:o}),(i,c)=>he(i.$slots,"default",{open:u(r),close:()=>r.value=!1})}}),Rl=Rw,qw=ee({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;Ke();const n=Yn();return(a,r)=>(h(),U(u(Ye),Le(t,{type:a.as==="button"?"button":void 0,onClick:r[0]||(r[0]=l=>u(n).onOpenChange(!1))}),{default:B(()=>[he(a.$slots,"default")]),_:3},16,["type"]))}}),Sr=qw;const Iw="dismissableLayer.pointerDownOutside",Fw="dismissableLayer.focusOutside";function Qh(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 Xt(o=>{if(!Wn||!Tt(n))return;const s=async c=>{const d=c.target;if(!(!t?.value||!d)){if(Qh(t.value,d)){r.value=!1;return}if(c.target&&!r.value){let v=function(){fh(Iw,e,p)};var f=v;const p={originalEvent:c};c.pointerType==="touch"?(a.removeEventListener("click",l.value),l.value=v,a.addEventListener("click",l.value,{once:!0})):v()}else a.removeEventListener("click",l.value);r.value=!1}},i=window.setTimeout(()=>{a.addEventListener("pointerdown",s)},0);o(()=>{window.clearTimeout(i),a.removeEventListener("pointerdown",s),a.removeEventListener("click",l.value)})}),{onPointerDownCapture:()=>{Tt(n)&&(r.value=!0)}}}function Nw(e,t,n=!0){const a=t?.value?.ownerDocument??globalThis?.document,r=M(!1);return Xt(l=>{if(!Wn||!Tt(n))return;const o=async s=>{if(!t?.value)return;await ze(),await ze();const i=s.target;!t.value||!i||Qh(t.value,i)||s.target&&!r.value&&fh(Fw,e,{originalEvent:s})};a.addEventListener("focusin",o),l(()=>a.removeEventListener("focusin",o))}),{onFocusCapture:()=>{Tt(n)&&(r.value=!0)},onBlurCapture:()=>{Tt(n)&&(r.value=!1)}}}const It=Zt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set});var Vw=ee({__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}=Ke(),o=w(()=>l.value?.ownerDocument??globalThis.document),s=w(()=>It.layersRoot),i=w(()=>l.value?Array.from(s.value).indexOf(l.value):-1),c=w(()=>It.layersWithOutsidePointerEventsDisabled.size>0),d=w(()=>{const v=Array.from(s.value),[m]=[...It.layersWithOutsidePointerEventsDisabled].slice(-1),g=v.indexOf(m);return i.value>=g}),f=Bw(async v=>{const m=[...It.branches].some(g=>g?.contains(v.target));!d.value||m||(a("pointerDownOutside",v),a("interactOutside",v),await ze(),v.defaultPrevented||a("dismiss"))},l),p=Nw(v=>{[...It.branches].some(g=>g?.contains(v.target))||(a("focusOutside",v),a("interactOutside",v),v.defaultPrevented||a("dismiss"))},l);return yx("Escape",v=>{i.value===s.value.size-1&&(a("escapeKeyDown",v),v.defaultPrevented||a("dismiss"))}),Be([l,()=>n.disableOutsidePointerEvents],([v,m],g,_)=>{v&&(m&&(It.layersWithOutsidePointerEventsDisabled.size===0&&(It.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents="none"),It.layersWithOutsidePointerEventsDisabled.add(v),_(()=>{It.layersWithOutsidePointerEventsDisabled.delete(v),It.layersWithOutsidePointerEventsDisabled.size===0&&!vn(It.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=It.originalBodyPointerEvents)})),s.value.add(v))},{immediate:!0}),Xt(v=>{v(()=>{l.value&&(s.value.delete(l.value),It.layersWithOutsidePointerEventsDisabled.delete(l.value))})}),(v,m)=>(h(),U(u(Ye),{ref:u(r),"as-child":v.asChild,as:v.as,"data-dismissable-layer":"",style:Fn({pointerEvents:c.value?d.value?"auto":"none":void 0}),onFocusCapture:u(p).onFocusCapture,onBlurCapture:u(p).onBlurCapture,onPointerdownCapture:u(f).onPointerDownCapture},{default:B(()=>[he(v.$slots,"default")]),_:3},8,["as-child","as","style","onFocusCapture","onBlurCapture","onPointerdownCapture"]))}}),fc=Vw;const Lw=ax(()=>M([]));function jw(){const e=Lw();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=Pf(e.value,t),e.value.unshift(t)},remove(t){e.value=Pf(e.value,t),e.value[0]?.resume()}}}function Pf(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}const xi="focusScope.autoFocusOnMount",wi="focusScope.autoFocusOnUnmount",Of={bubbles:!1,cancelable:!0};function Uw(e,{select:t=!1}={}){const n=ft();for(const a of e)if(aa(a,{select:t}),ft()!==n)return!0}function zw(e){const t=Xh(e),n=Mf(t,e),a=Mf(t.reverse(),e);return[n,a]}function Xh(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 Mf(e,t){for(const n of e)if(!Hw(n,{upTo:t}))return n}function Hw(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 Kw(e){return e instanceof HTMLInputElement&&"select"in e}function aa(e,{select:t=!1}={}){if(e&&e.focus){const n=ft();e.focus({preventScroll:!0}),e!==n&&Kw(e)&&t&&e.select()}}var Ww=ee({__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}=Ke(),o=M(null),s=jw(),i=Zt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Xt(d=>{if(!Wn)return;const f=l.value;if(!n.trapped)return;function p(_){if(i.paused||!f)return;const y=_.target;f.contains(y)?o.value=y:aa(o.value,{select:!0})}function v(_){if(i.paused||!f)return;const y=_.relatedTarget;y!==null&&(f.contains(y)||aa(o.value,{select:!0}))}function m(_){const y=o.value;if(y===null||!_.some(A=>A.removedNodes.length>0))return;f.contains(y)||aa(f)}document.addEventListener("focusin",p),document.addEventListener("focusout",v);const g=new MutationObserver(m);f&&g.observe(f,{childList:!0,subtree:!0}),d(()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",v),g.disconnect()})}),Xt(async d=>{const f=l.value;if(await ze(),!f)return;s.add(i);const p=ft();if(!f.contains(p)){const m=new CustomEvent(xi,Of);f.addEventListener(xi,g=>a("mountAutoFocus",g)),f.dispatchEvent(m),m.defaultPrevented||(Uw(Xh(f),{select:!0}),ft()===p&&aa(f))}d(()=>{f.removeEventListener(xi,_=>a("mountAutoFocus",_));const m=new CustomEvent(wi,Of),g=_=>{a("unmountAutoFocus",_)};f.addEventListener(wi,g),f.dispatchEvent(m),f.setAttribute("data-focus-scope-unmounting",""),setTimeout(()=>{m.defaultPrevented||aa(p??document.body,{select:!0}),f.removeEventListener(wi,g),s.remove(i),f.removeAttribute("data-focus-scope-unmounting")},0)})});function c(d){if(!n.loop&&!n.trapped||i.paused)return;const f=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,p=ft();if(f&&p){const v=d.currentTarget,[m,g]=zw(v);m&&g?!d.shiftKey&&p===g?(d.preventDefault(),n.loop&&aa(m,{select:!0})):d.shiftKey&&p===m&&(d.preventDefault(),n.loop&&aa(g,{select:!0})):p===v&&d.preventDefault()}}return(d,f)=>(h(),U(u(Ye),{ref_key:"currentRef",ref:r,tabindex:"-1","as-child":d.asChild,as:d.as,onKeydown:c},{default:B(()=>[he(d.$slots,"default")]),_:3},8,["as-child","as"]))}}),pc=Ww;const Gw="menu.itemSelect",pu=["Enter"," "],Yw=["ArrowDown","PageUp","Home"],em=["ArrowUp","PageDown","End"],Jw=[...Yw,...em];[...pu],[...pu];function tm(e){return e?"open":"closed"}function Zw(e){const t=ft();for(const n of e)if(n===t||(n.focus(),ft()!==t))return}function Qw(e,t){const{x:n,y:a}=e;let r=!1;for(let l=0,o=t.length-1;la!=d>a&&n<(c-s)*(a-i)/(d-i)+s&&(r=!r)}return r}function Xw(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Qw(n,t)}function Io(e){return e.pointerType==="mouse"}var ek=ee({__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=Yn(),{forwardRef:l,currentElement:o}=Ke();return r.titleId||=$r(void 0,"reka-dialog-title"),r.descriptionId||=$r(void 0,"reka-dialog-description"),_t(()=>{r.contentElement=o,ft()!==document.body&&(r.triggerElement.value=ft())}),(s,i)=>(h(),U(u(pc),{"as-child":"",loop:"",trapped:n.trapFocus,onMountAutoFocus:i[5]||(i[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:i[6]||(i[6]=c=>a("closeAutoFocus",c))},{default:B(()=>[H(u(fc),Le({id:u(r).contentId,ref:u(l),as:s.as,"as-child":s.asChild,"disable-outside-pointer-events":s.disableOutsidePointerEvents,role:"dialog","aria-describedby":u(r).descriptionId,"aria-labelledby":u(r).titleId,"data-state":u(tm)(u(r).open.value)},s.$attrs,{onDismiss:i[0]||(i[0]=c=>u(r).onOpenChange(!1)),onEscapeKeyDown:i[1]||(i[1]=c=>a("escapeKeyDown",c)),onFocusOutside:i[2]||(i[2]=c=>a("focusOutside",c)),onInteractOutside:i[3]||(i[3]=c=>a("interactOutside",c)),onPointerDownOutside:i[4]||(i[4]=c=>a("pointerDownOutside",c))}),{default:B(()=>[he(s.$slots,"default")]),_:3},16,["id","as","as-child","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped"]))}}),nm=ek,tk=ee({__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=Yn(),l=Pr(a),{forwardRef:o,currentElement:s}=Ke();return dc(s),(i,c)=>(h(),U(nm,Le({...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,p=f.button===0&&f.ctrlKey===!0;(f.button===2||p)&&d.preventDefault()}),onFocusOutside:c[2]||(c[2]=d=>{d.preventDefault()})}),{default:B(()=>[he(i.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),nk=tk,ak=ee({__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=Pr(t);Ke();const l=Yn(),o=M(!1),s=M(!1);return(i,c)=>(h(),U(nm,Le({...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,s.value=!1}),onInteractOutside:c[1]||(c[1]=d=>{d.defaultPrevented||(o.value=!0,d.detail.originalEvent.type==="pointerdown"&&(s.value=!0));const f=d.target;u(l).triggerElement.value?.contains(f)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&s.value&&d.preventDefault()})}),{default:B(()=>[he(i.$slots,"default")]),_:3},16))}}),rk=ak,lk=ee({__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=Yn(),l=Pr(a),{forwardRef:o}=Ke();return(s,i)=>(h(),U(u(Cs),{present:s.forceMount||u(r).open.value},{default:B(()=>[u(r).modal.value?(h(),U(nk,Le({key:0,ref:u(o)},{...n,...u(l),...s.$attrs}),{default:B(()=>[he(s.$slots,"default")]),_:3},16)):(h(),U(rk,Le({key:1,ref:u(o)},{...n,...u(l),...s.$attrs}),{default:B(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),ql=lk,ok=ee({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;Ke();const n=Yn();return(a,r)=>(h(),U(u(Ye),Le(t,{id:u(n).descriptionId}),{default:B(()=>[he(a.$slots,"default")]),_:3},16,["id"]))}}),bl=ok,sk=ee({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Yn();return Zu(!0),Ke(),(n,a)=>(h(),U(u(Ye),{as:n.as,"as-child":n.asChild,"data-state":u(t).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:a[0]||(a[0]=pt(()=>{},["left","self","prevent"]))},{default:B(()=>[he(n.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),ik=sk,uk=ee({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Yn(),{forwardRef:n}=Ke();return(a,r)=>u(t)?.modal.value?(h(),U(u(Cs),{key:0,present:a.forceMount||u(t).open.value},{default:B(()=>[H(ik,Le(a.$attrs,{ref:u(n),as:a.as,"as-child":a.asChild}),{default:B(()=>[he(a.$slots,"default")]),_:3},16,["as","as-child"])]),_:3},8,["present"])):ae("v-if",!0)}}),Il=uk,ck=ee({__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=hx();return(n,a)=>u(t)||n.forceMount?(h(),U(rg,{key:0,to:n.to,disabled:n.disabled,defer:n.defer},[he(n.$slots,"default")],8,["to","disabled","defer"])):ae("v-if",!0)}}),Ss=ck,dk=ee({__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)=>(h(),U(u(Ss),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),Es=dk,fk=ee({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e,n=Yn();return Ke(),(a,r)=>(h(),U(u(Ye),Le(t,{id:u(n).titleId}),{default:B(()=>[he(a.$slots,"default")]),_:3},16,["id"]))}}),Fl=fk;const[pk,vk]=xt("AlertDialogContent");var hk=ee({__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=Pr(t);Ke();const l=M();return vk({onCancelElementChange:o=>{l.value=o}}),(o,s)=>(h(),U(u(ql),Le({...n,...u(r)},{role:"alertdialog",onPointerDownOutside:s[0]||(s[0]=pt(()=>{},["prevent"])),onInteractOutside:s[1]||(s[1]=pt(()=>{},["prevent"])),onOpenAutoFocus:s[2]||(s[2]=()=>{ze(()=>{l.value?.focus({preventScroll:!0})})})}),{default:B(()=>[he(o.$slots,"default")]),_:3},16))}}),mk=hk,yk=ee({__name:"AlertDialogCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=pk(),{forwardRef:a,currentElement:r}=Ke();return _t(()=>{n.onCancelElementChange(r.value)}),(l,o)=>(h(),U(u(Sr),Le(t,{ref:u(a)}),{default:B(()=>[he(l.$slots,"default")]),_:3},16))}}),gk=yk,bk=ee({__name:"AlertDialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;return Ke(),(n,a)=>(h(),U(u(bl),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),_k=bk,xk=ee({__name:"AlertDialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return Ke(),(n,a)=>(h(),U(u(Il),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),wk=xk,kk=ee({__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)=>(h(),U(u(Ss),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),$k=kk,Ck=ee({__name:"AlertDialogRoot",props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1}},emits:["update:open"],setup(e,{emit:t}){const r=Gn(e,t);return Ke(),(l,o)=>(h(),U(u(Rl),Le(u(r),{modal:!0}),{default:B(s=>[he(l.$slots,"default",He(Ge(s)))]),_:3},16))}}),Sk=Ck,Ek=ee({__name:"AlertDialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e;return Ke(),(n,a)=>(h(),U(u(Fl),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),Ak=Ek;const Tf="data-reka-collection-item";function am(e={}){const{key:t="",isProvider:n=!1}=e,a=`${t}CollectionProvider`;let r;n?(r={collectionRef:M(),itemMap:M(new Map)},Dt(a,r)):r=st(a);const l=(d=!1)=>{const f=r.collectionRef.value;if(!f)return[];const p=Array.from(f.querySelectorAll(`[${Tf}]`)),m=Array.from(r.itemMap.value.values()).sort((g,_)=>p.indexOf(g.ref)-p.indexOf(_.ref));return d?m:m.filter(g=>g.ref.dataset.disabled!=="")},o=ee({name:"CollectionSlot",inheritAttrs:!1,setup(d,{slots:f,attrs:p}){const{primitiveElement:v,currentElement:m}=Cr();return Be(m,()=>{r.collectionRef.value=m.value}),()=>Kt(fu,{ref:v,...p},f)}}),s=ee({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(d,{slots:f,attrs:p}){const{primitiveElement:v,currentElement:m}=Cr();return Xt(g=>{if(m.value){const _=yo(m.value);r.itemMap.value.set(_,{ref:m.value,value:d.value}),g(()=>r.itemMap.value.delete(_))}}),()=>Kt(fu,{...p,[Tf]:"",ref:v},f)}}),i=w(()=>Array.from(r.itemMap.value.values())),c=w(()=>r.itemMap.value.size);return{getItems:l,reactiveItems:i,itemMapSize:c,CollectionSlot:o,CollectionItem:s}}var Dk=ee({__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)=>(h(),U(u(Ye),{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(()=>[he(t.$slots,"default")]),_:3},8,["as","as-child","aria-hidden","data-hidden","tabindex"]))}}),rm=Dk;const Pk="rovingFocusGroup.onEntryFocus",Ok={bubbles:!1,cancelable:!0};function Mk(e,t=!1){const n=ft();for(const a of e)if(a===n||(a.focus({preventScroll:t}),ft()!==n))return}const[lm,Tk]=xt("PopperRoot");var Rk=ee({inheritAttrs:!1,__name:"PopperRoot",setup(e){const t=M();return Tk({anchor:t,onAnchorChange:n=>t.value=n}),(n,a)=>he(n.$slots,"default")}}),om=Rk,qk=ee({__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}=Ke(),r=lm();return Up(()=>{r.onAnchorChange(t.reference??a.value)}),(l,o)=>(h(),U(u(Ye),{ref:u(n),as:l.as,"as-child":l.asChild},{default:B(()=>[he(l.$slots,"default")]),_:3},8,["as","as-child"]))}}),sm=qk;function Ik(e){return e!==null}function Fk(e){return{name:"transformOrigin",options:e,fn(t){const{placement:n,rects:a,middlewareData:r}=t,o=r.arrow?.centerOffset!==0,s=o?0:e.arrowWidth,i=o?0:e.arrowHeight,[c,d]=vu(n),f={start:"0%",center:"50%",end:"100%"}[d],p=(r.arrow?.x??0)+s/2,v=(r.arrow?.y??0)+i/2;let m="",g="";return c==="bottom"?(m=o?f:`${p}px`,g=`${-i}px`):c==="top"?(m=o?f:`${p}px`,g=`${a.floating.height+i}px`):c==="right"?(m=`${-i}px`,g=o?f:`${v}px`):c==="left"&&(m=`${a.floating.width+i}px`,g=o?f:`${v}px`),{data:{x:m,y:g}}}}}function vu(e){const[t,n="center"]=e.split("-");return[t,n]}const Bk=["top","right","bottom","left"],ha=Math.min,Bn=Math.max,Fo=Math.round,to=Math.floor,Nn=e=>({x:e,y:e}),Nk={left:"right",right:"left",bottom:"top",top:"bottom"};function im(e,t,n){return Bn(e,ha(t,n))}function Hn(e,t){return typeof e=="function"?e(t):e}function ma(e){return e.split("-")[0]}function Mr(e){return e.split("-")[1]}function vc(e){return e==="x"?"y":"x"}function hc(e){return e==="y"?"height":"width"}function mn(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function mc(e){return vc(mn(e))}function Vk(e,t,n){n===void 0&&(n=!1);const a=Mr(e),r=mc(e),l=hc(r);let o=r==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(o=Bo(o)),[o,Bo(o)]}function Lk(e){const t=Bo(e);return[hu(e),t,hu(t)]}function hu(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Rf=["left","right"],qf=["right","left"],jk=["top","bottom"],Uk=["bottom","top"];function zk(e,t,n){switch(e){case"top":case"bottom":return n?t?qf:Rf:t?Rf:qf;case"left":case"right":return t?jk:Uk;default:return[]}}function Hk(e,t,n,a){const r=Mr(e);let l=zk(ma(e),n==="start",a);return r&&(l=l.map(o=>o+"-"+r),t&&(l=l.concat(l.map(hu)))),l}function Bo(e){const t=ma(e);return Nk[t]+e.slice(t.length)}function Kk(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 um(e){return typeof e!="number"?Kk(e):{top:e,right:e,bottom:e,left:e}}function No(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 If(e,t,n){let{reference:a,floating:r}=e;const l=mn(t),o=mc(t),s=hc(o),i=ma(t),c=l==="y",d=a.x+a.width/2-r.width/2,f=a.y+a.height/2-r.height/2,p=a[s]/2-r[s]/2;let v;switch(i){case"top":v={x:d,y:a.y-r.height};break;case"bottom":v={x:d,y:a.y+a.height};break;case"right":v={x:a.x+a.width,y:f};break;case"left":v={x:a.x-r.width,y:f};break;default:v={x:a.x,y:a.y}}const m=Mr(t);return m&&(v[o]+=p*(m==="end"?1:-1)*(n&&c?-1:1)),v}async function Wk(e,t){var n;t===void 0&&(t={});const{x:a,y:r,platform:l,rects:o,elements:s,strategy:i}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:p=!1,padding:v=0}=Hn(t,e),m=um(v),_=s[p?f==="floating"?"reference":"floating":f],y=No(await l.getClippingRect({element:(n=await(l.isElement==null?void 0:l.isElement(_)))==null||n?_:_.contextElement||await(l.getDocumentElement==null?void 0:l.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:i})),x=f==="floating"?{x:a,y:r,width:o.floating.width,height:o.floating.height}:o.reference,S=await(l.getOffsetParent==null?void 0:l.getOffsetParent(s.floating)),A=await(l.isElement==null?void 0:l.isElement(S))&&await(l.getScale==null?void 0:l.getScale(S))||{x:1,y:1},L=No(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:x,offsetParent:S,strategy:i}):x);return{top:(y.top-L.top+m.top)/A.y,bottom:(L.bottom-y.bottom+m.bottom)/A.y,left:(y.left-L.left+m.left)/A.x,right:(L.right-y.right+m.right)/A.x}}const Gk=50,Yk=async(e,t,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:l=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Wk},i=await(o.isRTL==null?void 0:o.isRTL(t));let c=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:f}=If(c,a,i),p=a,v=0;const m={};for(let g=0;g({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:r,rects:l,platform:o,elements:s,middlewareData:i}=t,{element:c,padding:d=0}=Hn(e,t)||{};if(c==null)return{};const f=um(d),p={x:n,y:a},v=mc(r),m=hc(v),g=await o.getDimensions(c),_=v==="y",y=_?"top":"left",x=_?"bottom":"right",S=_?"clientHeight":"clientWidth",A=l.reference[m]+l.reference[v]-p[v]-l.floating[m],L=p[v]-l.reference[v],J=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let z=J?J[S]:0;(!z||!await(o.isElement==null?void 0:o.isElement(J)))&&(z=s.floating[S]||l.floating[m]);const K=A/2-L/2,k=z/2-g[m]/2-1,F=ha(f[y],k),G=ha(f[x],k),D=z-g[m]-G,V=z/2-g[m]/2+K,W=im(F,V,D),N=!i.arrow&&Mr(r)!=null&&V!==W&&l.reference[m]/2-(VW<=0)){var G,D;const W=(((G=l.flip)==null?void 0:G.index)||0)+1,N=z[W];if(N&&(!(f==="alignment"?x!==mn(N):!1)||F.every(ie=>mn(ie.placement)===x?ie.overflows[0]>0:!0)))return{data:{index:W,overflows:F},reset:{placement:N}};let Q=(D=F.filter(ne=>ne.overflows[0]<=0).sort((ne,ie)=>ne.overflows[1]-ie.overflows[1])[0])==null?void 0:D.placement;if(!Q)switch(v){case"bestFit":{var V;const ne=(V=F.filter(ie=>{if(J){const te=mn(ie.placement);return te===x||te==="y"}return!0}).map(ie=>[ie.placement,ie.overflows.filter(te=>te>0).reduce((te,oe)=>te+oe,0)]).sort((ie,te)=>ie[1]-te[1])[0])==null?void 0:V[0];ne&&(Q=ne);break}case"initialPlacement":Q=s;break}if(r!==Q)return{reset:{placement:Q}}}return{}}}};function Ff(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Bf(e){return Bk.some(t=>e[t]>=0)}const Qk=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:a}=t,{strategy:r="referenceHidden",...l}=Hn(e,t);switch(r){case"referenceHidden":{const o=await a.detectOverflow(t,{...l,elementContext:"reference"}),s=Ff(o,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Bf(s)}}}case"escaped":{const o=await a.detectOverflow(t,{...l,altBoundary:!0}),s=Ff(o,n.floating);return{data:{escapedOffsets:s,escaped:Bf(s)}}}default:return{}}}}},cm=new Set(["left","top"]);async function Xk(e,t){const{placement:n,platform:a,elements:r}=e,l=await(a.isRTL==null?void 0:a.isRTL(r.floating)),o=ma(n),s=Mr(n),i=mn(n)==="y",c=cm.has(o)?-1:1,d=l&&i?-1:1,f=Hn(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:m}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof m=="number"&&(v=s==="end"?m*-1:m),i?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const e$=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:s}=t,i=await Xk(t,e);return o===((n=s.offset)==null?void 0:n.placement)&&(a=s.arrow)!=null&&a.alignmentOffset?{}:{x:r+i.x,y:l+i.y,data:{...i,placement:o}}}}},t$=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:s=!1,limiter:i={fn:x=>{let{x:S,y:A}=x;return{x:S,y:A}}},...c}=Hn(e,t),d={x:n,y:a},f=await l.detectOverflow(t,c),p=mn(r),v=vc(p);let m=d[v],g=d[p];const _=(x,S)=>im(S+f[x==="y"?"top":"left"],S,S-f[x==="y"?"bottom":"right"]);o&&(m=_(v,m)),s&&(g=_(p,g));const y=i.fn({...t,[v]:m,[p]:g});return{...y,data:{x:y.x-n,y:y.y-a,enabled:{[v]:o,[p]:s}}}}}},n$=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,a;const{x:r,y:l,placement:o,rects:s,middlewareData:i}=t,{offset:c=0,mainAxis:d=!0,crossAxis:f=!0}=Hn(e,t),p={x:r,y:l},v=mn(o),m=vc(v);let g=p[m],_=p[v];const y=Hn(c,t),x=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:(n=y.mainAxis)!=null?n:0,crossAxis:(a=y.crossAxis)!=null?a:0};if(d){const L=m==="y"?"height":"width",J=s.reference[m]-s.floating[L]+x.mainAxis,z=s.reference[m]+s.reference[L]-x.mainAxis;gz&&(g=z)}if(f){var S,A;const L=m==="y"?"width":"height",J=cm.has(ma(o)),z=s.reference[v]-s.floating[L]+(J&&((S=i.offset)==null?void 0:S[v])||0)+(J?0:x.crossAxis),K=s.reference[v]+s.reference[L]+(J?0:((A=i.offset)==null?void 0:A[v])||0)-(J?x.crossAxis:0);_K&&(_=K)}return{[m]:g,[v]:_}}}},a$=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=()=>{},...s}=Hn(e,t),i=await r.detectOverflow(t,s),c=ma(n),d=Mr(n),f=mn(n)==="y",{width:p,height:v}=a.floating;let m,g;c==="top"||c==="bottom"?(m=c,g=d===(await(r.isRTL==null?void 0:r.isRTL(l.floating))?"start":"end")?"left":"right"):(g=c,m=d==="end"?"top":"bottom");const _=v-i.top-i.bottom,y=p-i.left-i.right,x=ha(v-i[m],_),S=ha(p-i[g],y),A=t.middlewareData.shift,L=!A;let J=x,z=S;A!=null&&A.enabled.x&&(z=y),A!=null&&A.enabled.y&&(J=_),L&&!d&&(f?z=p-2*Bn(i.left,i.right):J=v-2*Bn(i.top,i.bottom)),await o({...t,availableWidth:z,availableHeight:J});const K=await r.getDimensions(l.floating);return p!==K.width||v!==K.height?{reset:{rects:!0}}:{}}}};function As(){return typeof window<"u"}function Va(e){return yc(e)?(e.nodeName||"").toLowerCase():"#document"}function Rt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Jn(e){var t;return(t=(yc(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function yc(e){return As()?e instanceof Node||e instanceof Rt(e).Node:!1}function wn(e){return As()?e instanceof Element||e instanceof Rt(e).Element:!1}function ba(e){return As()?e instanceof HTMLElement||e instanceof Rt(e).HTMLElement:!1}function Nf(e){return!As()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Rt(e).ShadowRoot}function Ds(e){const{overflow:t,overflowX:n,overflowY:a,display:r}=kn(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&r!=="inline"&&r!=="contents"}function r$(e){return/^(table|td|th)$/.test(Va(e))}function Ps(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const l$=/transform|translate|scale|rotate|perspective|filter/,o$=/paint|layout|strict|content/,Sa=e=>!!e&&e!=="none";let ki;function gc(e){const t=wn(e)?kn(e):e;return Sa(t.transform)||Sa(t.translate)||Sa(t.scale)||Sa(t.rotate)||Sa(t.perspective)||!bc()&&(Sa(t.backdropFilter)||Sa(t.filter))||l$.test(t.willChange||"")||o$.test(t.contain||"")}function s$(e){let t=Ia(e);for(;ba(t)&&!_l(t);){if(gc(t))return t;if(Ps(t))return null;t=Ia(t)}return null}function bc(){return ki==null&&(ki=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),ki}function _l(e){return/^(html|body|#document)$/.test(Va(e))}function kn(e){return Rt(e).getComputedStyle(e)}function Os(e){return wn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ia(e){if(Va(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Nf(e)&&e.host||Jn(e);return Nf(t)?t.host:t}function dm(e){const t=Ia(e);return _l(t)?(e.ownerDocument||e).body:ba(t)&&Ds(t)?t:dm(t)}function xl(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=dm(e),l=r===((a=e.ownerDocument)==null?void 0:a.body),o=Rt(r);if(l){const s=mu(o);return t.concat(o,o.visualViewport||[],Ds(r)?r:[],s&&n?xl(s):[])}else return t.concat(r,xl(r,[],n))}function mu(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function fm(e){const t=kn(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const r=ba(e),l=r?e.offsetWidth:n,o=r?e.offsetHeight:a,s=Fo(n)!==l||Fo(a)!==o;return s&&(n=l,a=o),{width:n,height:a,$:s}}function _c(e){return wn(e)?e:e.contextElement}function vr(e){const t=_c(e);if(!ba(t))return Nn(1);const n=t.getBoundingClientRect(),{width:a,height:r,$:l}=fm(t);let o=(l?Fo(n.width):n.width)/a,s=(l?Fo(n.height):n.height)/r;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}const i$=Nn(0);function pm(e){const t=Rt(e);return!bc()||!t.visualViewport?i$:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function u$(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Rt(e)}function Fa(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),l=_c(e);let o=Nn(1);t&&(a?wn(a)&&(o=vr(a)):o=vr(e));const s=u$(l,n,a)?pm(l):Nn(0);let i=(r.left+s.x)/o.x,c=(r.top+s.y)/o.y,d=r.width/o.x,f=r.height/o.y;if(l&&a){const p=Rt(l),v=wn(a)?Rt(a):a;let m=p,g=mu(m);for(;g&&v!==m;){const _=vr(g),y=g.getBoundingClientRect(),x=kn(g),S=y.left+(g.clientLeft+parseFloat(x.paddingLeft))*_.x,A=y.top+(g.clientTop+parseFloat(x.paddingTop))*_.y;i*=_.x,c*=_.y,d*=_.x,f*=_.y,i+=S,c+=A,m=Rt(g),g=mu(m)}}return No({width:d,height:f,x:i,y:c})}function Ms(e,t){const n=Os(e).scrollLeft;return t?t.left+n:Fa(Jn(e)).left+n}function vm(e,t){const n=e.getBoundingClientRect(),a=n.left+t.scrollLeft-Ms(e,n),r=n.top+t.scrollTop;return{x:a,y:r}}function c$(e){let{elements:t,rect:n,offsetParent:a,strategy:r}=e;const l=r==="fixed",o=Jn(a),s=t?Ps(t.floating):!1;if(a===o||s&&l)return n;let i={scrollLeft:0,scrollTop:0},c=Nn(1);const d=Nn(0),f=ba(a);if((f||!l)&&((Va(a)!=="body"||Ds(o))&&(i=Os(a)),f)){const v=Fa(a);c=vr(a),d.x=v.x+a.clientLeft,d.y=v.y+a.clientTop}const p=o&&!f&&!l?vm(o,i):Nn(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-i.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-i.scrollTop*c.y+d.y+p.y}}function d$(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function f$(e){const t=Os(e),n=e.ownerDocument.body,a=Bn(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=Bn(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let l=-t.scrollLeft+Ms(e);const o=-t.scrollTop;return kn(n).direction==="rtl"&&(l+=Bn(e.clientWidth,n.clientWidth)-a),{width:a,height:r,x:l,y:o}}const p$=25;function v$(e,t,n){n===void 0&&(n="viewport");const a=n==="layoutViewport",r=Rt(e),l=Jn(e),o=r.visualViewport;let s=l.clientWidth,i=l.clientHeight,c=0,d=0;if(o){const p=!bc()||t==="fixed";a?p||(c=-o.offsetLeft,d=-o.offsetTop):(s=o.width,i=o.height,p&&(c=o.offsetLeft,d=o.offsetTop))}if(Ms(l)<=0){const p=l.ownerDocument,v=p.body,m=getComputedStyle(v),g=p.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,_=Math.abs(l.clientWidth-v.clientWidth-g),y=getComputedStyle(l).scrollbarGutter==="stable both-edges"?_/2:_;y<=p$&&(s-=y)}return{width:s,height:i,x:c,y:d}}function h$(e,t){const n=Fa(e,!0,t==="fixed"),a=n.top+e.clientTop,r=n.left+e.clientLeft,l=vr(e),o=e.clientWidth*l.x,s=e.clientHeight*l.y,i=r*l.x,c=a*l.y;return{width:o,height:s,x:i,y:c}}function Vf(e,t,n){let a;if(t==="viewport"||t==="layoutViewport")a=v$(e,n,t);else if(t==="document")a=f$(Jn(e));else if(wn(t))a=h$(t,n);else{const r=pm(e);a={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return No(a)}function m$(e,t){const n=t.get(e);if(n)return n;let a=xl(e,[],!1).filter(s=>wn(s)&&Va(s)!=="body"),r=null;const l=kn(e).position==="fixed";let o=l?Ia(e):e;for(;wn(o)&&!_l(o);){const s=kn(o),i=gc(o),c=r?r.position:l?"fixed":"";!i&&(c==="fixed"||c==="absolute"&&s.position==="static")?a=a.filter(f=>f!==o):r=s,o=Ia(o)}return t.set(e,a),a}function y$(e){let{element:t,boundary:n,rootBoundary:a,strategy:r}=e;const o=[...n==="clippingAncestors"?Ps(t)?[]:m$(t,this._c):[].concat(n),a],s=Vf(t,o[0],r);let i=s.top,c=s.right,d=s.bottom,f=s.left;for(let p=1;p{s(!1,1e-7)},1e3)}z=!1}try{a=new IntersectionObserver(K,{...J,root:l.ownerDocument})}catch{a=new IntersectionObserver(K,J)}a.observe(e)}const i=Rt(e),c=()=>s(n);return i.addEventListener("resize",c),s(!0),()=>{i.removeEventListener("resize",c),o()}}function $$(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:r=!0,ancestorResize:l=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:i=!1}=a,c=_c(e),d=r||l?[...c?xl(c):[],...t?xl(t):[]]:[];d.forEach(y=>{r&&y.addEventListener("scroll",n),l&&y.addEventListener("resize",n)});const f=c&&s?k$(c,n,l):null;let p=-1,v=null;o&&(v=new ResizeObserver(y=>{let[x]=y;x&&x.target===c&&v&&t&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!i&&v.observe(c),t&&v.observe(t));let m,g=i?Fa(e):null;i&&_();function _(){const y=Fa(e);g&&!mm(g,y)&&n(),g=y,m=requestAnimationFrame(_)}return n(),()=>{var y;d.forEach(x=>{r&&x.removeEventListener("scroll",n),l&&x.removeEventListener("resize",n)}),f?.(),(y=v)==null||y.disconnect(),v=null,i&&cancelAnimationFrame(m)}}const C$=e$,S$=t$,jf=Zk,E$=a$,A$=Qk,D$=Jk,P$=n$,O$=(e,t,n)=>{const a=new Map,r=n??{},l={...w$,...r.platform,_c:a};return Yk(e,t,{...r,platform:l})};function M$(e){return e!=null&&typeof e=="object"&&"$el"in e}function yu(e){if(M$(e)){const t=e.$el;return yc(t)&&Va(t)==="#comment"?null:t}return e}function ar(e){return typeof e=="function"?e():u(e)}function T$(e){return{name:"arrow",options:e,fn(t){const n=yu(ar(e.element));return n==null?{}:D$({element:n,padding:e.padding}).fn(t)}}}function ym(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Uf(e,t){const n=ym(e);return Math.round(t*n)/n}function R$(e,t,n){n===void 0&&(n={});const a=n.whileElementsMounted,r=w(()=>{var z;return(z=ar(n.open))!=null?z:!0}),l=w(()=>ar(n.middleware)),o=w(()=>{var z;return(z=ar(n.placement))!=null?z:"bottom"}),s=w(()=>{var z;return(z=ar(n.strategy))!=null?z:"absolute"}),i=w(()=>{var z;return(z=ar(n.transform))!=null?z:!0}),c=w(()=>yu(e.value)),d=w(()=>yu(t.value)),f=M(0),p=M(0),v=M(s.value),m=M(o.value),g=es({}),_=M(!1),y=w(()=>{const z={position:v.value,left:"0",top:"0"};if(!d.value)return z;const K=Uf(d.value,f.value),k=Uf(d.value,p.value);return i.value?{...z,transform:"translate("+K+"px, "+k+"px)",...ym(d.value)>=1.5&&{willChange:"transform"}}:{position:v.value,left:K+"px",top:k+"px"}});let x;function S(){if(c.value==null||d.value==null)return;const z=r.value;O$(c.value,d.value,{middleware:l.value,placement:o.value,strategy:s.value}).then(K=>{f.value=K.x,p.value=K.y,v.value=K.strategy,m.value=K.placement,g.value=K.middlewareData,_.value=z!==!1})}function A(){typeof x=="function"&&(x(),x=void 0)}function L(){if(A(),a===void 0){S();return}if(c.value!=null&&d.value!=null){x=a(c.value,d.value,S);return}}function J(){r.value||(_.value=!1)}return Be([l,o,s,r],S,{flush:"sync"}),Be([c,d],L,{flush:"sync"}),Be(r,J,{flush:"sync"}),Au()&&yp(A),{x:Ka(f),y:Ka(p),strategy:Ka(v),placement:Ka(m),middlewareData:Ka(g),isPositioned:Ka(_),floatingStyles:y,update:S}}const gm={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},[lT,q$]=xt("PopperContent");var I$=ee({inheritAttrs:!1,__name:"PopperContent",props:tv({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}},{...gm}),emits:["placed"],setup(e,{emit:t}){const n=e,a=t,r=lm(),{forwardRef:l,currentElement:o}=Ke(),s=M(),i=M(),{width:c,height:d}=Sw(i),f=w(()=>n.side+(n.align!=="center"?`-${n.align}`:"")),p=w(()=>typeof n.collisionPadding=="number"?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),v=w(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),m=w(()=>({padding:p.value,boundary:v.value.filter(Ik),altBoundary:v.value.length>0})),g=w(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),_=nx(()=>[C$({mainAxis:n.sideOffset+d.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&jf({...m.value,...g.value}),n.avoidCollisions&&S$({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky==="partial"?P$():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&jf({...m.value,...g.value}),E$({...m.value,apply:({elements:D,rects:V,availableWidth:W,availableHeight:N})=>{const{width:Q,height:ne}=V.reference,ie=D.floating.style;ie.setProperty("--reka-popper-available-width",`${W}px`),ie.setProperty("--reka-popper-available-height",`${N}px`),ie.setProperty("--reka-popper-anchor-width",`${Q}px`),ie.setProperty("--reka-popper-anchor-height",`${ne}px`)}}),i.value&&T$({element:i.value,padding:n.arrowPadding}),Fk({arrowWidth:c.value,arrowHeight:d.value}),n.hideWhenDetached&&A$({strategy:"referenceHidden",...m.value})]),y=w(()=>n.reference??r.anchor.value),{floatingStyles:x,placement:S,isPositioned:A,middlewareData:L}=R$(y,s,{strategy:n.positionStrategy,placement:f,whileElementsMounted:(...D)=>$$(...D,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy==="always"}),middleware:_}),J=w(()=>vu(S.value)[0]),z=w(()=>vu(S.value)[1]);Up(()=>{A.value&&a("placed")});const K=w(()=>{const D=L.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&D}),k=M("");Xt(()=>{o.value&&(k.value=window.getComputedStyle(o.value).zIndex)});const F=w(()=>L.value.arrow?.x??0),G=w(()=>L.value.arrow?.y??0);return q$({placedSide:J,onArrowChange:D=>i.value=D,arrowX:F,arrowY:G,shouldHideArrow:K}),(D,V)=>(h(),$("div",{ref_key:"floatingRef",ref:s,"data-reka-popper-content-wrapper":"",style:Fn({...u(x),transform:u(A)?u(x).transform:"translate(0, -200%)",minWidth:"max-content",zIndex:k.value,"--reka-popper-transform-origin":[u(L).transformOrigin?.x,u(L).transformOrigin?.y].join(" "),...u(L).hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}})},[H(u(Ye),Le({ref:u(l)},D.$attrs,{"as-child":n.asChild,as:D.as,"data-side":J.value,"data-align":z.value,style:{animation:u(A)?void 0:"none"}}),{default:B(()=>[he(D.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","style"])],4))}}),bm=I$;const xc=["day","month","year"],wc=["hour","minute","second","dayPeriod"],_m=[...xc,...wc];function F$(e){return xc.includes(e)}function xm(e){return _m.includes(e)}const B$=["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"],N$=["year","month","day"],Ci={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 V$(e){if(zf(e))return Ci[e];{const t=z$(e);return zf(t)?Ci[t]:Ci.en}}function Si(e,t,n){return L$(e)?V$(n)[e]:U$(e)?t:j$(e)?"––":""}function zf(e){return B$.includes(e)}function L$(e){return N$.includes(e)}function j$(e){return e==="hour"||e==="minute"||e==="second"}function U$(e){return e==="era"||e==="dayPeriod"}function z$(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}const H$=["hour","minute","second"];function gu(e){return Object.fromEntries(wc.map(t=>t==="dayPeriod"?[t,e.formatter.dayPeriod(zt(e.value))]:[t,e.value[t]]))}function Hf(e){const{formatter:t}=e,n=xc.map(a=>[a,e.value[a]]);if("hour"in e.value){const a=gu({value:e.value,formatter:t});return{...Object.fromEntries(n),...a}}return Object.fromEntries(n)}function K$(e){return Object.fromEntries(wc.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 W$(e){const t=_m.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"?!H$.includes(n)&&n!=="dayPeriod":!0);return Object.fromEntries(t)}function G$(e){const{segmentValues:t,formatter:n,locale:a}=e;function r(o){if("hour"in t){const s=t[o];return s!==null?o==="day"?n.part(e.dateRef.set({[o]:s,month:t.month??1}),o,{hourCycle:gl(e.hourCycle)}):n.part(e.dateRef.set({[o]:s}),o,{hourCycle:gl(e.hourCycle)}):Si(o,"",a.value)}else{if(F$(o)){const s=t[o];return s!==null?o==="day"?n.part(e.dateRef.set({[o]:s,month:t.month??1}),o):n.part(e.dateRef.set({[o]:s}),o):Si(o,"",a.value)}return""}}return Object.keys(t).reduce((o,s)=>{if(!xm(s))return o;if("hour"in t&&s==="dayPeriod"){const i=t[s];i!==null?o[s]=i:o[s]=Si(s,"AM",a.value)}else o[s]=r(s);return o},{})}function Y$(e){const{granularity:t,formatter:n,contentObj:a,hideTimeZone:r,hourCycle:l,isTimeValue:o}=e;return n.toParts(e.dateRef,_w(t,l,o)).map(c=>["literal","timeZoneName",null].includes(c.type)||!xm(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"&&(!yl(e.dateRef)||r)||(!yl(e.dateRef)||r)&&c.part==="literal"&&["[","]"].includes(c.value.trim())))}function wm(e){const t=G$(e),n=Y$({contentObj:t,...e});return{obj:t,arr:n}}function Dn(e){const t=Or();return e===t.ARROW_RIGHT||e===t.ARROW_LEFT}function Aa(e){return!Number.isNaN(Number.parseInt(e))}function ea(e){const t=Or();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)||Aa(e))}function Kf(e){return Array.from(e.querySelectorAll("[data-reka-date-field-segment]")).filter(t=>t.getAttribute("data-reka-date-field-segment")!=="literal")}function Wf(e){return Array.from(e.querySelectorAll("[data-reka-time-field-segment]")).filter(t=>t.getAttribute("data-reka-time-field-segment")!=="literal")}const J$=/^\d$/;function _a(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 Z$(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,s=1,i=da(l),c=a?"Empty":`${o}`;return{..._a(e),"aria-label":"day,","aria-valuemin":s,"aria-valuemax":i,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":a?"":void 0}}function Q$(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,s=1,i=12,c=r?"Empty":`${o} - ${a.fullMonth(zt(l))}`;return{..._a(e),"aria-label":"month, ",contenteditable:!0,"aria-valuemin":s,"aria-valuemax":i,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function X$(e){const{segmentValues:t,placeholder:n}=e,a=t.year===null,r=t.year?n.set({year:t.year}):n,l=1,o=9999,s=r.year,i=a?"Empty":`${s}`;return{..._a(e),"aria-label":"year, ","aria-valuemin":l,"aria-valuemax":o,"aria-valuenow":s,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function e2(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,s=n===12?12:23,i=l.hour,c=r?"Empty":`${i} ${t.dayPeriod??""}`;return{..._a(e),"aria-label":"hour, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":i,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function t2(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,s=59,i=a?"Empty":`${l}`;return{..._a(e),"aria-label":"minute, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":l,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function n2(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,s=59,i=a?"Empty":`${l}`;return{..._a(e),"aria-label":"second, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":l,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function a2(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{..._a(e),inputmode:"text","aria-label":"AM/PM","aria-valuemin":n,"aria-valuemax":a,"aria-valuenow":r,"aria-valuetext":l}}function r2(e){return{"aria-hidden":!0,"data-segment":"literal"}}function l2(e){return{role:"textbox","aria-label":"timezone, ","data-readonly":!0,"data-segment":"timeZoneName",tabindex:e.disabled?void 0:0,style:"caret-color: transparent;"}}function o2(e){const{segmentValues:t,placeholder:n}=e,a=0,r=0,l=0,o="era"in t?t.era:n.era;return{..._a(e),"aria-label":"era","aria-valuemin":a,"aria-valuemax":r,"aria-valuenow":l,"aria-valuetext":o}}const s2={day:{attrs:Z$},month:{attrs:Q$},year:{attrs:X$},hour:{attrs:e2},minute:{attrs:t2},second:{attrs:n2},dayPeriod:{attrs:a2},literal:{attrs:r2},timeZoneName:{attrs:l2},era:{attrs:o2}};function km(e){const t=Or();function n({e:k,part:F,dateRef:G,prevValue:D}){const V=e.step.value[F]??1,W=k.key===t.ARROW_UP?V:-V,N=0,Q=59;if(D===null)return W>0?N:Q;const ne=[F,W];return G.set({[F]:D}).cycle(...ne)[F]}function a(k){if(e.hasLeftFocus.value=!1,k===null)return k;const F=k.toString();return F.length===1?(e.modelValue.value=void 0,null):Number.parseInt(F.slice(0,-1))}function r({e:k,part:F,dateRef:G,prevValue:D}){const V=e.step.value[F]??1,W=k.key===t.ARROW_UP?V:-V;if(D===null)return G[F];if(F==="hour"&&"hour"in G){const Q=[F,W];return G.set({[F]:D}).cycle(...Q)[F]}const N=[F,W];return F==="day"?G.set({[F]:D,month:e.segmentValues.value.month??1}).cycle(...N)[F]:G.set({[F]:D}).cycle(...N)[F]}function l(k,F,G){let D=!1;const V=Math.floor(k/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,G=null),G===null)return F===0?(e.lastKeyZero.value=!0,{value:null,moveToNext:D}):((e.lastKeyZero.value||F>V)&&(D=!0),e.lastKeyZero.value=!1,{value:F,moveToNext:D});const W=G.toString().length,N=Number.parseInt(G.toString()+F.toString());return W===2||N>k?((F>V||N>k)&&(D=!0),{value:F,moveToNext:D}):(D=!0,{value:N,moveToNext:D})}function o(k,F){let D=!1;const V=Math.floor(59/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,F=null),F===null)return k===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:D}):((e.lastKeyZero.value||k>V)&&(D=!0),e.lastKeyZero.value=!1,{value:k,moveToNext:D});const W=F.toString().length,N=Number.parseInt(F.toString()+k.toString());return W===2||N>59?(k>V&&(D=!0),{value:k,moveToNext:D}):(D=!0,{value:N,moveToNext:D})}function s(k,F,G){let D=!1;const V=Math.floor(k/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,G=null),G===null)return F===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:D}):((e.lastKeyZero.value||F>V)&&(D=!0),e.lastKeyZero.value=!1,{value:F,moveToNext:D});const W=G.toString().length,N=Number.parseInt(G.toString()+F.toString());return W===2||N>k?(F>V&&(D=!0),{value:F,moveToNext:D}):(D=!0,{value:N,moveToNext:D})}function i(k,F){let G=!1;if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,F=null),F===null)return{value:k===0?1:k,moveToNext:G};const D=F.toString()+k.toString();return D.length>4?{value:k===0?1:k,moveToNext:G}:(D.length===4&&(G=!0),{value:Number.parseInt(D),moveToNext:G})}const c=w(()=>s2[e.part]?.attrs({disabled:e.disabled.value,placeholder:e.placeholder.value,hourCycle:e.hourCycle,segmentValues:e.segmentValues.value,formatter:e.formatter})??{});function d(k){if(!ea(k.key)||Dn(k.key))return;const F=e.segmentValues.value.day;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.day=r({e:k,part:"day",dateRef:e.placeholder.value,prevValue:F});return}if(Aa(k.key)){const G=Number.parseInt(k.key),D=e.segmentValues.value.month,V=D?da(e.placeholder.value.set({month:D})):31,{value:W,moveToNext:N}=l(V,G,F);e.segmentValues.value.day=W,N&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.day=a(F))}function f(k){if(!ea(k.key)||Dn(k.key))return;const F=e.segmentValues.value.month;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.month=r({e:k,part:"month",dateRef:e.placeholder.value,prevValue:F});return}if(Aa(k.key)){const G=Number.parseInt(k.key),{value:D,moveToNext:V}=l(12,G,F);e.segmentValues.value.month=D,V&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.month=a(F))}function p(k){if(!ea(k.key)||Dn(k.key))return;const F=e.segmentValues.value.year;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.year=r({e:k,part:"year",dateRef:e.placeholder.value,prevValue:F});return}if(Aa(k.key)){const G=Number.parseInt(k.key),{value:D,moveToNext:V}=i(G,F);e.segmentValues.value.year=D,V&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.year=a(F))}function v(k){const F=new Yt(k,{hour:"numeric"}).resolvedOptions().hourCycle;return F==="h11"||F==="h12"}function m(k){const F=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("hour"in F)||!("hour"in e.segmentValues.value))return;const G=e.segmentValues.value.hour;if(k.key===t.ARROW_UP||k.key===t.ARROW_DOWN){const D=r({e:k,part:"hour",dateRef:e.placeholder.value,prevValue:G});e.segmentValues.value.hour=D,"dayPeriod"in e.segmentValues.value&&D!==null&&(e.segmentValues.value.dayPeriod=D>=12?"PM":"AM");return}if(Aa(k.key)){const D=Number.parseInt(k.key),V=e.hourCycle!==void 0?e.hourCycle===12:v(e.formatter.getLocale()),W=V?12:24;let N=G;V&&G!==null&&(N=G%12===0?0:G>12?G-12:G);const{value:Q,moveToNext:ne}=s(W,D,N);let ie=Q;if(V&&Q!==null){const te=e.segmentValues.value.dayPeriod||"AM";Q===12?ie=te==="AM"?0:12:ie=te==="PM"?Q+12:Q}e.segmentValues.value.hour=ie,ne&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.hour=a(G))}function g(k){const F=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("minute"in F)||!("minute"in e.segmentValues.value))return;const G=e.segmentValues.value.minute;if((k.key===t.ARROW_UP||k.key===t.ARROW_DOWN)&&(e.segmentValues.value.minute=n({e:k,part:"minute",dateRef:e.placeholder.value,prevValue:G})),Aa(k.key)){const D=Number.parseInt(k.key),{value:V,moveToNext:W}=o(D,G);e.segmentValues.value.minute=V,W&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.minute=a(G))}function _(k){const F=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("second"in F)||!("second"in e.segmentValues.value))return;const G=e.segmentValues.value.second;if((k.key===t.ARROW_UP||k.key===t.ARROW_DOWN)&&(e.segmentValues.value.second=n({e:k,part:"second",dateRef:e.placeholder.value,prevValue:G})),Aa(k.key)){const D=Number.parseInt(k.key),{value:V,moveToNext:W}=o(D,G);e.segmentValues.value.second=V,W&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.second=a(G))}function y(k){if(!((!ea(k.key)||Dn(k.key))&&k.key!=="a"&&k.key!=="p"||!("hour"in e.placeholder.value)||!("dayPeriod"in e.segmentValues.value))){if(k.key===t.ARROW_UP||k.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(k.key)&&e.segmentValues.value.dayPeriod!=="AM"){e.segmentValues.value.dayPeriod="AM",e.segmentValues.value.hour=e.segmentValues.value.hour-12;return}["p","P"].includes(k.key)&&e.segmentValues.value.dayPeriod!=="PM"&&(e.segmentValues.value.dayPeriod="PM",e.segmentValues.value.hour=e.segmentValues.value.hour+12)}}function x(k){e.disabled.value&&k.preventDefault()}function S(k){if(k.isComposing||k.key==="Process")return;const F=e.disabled.value,G=e.readonly.value;if(F||G)return;if(k.key!==t.TAB&&k.preventDefault(),{day:d,month:f,year:p,hour:m,minute:g,second:_,dayPeriod:y,timeZoneName:()=>{}}[e.part](k),![t.ARROW_LEFT,t.ARROW_RIGHT].includes(k.key)&&k.key!==t.TAB&&k.key!==t.SHIFT&&ea(k.key)&&Object.values(e.segmentValues.value).every(V=>V!==null)){const V={...e.segmentValues.value},W=e.placeholder.value.set(V);e.modelValue.value=W.copy()}}function A(){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=oi(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=oi(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=oi(e.segmentValues.value.second,0,59,e.step.value.second)),Object.values(e.segmentValues.value).every(k=>k!==null))){const k=e.placeholder.value.set({...e.segmentValues.value});e.modelValue.value=k.copy()}}let L=null;function J(k){k.isComposing||k.preventDefault()}function z(k){const F=k.target;L=Array.from(F.childNodes,G=>({node:G,value:G.nodeValue}))}function K(k){const F=k.target,G=L;if(L=null,G){for(const{node:V,value:W}of G)V.nodeValue=W;F.replaceChildren(...G.map(V=>V.node))}const D=k.data;if(D)for(const V of D){if(!J$.test(V))continue;const W=ft();if(!(W instanceof HTMLElement))break;W.dispatchEvent(new KeyboardEvent("keydown",{key:V,bubbles:!0,cancelable:!0}))}}return{handleSegmentClick:x,handleSegmentKeydown:S,handleSegmentBeforeInput:J,handleSegmentCompositionStart:z,handleSegmentCompositionEnd:K,handleSegmentFocusOut:A,attributes:c}}function i2(e){function t(l){return Array.isArray(e.date.value)?e.date.value.some(o=>pa(o,l)):e.date.value?pa(e.date.value,l):!1}const n=w(()=>{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=w(()=>Array.isArray(e.date.value)?e.date.value.length>0:!!e.date.value),r=w(()=>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 u2(e,t){const n=t(e),a=n.compare(e),r={};return a>=7&&(r.day=1),a>=da(e)&&(r.month=1),n.set({...r})}function c2(e,t){const n=t(e),a=e.compare(n),r={};return a>=7&&(r.day=35),a>=da(e)&&(r.month=13),n.set({...r})}function d2(e,t){return t(e)}function f2(e,t){return t(e)}function p2(e){const t=cc(e.locale.value),n=w(()=>{const y={calendar:e.placeholder.value.calendar.identifier};return e.placeholder.value.calendar.identifier==="gregory"&&e.placeholder.value.era==="BC"&&(y.era="short"),y}),a=M(Ca({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})),r=w(()=>a.value.map(y=>y.value));function l(y){return!r.value.some(x=>of(y,x))}const o=y=>{if(!e.maxValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const x=a.value.at(-1).value;if(!y&&!e.nextPage.value){const A=x.add({months:1}).set({day:1});return mi(A,e.maxValue.value)}const S=u2(x,y||e.nextPage.value);return mi(S,e.maxValue.value)},s=y=>{if(!e.minValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const x=a.value[0].value;if(!y&&!e.prevPage.value){const A=x.subtract({months:1}).set({day:35});return ia(A,e.minValue.value)}const S=c2(x,y||e.prevPage.value);return ia(S,e.minValue.value)};function i(y){return!!(e.isDateDisabled?.(y)||e.disabled.value||e.maxValue.value&&mi(y,e.maxValue.value)||e.minValue.value&&ia(y,e.minValue.value))}const c=y=>!!e.isDateUnavailable?.(y),d=w(()=>a.value.length?a.value[0].rows[0].map(y=>t.dayOfWeek(zt(y),e.weekdayFormat.value)):[]),f=y=>{const x=a.value[0].value;if(!y&&!e.nextPage.value){const J=x.add({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),z=Ca({dateObj:J,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 S=d2(x,y||e.nextPage.value),A=Ca({dateObj:S,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=A;const L={};if(!y){const J=A[0].value.compare(x);J>=da(x)&&(L.day=1),J>=365&&(L.month=1)}e.placeholder.value=A[0].value.set({...L})},p=y=>{const x=a.value[0].value;if(!y&&!e.prevPage.value){const J=x.subtract({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),z=Ca({dateObj:J,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 S=f2(x,y||e.prevPage.value),A=Ca({dateObj:S,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=A;const L={};if(!y){const J=x.compare(A[0].value);J>=da(x)&&(L.day=1),J>=365&&(L.month=1)}e.placeholder.value=A[0].value.set({...L})};Be(e.placeholder,y=>{r.value.some(x=>of(x,y))||(a.value=Ca({dateObj:y,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value}))}),Be([e.locale,e.weekStartsOn,e.fixedWeeks,e.numberOfMonths],()=>{a.value=Ca({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})});const v=w(()=>{if(!a.value.length)return"";if(e.locale.value!==t.getLocale()&&t.setLocale(e.locale.value),a.value.length===1){const K=a.value[0].value;return`${t.fullMonthAndYear(zt(K),n.value)}`}const y=zt(a.value[0].value),x=zt(a.value.at(-1).value),S=t.fullMonth(y,n.value),A=t.fullMonth(x,n.value),L=t.fullYear(y,n.value),J=t.fullYear(x,n.value);return L===J?`${S} - ${A} ${J}`:`${S} ${L} - ${A} ${J}`}),m=w(()=>`${e.calendarLabel.value??"Event Date"}, ${v.value}`),g=w(()=>!(i(e.placeholder.value)||c(e.placeholder.value)||l(e.placeholder.value))),_=w(()=>{for(const y of a.value){if(e.minValue.value&&ia(y.value,e.minValue.value))continue;const x=da(y.value),S=e.minValue.value&&Qu(e.minValue.value,y.value)?e.minValue.value.day:1;for(let A=S;A<=x;A++){const L=y.value.set({day:A});if(!(i(L)||c(L)))return L}}});return{isDateDisabled:i,isDateUnavailable:c,isNextButtonDisabled:o,isPrevButtonDisabled:s,grid:a,weekdays:d,visibleView:r,isOutsideVisibleView:l,formatter:t,nextPage:f,prevPage:p,headingValue:v,fullCalendarLabel:m,isPlaceholderFocusable:g,firstFocusableDate:_}}const v2={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"}},h2={role:"heading","aria-level":"2"},[Tr,m2]=xt("CalendarRoot");var y2=ee({__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:s,weekdayFormat:i,fixedWeeks:c,multiple:d,minValue:f,maxValue:p,numberOfMonths:v,preventDeselect:m,isDateDisabled:g,isDateUnavailable:_,calendarLabel:y,defaultValue:x,nextPage:S,prevPage:A,dir:L,locale:J,disableDaysOutsideCurrentView:z}=Lt(n),{primitiveElement:K,currentElement:k}=Cr(),F=$s(J),G=Na(L),D=w(()=>n.weekStartsOn??Gh(F.value)),V=bt(n,"modelValue",a,{defaultValue:x.value,passive:n.modelValue===void 0}),W=uc({defaultPlaceholder:n.placeholder,defaultValue:V.value,locale:n.locale}),N=bt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??W.copy(),passive:n.placeholder===void 0});function Q(q){N.value=q.copy()}const{fullCalendarLabel:ne,headingValue:ie,isDateDisabled:te,isDateUnavailable:oe,isNextButtonDisabled:le,isPrevButtonDisabled:re,weekdays:we,isOutsideVisibleView:se,nextPage:Ce,prevPage:fe,formatter:Z,grid:pe,isPlaceholderFocusable:X,firstFocusableDate:ue}=p2({locale:F,placeholder:N,weekStartsOn:D,fixedWeeks:c,numberOfMonths:v,minValue:f,maxValue:p,disabled:r,weekdayFormat:i,pagedNavigation:s,isDateDisabled:g.value,isDateUnavailable:_.value,calendarLabel:y,nextPage:S,prevPage:A}),{isInvalid:ge,isDateSelected:b,hasSelectedDate:C,isSelectedDateDisabled:E}=i2({date:V,isDateDisabled:te,isDateUnavailable:oe});Be(V,q=>{if(Array.isArray(q)&&q.length){const Y=q.at(-1);Y&&!dr(N.value,Y)&&Q(Y)}else!Array.isArray(q)&&q&&!dr(N.value,q)&&Q(q)});function R(q){if(d.value){if(!V.value)V.value=[q.copy()];else if(Array.isArray(V.value)){if(V.value.findIndex(de=>pa(de,q))===-1)V.value=[...V.value,q];else if(!m.value){const de=V.value.filter(ve=>!pa(ve,q));if(!de.length){N.value=q.copy(),V.value=void 0;return}V.value=de.map(ve=>ve.copy())}}}else{if(!V.value){V.value=q.copy();return}!m.value&&dr(V.value,q)?(N.value=q.copy(),V.value=void 0):V.value=q.copy()}}return _t(()=>{o.value&&Kh(k.value)}),m2({isDateUnavailable:oe,dir:G,isDateDisabled:te,locale:F,formatter:Z,modelValue:V,placeholder:N,disabled:r,initialFocus:o,pagedNavigation:s,grid:pe,weekDays:we,weekStartsOn:D,weekdayFormat:i,fixedWeeks:c,multiple:d,numberOfMonths:v,readonly:l,preventDeselect:m,fullCalendarLabel:ne,headingValue:ie,isInvalid:ge,isDateSelected:b,isNextButtonDisabled:le,isPrevButtonDisabled:re,isOutsideVisibleView:se,nextPage:Ce,prevPage:fe,parentElement:k,onPlaceholderChange:Q,onDateChange:R,disableDaysOutsideCurrentView:z,minValue:f,maxValue:p,isPlaceholderFocusable:X,firstFocusableDate:ue,hasSelectedDate:C,isSelectedDateDisabled:E}),(q,Y)=>(h(),U(u(Ye),{ref_key:"primitiveElement",ref:K,as:q.as,"as-child":q.asChild,"aria-label":u(ne),"data-readonly":u(l)?"":void 0,"data-disabled":u(r)?"":void 0,"data-invalid":u(ge)?"":void 0,dir:u(G)},{default:B(()=>[he(q.$slots,"default",{date:u(N),grid:u(pe),weekDays:u(we),weekStartsOn:D.value,locale:u(F),fixedWeeks:u(c),modelValue:u(V)}),O("div",v2,[O("div",h2,T(u(ne)),1)])]),_:3},8,["as","as-child","aria-label","data-readonly","data-disabled","data-invalid","dir"]))}}),g2=y2,b2=ee({__name:"CalendarCell",props:{date:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"td"}},setup(e){const t=Tr();return(n,a)=>(h(),U(u(Ye),{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(()=>[he(n.$slots,"default")]),_:3},8,["as","as-child","aria-selected","aria-disabled","data-disabled"]))}}),_2=b2,x2=ee({__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=Or(),a=Tr(),{primitiveElement:r}=Cr(),l=w(()=>t.day.day.toLocaleString(a.locale.value)),o=w(()=>a.formatter.custom(zt(t.day),{weekday:"long",month:"long",day:"numeric",year:"numeric"})),s=w(()=>a.isDateUnavailable?.(t.day)??!1),i=w(()=>Cx(t.day,rn())),c=w(()=>!Qu(t.day,t.month)),d=w(()=>a.isOutsideVisibleView(t.day)),f=w(()=>a.isDateDisabled(t.day)||a.disableDaysOutsideCurrentView.value&&c.value),p=w(()=>c.value||f.value?!1:!a.disabled.value&&a.isPlaceholderFocusable.value&&pa(t.day,a.placeholder.value)?!0:(!a.hasSelectedDate.value||a.isSelectedDateDisabled.value)&&!a.isPlaceholderFocusable.value?a.firstFocusableDate.value&&pa(t.day,a.firstFocusableDate.value):!1),v=w(()=>a.isDateSelected(t.day));function m(y){a.readonly.value||a.isDateDisabled(y)||a.isDateUnavailable?.(y)||a.onDateChange(y)}function g(){f.value||m(t.day)}function _(y){if(f.value)return;y.preventDefault(),y.stopPropagation();const x=a.parentElement.value,S=7,A=a.dir.value==="rtl"?-1:1;switch(y.code){case n.ARROW_RIGHT:L(t.day,A);break;case n.ARROW_LEFT:L(t.day,-A);break;case n.ARROW_UP:L(t.day,-S);break;case n.ARROW_DOWN:L(t.day,S);break;case n.ENTER:case n.SPACE_CODE:m(t.day)}function L(J,z){const K=J.add({days:z});if(a.minValue.value&&K.compare(a.minValue.value)<0||a.maxValue.value&&K.compare(a.maxValue.value)>0)return;const k=x.querySelector(`[data-value='${K.toString()}']:not([data-outside-view])`);if(!k){if(z>0){if(a.isNextButtonDisabled())return;a.nextPage()}else{if(a.isPrevButtonDisabled())return;a.prevPage()}ze(()=>{L(J,z)});return}if(k&&k.hasAttribute("data-disabled"))return L(K,z);a.onPlaceholderChange(K),k?.focus()}}return(y,x)=>(h(),U(u(Ye),{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||s.value?!0:void 0,"data-selected":v.value?!0:void 0,"data-value":y.day.toString(),"data-disabled":f.value?"":void 0,"data-unavailable":s.value?"":void 0,"data-today":i.value?"":void 0,"data-outside-view":c.value?"":void 0,"data-outside-visible-view":d.value?"":void 0,"data-focused":p.value?"":void 0,tabindex:p.value?0:c.value||f.value?void 0:-1,onClick:g,onKeydown:[yr(_,["up","down","left","right","space","enter"]),x[0]||(x[0]=yr(pt(()=>{},["prevent"]),["enter"]))]},{default:B(()=>[he(y.$slots,"default",{dayValue:l.value,disabled:f.value,today:i.value,selected:v.value,outsideView:c.value,outsideVisibleView:d.value,unavailable:s.value},()=>[$e(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"]))}}),w2=x2,k2=ee({__name:"CalendarGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"table"}},setup(e){const t=e,n=Tr(),a=w(()=>n.disabled.value?!0:void 0),r=w(()=>n.readonly.value?!0:void 0);return(l,o)=>(h(),U(u(Ye),Le(t,{tabindex:"-1",role:"application","aria-readonly":r.value,"aria-disabled":a.value,"data-readonly":r.value&&"","data-disabled":a.value&&""}),{default:B(()=>[he(l.$slots,"default")]),_:3},16,["aria-readonly","aria-disabled","data-readonly","data-disabled"]))}}),$2=k2,C2=ee({__name:"CalendarGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tbody"}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),S2=C2,E2=ee({__name:"CalendarGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"thead"}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),Le(t,{"aria-hidden":"true"}),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),A2=E2,D2=ee({__name:"CalendarGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tr"}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),P2=D2,O2=ee({__name:"CalendarHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"th"}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),M2=O2,T2=ee({__name:"CalendarHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),R2=T2,q2=ee({__name:"CalendarHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,n=Tr();return(a,r)=>(h(),U(u(Ye),Le(t,{"data-disabled":u(n).disabled.value?"":void 0}),{default:B(()=>[he(a.$slots,"default",{headingValue:u(n).headingValue.value},()=>[$e(T(u(n).headingValue.value),1)])]),_:3},16,["data-disabled"]))}}),I2=q2,F2=ee({__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=w(()=>a.disabled.value||a.isNextButtonDisabled(t.nextPage)),a=Tr();function r(){n.value||a.nextPage(t.nextPage)}return(l,o)=>(h(),U(u(Ye),{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(()=>[he(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=$e(" Next page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),B2=F2,N2=ee({__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=w(()=>a.disabled.value||a.isPrevButtonDisabled(t.prevPage)),a=Tr();function r(){n.value||a.prevPage(t.prevPage)}return(l,o)=>(h(),U(u(Ye),{"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(()=>[he(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=$e(" Prev page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),V2=N2;const[oT,L2]=xt("RovingFocusGroup");var j2=ee({__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:s}=Lt(a),i=Na(s),c=bt(a,"currentTabStopId",r,{defaultValue:a.defaultCurrentTabStopId,passive:a.currentTabStopId===void 0}),d=M(!1),f=M(!1),p=M(0),{getItems:v,CollectionSlot:m}=am({isProvider:!0});function g(y){const x=!f.value;if(y.currentTarget&&y.target===y.currentTarget&&x&&!d.value){const S=new CustomEvent(Pk,Ok);if(y.currentTarget.dispatchEvent(S),r("entryFocus",S),!S.defaultPrevented){const A=v().map(k=>k.ref).filter(k=>k.dataset.disabled!==""),L=A.find(k=>k.getAttribute("data-active")===""),J=A.find(k=>k.getAttribute("data-highlighted")===""),z=A.find(k=>k.id===c.value),K=[L,J,z,...A].filter(Boolean);Mk(K,a.preventScrollOnEntryFocus)}}f.value=!1}function _(){setTimeout(()=>{f.value=!1},1)}return t({getItems:v}),L2({loop:l,dir:i,orientation:o,currentTabStopId:c,onItemFocus:y=>{c.value=y},onItemShiftTab:()=>{d.value=!0},onFocusableItemAdd:()=>{p.value++},onFocusableItemRemove:()=>{p.value--}}),(y,x)=>(h(),U(u(m),null,{default:B(()=>[H(u(Ye),{tabindex:d.value||p.value===0?-1:0,"data-orientation":u(o),as:y.as,"as-child":y.asChild,dir:u(i),style:{outline:"none"},onMousedown:x[0]||(x[0]=S=>f.value=!0),onMouseup:_,onFocus:g,onBlur:x[1]||(x[1]=S=>d.value=!1)},{default:B(()=>[he(y.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),U2=j2,z2=ee({__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)=>(h(),U(u(sm),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),H2=z2;function K2(){const e=M(!1);return _t(()=>{Mo("keydown",()=>{e.value=!0},{capture:!0,passive:!0}),Mo(["pointerdown","pointermove"],()=>{e.value=!1},{capture:!0,passive:!0})}),e}const W2=vh(K2),[Ts,G2]=xt(["MenuRoot","MenuSub"],"MenuContext"),[kc,Y2]=xt("MenuRoot");var J2=ee({__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}=Lt(n),o=Na(l),s=bt(n,"open",a),i=M(),c=W2();return G2({open:s,onOpenChange:d=>{s.value=d},content:i,onContentChange:d=>{i.value=d}}),Y2({onClose:()=>{s.value=!1},isUsingKeyboardRef:c,dir:o,modal:r}),(d,f)=>(h(),U(u(om),null,{default:B(()=>[he(d.$slots,"default")]),_:3}))}}),Z2=J2;const[$m,Q2]=xt("MenuContent");var X2=ee({__name:"MenuContentImpl",props:tv({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}},{...gm}),emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus","dismiss"],setup(e,{emit:t}){const n=e,a=t,r=Ts(),l=kc(),{trapFocus:o,disableOutsidePointerEvents:s,loop:i}=Lt(n);Yh(),Zu(s.value);const c=M(""),d=M(0),f=M(0),p=M(null),v=M("right"),m=M(0),g=M(null),_=M(),{forwardRef:y,currentElement:x}=Ke(),{handleTypeaheadSearch:S}=Aw(),A=M();function L(N){const Q=lf(N,A.value||ft(),x.value,{loop:i.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!1,attributeName:"[data-reka-collection-item]:not([data-disabled])"});Q&&(A.value=Q,Q.scrollIntoView({block:"nearest"}))}function J(){A.value&&A.value.click()}const z=M(),K=M();Be(A,N=>{K.value&&(N===void 0||N!==K.value.trigger.value)&&(K.value.onOpenChange(!1),K.value=void 0)}),Be(x,N=>{r.onContentChange(N)}),Er(()=>{window.clearTimeout(d.value)});function k(N){return v.value===p.value?.side&&Xw(N,p.value?.area)}async function F(N){a("openAutoFocus",N),!N.defaultPrevented&&(N.preventDefault(),x.value?.focus({preventScroll:!0}))}function G(N){if(N.defaultPrevented)return;const Q=N.target,ne=Q.closest("[data-reka-menu-content]")===N.currentTarget,ie=["input","textarea"].includes(Q.tagName.toLowerCase()),te=N.ctrlKey||N.altKey||N.metaKey,oe=N.key.length===1,le=lf(N,ft(),x.value,{loop:i.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!0,attributeName:"[data-reka-collection-item]:not([data-disabled])"});if(le)return le?.focus();if(N.code==="Space")return;const re=_.value?.getItems()??[];if(ne&&(N.key==="Tab"&&N.preventDefault(),!te&&oe&&!ie&&S(N.key,re)),N.target!==x.value||!Jw.includes(N.key))return;N.preventDefault();const we=[...re.map(se=>se.ref)];em.includes(N.key)&&we.reverse(),Zw(we)}function D(N){N?.currentTarget?.contains?.(N.target)||(window.clearTimeout(d.value),c.value="")}function V(N){if(!Io(N))return;const Q=N.target,ne=m.value!==N.clientX;if(N?.currentTarget?.contains(Q)&&ne){const ie=N.clientX>m.value?"right":"left";v.value=ie,m.value=N.clientX}}function W(N){Io(N)&&z.value&&z.value.focus()}return Q2({onItemEnter:N=>!!k(N),onItemLeave:N=>k(N)?!0:(["INPUT","TEXTAREA"].includes(ft()?.tagName||"")||x.value?.focus(),g.value=null,!1),onTriggerLeave:N=>!!k(N),searchRef:c,highlightedElement:A,onKeydownNavigation:L,onKeydownEnter:J,filterElement:z,onFilterElementChange:N=>{z.value=N},activeSubmenuContext:K,pointerGraceTimerRef:f,onPointerGraceIntentChange:N=>{p.value=N}}),(N,Q)=>(h(),U(u(pc),{"as-child":"",trapped:u(o),onMountAutoFocus:F,onUnmountAutoFocus:Q[7]||(Q[7]=ne=>a("closeAutoFocus",ne))},{default:B(()=>[H(u(fc),{"as-child":"","disable-outside-pointer-events":u(s),onEscapeKeyDown:Q[2]||(Q[2]=ne=>a("escapeKeyDown",ne)),onPointerDownOutside:Q[3]||(Q[3]=ne=>a("pointerDownOutside",ne)),onFocusOutside:Q[4]||(Q[4]=ne=>a("focusOutside",ne)),onInteractOutside:Q[5]||(Q[5]=ne=>a("interactOutside",ne)),onDismiss:Q[6]||(Q[6]=ne=>a("dismiss"))},{default:B(()=>[H(u(U2),{ref_key:"rovingFocusGroupRef",ref:_,"current-tab-stop-id":g.value,"onUpdate:currentTabStopId":Q[0]||(Q[0]=ne=>g.value=ne),"as-child":"",orientation:"vertical",dir:u(l).dir.value,loop:u(i),onEntryFocus:Q[1]||(Q[1]=ne=>{a("entryFocus",ne),u(l).isUsingKeyboardRef.value||ne.preventDefault()})},{default:B(()=>[H(u(bm),{ref:u(y),role:"menu",as:N.as,"as-child":N.asChild,"aria-orientation":"vertical","data-reka-menu-content":"","data-state":u(tm)(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:G,onBlur:D,onPointermove:V,onPointerenter:W},{default:B(()=>[he(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"]))}}),Cm=X2,eC=ee({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=$m(),{forwardRef:a,currentElement:r}=Ke(),{CollectionItem:l}=am(),o=M(!1),s=w(()=>o.value||r.value!=null&&n.highlightedElement.value===r.value);async function i(d){if(!(d.defaultPrevented||!Io(d))){if(t.disabled)n.onItemLeave(d);else if(!n.onItemEnter(d)){const p=d.currentTarget;n.highlightedElement.value=p,["INPUT","TEXTAREA"].includes(ft()?.tagName||"")||p.focus({preventScroll:!0})}}}async function c(d){if(await ze(),d.defaultPrevented||!Io(d)||n.highlightedElement.value!==r.value)return;!n.onItemLeave(d)&&n.highlightedElement.value===r.value&&(n.highlightedElement.value=void 0)}return(d,f)=>(h(),U(u(l),{value:{textValue:d.textValue}},{default:B(()=>[H(u(Ye),Le({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":s.value?"":void 0,onPointermove:i,onPointerleave:c,onFocus:f[0]||(f[0]=async p=>{await ze(),!(p.defaultPrevented||d.disabled)&&(o.value=!0,u(n).highlightedElement.value=p.currentTarget)}),onBlur:f[1]||(f[1]=async p=>{await ze(),!p.defaultPrevented&&(o.value=!1)})}),{default:B(()=>[he(d.$slots,"default")]),_:3},16,["as","as-child","aria-disabled","data-disabled","data-highlighted"])]),_:3},8,["value"]))}}),tC=eC,nC=ee({__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}=Ke(),o=kc(),s=$m(),i=M(!1);async function c(){const d=l.value;if(!n.disabled&&d){const f=new CustomEvent(Gw,{bubbles:!0,cancelable:!0});a("select",f),await ze(),f.defaultPrevented?i.value=!1:o.onClose()}}return(d,f)=>(h(),U(tC,Le(n,{ref:u(r),onClick:c,onPointerdown:f[0]||(f[0]=()=>{i.value=!0}),onPointerup:f[1]||(f[1]=async p=>{await ze(),!p.defaultPrevented&&(i.value||p.currentTarget?.click())}),onKeydown:f[2]||(f[2]=async p=>{const v=u(s).searchRef.value!=="";d.disabled||v&&p.key===" "||u(pu).includes(p.key)&&(p.currentTarget?.click(),p.preventDefault())})}),{default:B(()=>[he(d.$slots,"default")]),_:3},16))}}),aC=nC,rC=ee({__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=Gn(n,a),l=Ts(),{forwardRef:o,currentElement:s}=Ke();return dc(s),(i,c)=>(h(),U(Cm,Le(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]=pt(d=>a("focusOutside",d),["prevent"]))}),{default:B(()=>[he(i.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),lC=rC,oC=ee({__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=Gn(e,t),l=Ts();return(o,s)=>(h(),U(Cm,Le(u(r),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:s[0]||(s[0]=i=>u(l).onOpenChange(!1))}),{default:B(()=>[he(o.$slots,"default")]),_:3},16))}}),sC=oC,iC=ee({__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=Gn(e,t),l=Ts(),o=kc();return(s,i)=>(h(),U(u(Cs),{present:s.forceMount||u(l).open.value},{default:B(()=>[u(o).modal.value?(h(),U(lC,He(Le({key:0},{...s.$attrs,...u(r)})),{default:B(()=>[he(s.$slots,"default")]),_:3},16)):(h(),U(sC,He(Le({key:1},{...s.$attrs,...u(r)})),{default:B(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),uC=iC,cC=ee({__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)=>(h(),U(u(Ss),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),dC=cC,fC=ee({__name:"MenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(Ye),Le(t,{role:"separator","aria-orientation":"horizontal"}),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),pC=fC;const[vC,hC]=xt("DateFieldRoot");var mC=ee({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:s,granularity:i,defaultValue:c,dir:d,locale:f}=Lt(a),p=$s(f),v=Na(d),m=cc(p.value,{hourCycle:gl(a.hourCycle)}),{primitiveElement:g,currentElement:_}=Cr(),y=M(new Set);_t(()=>{Kf(_.value).forEach(se=>y.value.add(se))});const x=bt(a,"modelValue",r,{defaultValue:c.value,passive:a.modelValue===void 0}),S=uc({defaultPlaceholder:a.placeholder,granularity:i.value,defaultValue:x.value,locale:a.locale}),A=bt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??S.copy(),passive:a.placeholder===void 0}),L=w(()=>Hh(a)),J=w(()=>a.granularity?du(A.value)?a.granularity:"day":du(A.value)?"minute":"day"),z=w(()=>x.value?!!(s.value?.(x.value)||a.minValue&&ia(x.value,a.minValue)||a.maxValue&&ia(a.maxValue,x.value)):!1),K=W$(J.value),k=M(x.value?{...Hf({value:x.value,formatter:m})}:{...K}),F=w(()=>wm({granularity:J.value,dateRef:A.value,formatter:m,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:k.value,locale:p})),G=w(()=>F.value.arr),D=w(()=>G.value.filter(({part:se})=>se!=="literal"));Be(p,se=>{m.getLocale()!==se&&(m.setLocale(se),ze(()=>{y.value.clear(),Kf(_.value).forEach(Ce=>y.value.add(Ce))}))}),Be(x,se=>{!vn(se)&&A.value.compare(se)!==0&&(A.value=se.copy())}),Be([x,p],([se])=>{vn(se)?Object.values(k.value).every(Ce=>Ce!==null)&&vn(se)&&(k.value={...K}):k.value={...Hf({value:se,formatter:m})}});const V=M(null),W=w(()=>Array.from(y.value).findIndex(se=>se.getAttribute("data-reka-date-field-segment")===V.value?.getAttribute("data-reka-date-field-segment"))),N=w(()=>{const se=v.value==="rtl"?-1:1;return(se<0?W.value<0:W.value>y.value.size-1)?null:Array.from(y.value)[W.value+se]}),Q=w(()=>{const se=v.value==="rtl"?-1:1;return(se>0?W.value<0:W.value>y.value.size-1)?null:Array.from(y.value)[W.value-se]}),ne=w(()=>Wh(J.value)),ie=w(()=>yi(x.value,J.value)),te=w(()=>a.maxValue?yi(a.maxValue,J.value):void 0),oe=w(()=>a.minValue?yi(a.minValue,J.value):void 0),le=Or();function re(se){se.isComposing||Dn(se.key)&&(se.key===le.ARROW_LEFT&&Q.value?.focus(),se.key===le.ARROW_RIGHT&&N.value?.focus())}function we(se){V.value=se}return hC({isDateUnavailable:s.value,locale:p,modelValue:x,placeholder:A,disabled:l,formatter:m,hourCycle:a.hourCycle,step:L,readonly:o,segmentValues:k,isInvalid:z,segmentContents:D,elements:y,setFocusedElement:we,focusNext(){N.value?.focus()}}),t({setFocusedElement:we}),(se,Ce)=>(h(),U(u(Ye),Le(se.$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":z.value?"":void 0,dir:u(v),onKeydown:yr(re,["left","right"])}),{default:B(()=>[he(se.$slots,"default",{modelValue:u(x),segments:G.value,isInvalid:z.value}),H(u(rm),{id:se.id,as:"input",type:ne.value,feature:"focusable",tabindex:"-1",value:ie.value,name:se.name,disabled:u(l),required:se.required,max:te.value,min:oe.value,onFocus:Ce[0]||(Ce[0]=fe=>Array.from(y.value)?.[0]?.focus())},null,8,["id","type","value","name","disabled","required","max","min"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),yC=mC,gC=ee({__name:"DateFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=vC(),a=M(!0),r=M(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:s,handleSegmentCompositionStart:i,handleSegmentCompositionEnd:c,attributes:d}=km({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=w(()=>n.disabled.value),p=w(()=>n.readonly.value),v=w(()=>n.isInvalid.value);return(m,g)=>(h(),U(u(Ye),Le({as:m.as,"as-child":m.asChild},u(d),{contenteditable:f.value||p.value?!1:m.part!=="literal","data-reka-date-field-segment":m.part,"aria-disabled":f.value?!0:void 0,"aria-readonly":p.value?!0:void 0,"data-disabled":f.value?"":void 0,"data-invalid":v.value?"":void 0,"aria-invalid":v.value?!0:void 0},ev(m.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(s),compositionstart:u(i),compositionend:u(c),focusout:()=>{a.value=!0},focusin:_=>{u(n).setFocusedElement(_.target)}}:{})),{default:B(()=>[he(m.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-date-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),bC=gC;const[Bl,_C]=xt("PopoverRoot");var xC=ee({__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}=Lt(n),l=bt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0});return _C({contentId:"",triggerId:"",modal:r,open:l,onOpenChange:i=>{l.value=i},onOpenToggle:()=>{l.value=!l.value},triggerElement:M(),hasCustomAnchor:M(!1)}),(i,c)=>(h(),U(u(om),null,{default:B(()=>[he(i.$slots,"default",{open:u(l),close:()=>l.value=!1})]),_:3}))}}),wC=xC;const[$c,kC]=xt("DatePickerRoot");var $C=ee({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:s,weekdayFormat:i,fixedWeeks:c,numberOfMonths:d,preventDeselect:f,isDateDisabled:p,isDateUnavailable:v,defaultOpen:m,modal:g,id:_,name:y,required:x,minValue:S,maxValue:A,granularity:L,hideTimeZone:J,hourCycle:z,defaultValue:K,dir:k,step:F,closeOnSelect:G}=Lt(n),D=Na(k),V=$s(r),W=w(()=>n.weekStartsOn??Gh(V.value)),N=bt(n,"modelValue",a,{defaultValue:K.value,passive:n.modelValue===void 0}),Q=w(()=>uc({defaultPlaceholder:n.placeholder,granularity:n.granularity,defaultValue:N.value,locale:V.value})),ne=bt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??Q.value.copy(),passive:n.placeholder===void 0}),ie=bt(n,"open",a,{defaultValue:m.value,passive:n.open===void 0}),te=M();function oe(le){return"hour"in le?le.set({hour:0,minute:0,second:0,millisecond:0}):le}return Be(N,le=>{le&&le.compare(ne.value)!==0?ne.value=le.copy():!le&&"hour"in ne.value&&(ne.value=oe(ne.value)),G.value&&(ie.value=!1)}),kC({isDateUnavailable:v.value,isDateDisabled:p.value,locale:V,disabled:l,pagedNavigation:s,weekStartsOn:W,weekdayFormat:i,fixedWeeks:c,numberOfMonths:d,readonly:o,preventDeselect:f,modelValue:N,placeholder:ne,defaultOpen:m,modal:g,open:ie,id:_,name:y,required:x,minValue:S,maxValue:A,granularity:L,hideTimeZone:J,hourCycle:z,dateFieldRef:te,dir:D,step:F,onDateChange(le){le?N.value&&!f.value&&le&&N.value.compare(le)===0?N.value=void 0:N.value=le.copy():N.value=void 0},onPlaceholderChange(le){ne.value=le.copy()},closeOnSelect:G}),(le,re)=>(h(),U(u(wC),{open:u(ie),"onUpdate:open":re[0]||(re[0]=we=>ot(ie)?ie.value=we:null),"default-open":u(m),modal:u(g)},{default:B(()=>[he(le.$slots,"default")]),_:3},8,["open","default-open","modal"]))}}),CC=$C,SC=ee({__name:"DatePickerCalendar",setup(e){const t=$c();return(n,a)=>(h(),U(u(g2),Le({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(dr)(r,u(t).modelValue.value)||u(t).onDateChange(r)}),"onUpdate:placeholder":a[1]||(a[1]=r=>{u(dr)(r,u(t).placeholder.value)||u(t).onPlaceholderChange(r)})}),{default:B(({weekDays:r,grid:l,date:o,weekStartsOn:s,locale:i,fixedWeeks:c})=>[he(n.$slots,"default",{date:o,grid:l,weekDays:r,weekStartsOn:s,locale:i,fixedWeeks:c})]),_:3},16,["model-value","placeholder"]))}}),EC=SC,AC=ee({__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)=>(h(),U(u(_2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),DC=AC,PC=ee({__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)=>(h(),U(u(w2),He(Ge(t)),{default:B(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),OC=PC,MC=ee({__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=Jh(dx(n,"trapFocus","disableOutsidePointerEvents")),{forwardRef:l}=Ke(),o=Bl();return Yh(),(s,i)=>(h(),U(u(pc),{"as-child":"",loop:"",trapped:s.trapFocus,onMountAutoFocus:i[5]||(i[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:i[6]||(i[6]=c=>a("closeAutoFocus",c))},{default:B(()=>[H(u(fc),{"as-child":"","disable-outside-pointer-events":s.disableOutsidePointerEvents,onPointerDownOutside:i[0]||(i[0]=c=>a("pointerDownOutside",c)),onInteractOutside:i[1]||(i[1]=c=>a("interactOutside",c)),onEscapeKeyDown:i[2]||(i[2]=c=>a("escapeKeyDown",c)),onFocusOutside:i[3]||(i[3]=c=>a("focusOutside",c)),onDismiss:i[4]||(i[4]=c=>u(o).onOpenChange(!1))},{default:B(()=>[H(u(bm),Le(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(()=>[he(s.$slots,"default")]),_:3},16,["id","data-state","aria-labelledby"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),Sm=MC,TC=ee({__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=Bl(),l=M(!1);Zu(!0);const o=Gn(n,a),{forwardRef:s,currentElement:i}=Ke();return dc(i),(c,d)=>(h(),U(Sm,Le(u(o),{ref:u(s),"trap-focus":u(r).open.value,"disable-outside-pointer-events":"",onCloseAutoFocus:d[0]||(d[0]=pt(f=>{a("closeAutoFocus",f),l.value||u(r).triggerElement.value?.focus()},["prevent"])),onPointerDownOutside:d[1]||(d[1]=f=>{a("pointerDownOutside",f);const p=f.detail.originalEvent,v=p.button===0&&p.ctrlKey===!0,m=p.button===2||v;l.value=m}),onFocusOutside:d[2]||(d[2]=pt(()=>{},["prevent"]))}),{default:B(()=>[he(c.$slots,"default")]),_:3},16,["trap-focus"]))}}),RC=TC,qC=ee({__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=Bl(),l=M(!1),o=M(!1),s=Gn(n,a);return(i,c)=>(h(),U(Sm,Le(u(s),{"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(()=>[he(i.$slots,"default")]),_:3},16))}}),IC=qC,FC=ee({__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=Bl(),l=Gn(n,a),{forwardRef:o}=Ke();return r.contentId||=$r(void 0,"reka-popover-content"),(s,i)=>(h(),U(u(Cs),{present:s.forceMount||u(r).open.value},{default:B(()=>[u(r).modal.value?(h(),U(RC,Le({key:0},u(l),{ref:u(o)}),{default:B(()=>[he(s.$slots,"default")]),_:3},16)):(h(),U(IC,Le({key:1},u(l),{ref:u(o)}),{default:B(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),BC=FC,NC=ee({__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)=>(h(),U(u(Ss),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),VC=NC,LC=ee({__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=w(()=>({...n,portal:void 0})),l=Gn(r,a);return(o,s)=>(h(),U(u(VC),He(Ge(o.portal)),{default:B(()=>[H(u(BC),Le({...u(l),...o.$attrs},{onOpenAutoFocus:s[0]||(s[0]=i=>{a("openAutoFocus",i),!i.defaultPrevented&&i.target&&(u(Kh)(i.target),i.preventDefault())})}),{default:B(()=>[he(o.$slots,"default")]),_:3},16)]),_:3},16))}}),jC=LC,UC=ee({__name:"DatePickerField",setup(e){const t=$c();return(n,a)=>(h(),U(u(yC),Le({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})=>[he(n.$slots,"default",{segments:r,modelValue:l})]),_:3},16,["model-value","placeholder"]))}}),zC=UC,HC=ee({__name:"DatePickerGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u($2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),KC=HC,WC=ee({__name:"DatePickerGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(S2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),GC=WC,YC=ee({__name:"DatePickerGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(A2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),JC=YC,ZC=ee({__name:"DatePickerGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(P2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),Gf=ZC,QC=ee({__name:"DatePickerHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(M2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),XC=QC,eS=ee({__name:"DatePickerHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(R2),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),tS=eS,nS=ee({__name:"DatePickerHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),U(u(I2),He(Ge(t)),{default:B(({headingValue:r})=>[he(n.$slots,"default",{headingValue:r},()=>[$e(T(r),1)])]),_:3},16))}}),aS=nS,rS=ee({__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)=>(h(),U(u(bC),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),lS=rS,oS=ee({__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)=>(h(),U(u(B2),He(Ge(t)),{default:B(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),sS=oS,iS=ee({__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)=>(h(),U(u(V2),He(Ge(t)),{default:B(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),uS=iS,cS=ee({__name:"PopoverTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=Bl(),{forwardRef:a,currentElement:r}=Ke();return n.triggerId||=$r(void 0,"reka-popover-trigger"),_t(()=>{n.triggerElement.value=r.value}),(l,o)=>(h(),U(bn(u(n).hasCustomAnchor.value?u(Ye):u(sm)),{"as-child":""},{default:B(()=>[H(u(Ye),{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(()=>[he(l.$slots,"default")]),_:3},8,["id","type","aria-expanded","aria-controls","data-state","as","as-child","onClick"])]),_:3}))}}),dS=cS,fS=ee({__name:"DatePickerTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=$c();return(a,r)=>(h(),U(u(dS),Le({"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(()=>[he(a.$slots,"default")]),_:3},16,["disabled"]))}}),pS=fS;const[Em,vS]=xt("DropdownMenuRoot");var hS=ee({__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;Ke();const r=bt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=M(),{modal:o,dir:s}=Lt(n),i=Na(s);return vS({open:r,onOpenChange:c=>{r.value=c},onOpenToggle:()=>{r.value=!r.value},triggerId:"",triggerElement:l,contentId:"",modal:o,dir:i}),(c,d)=>(h(),U(u(Z2),{open:u(r),"onUpdate:open":d[0]||(d[0]=f=>ot(r)?r.value=f:null),dir:u(i),modal:u(o)},{default:B(()=>[he(c.$slots,"default",{open:u(r)})]),_:3},8,["open","dir","modal"]))}}),Am=hS,mS=ee({__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=Gn(e,t);Ke();const l=Em(),o=M(!1);function s(i){i.defaultPrevented||(o.value||setTimeout(()=>{l.triggerElement.value?.focus()},0),o.value=!1,i.preventDefault())}return l.contentId||=$r(void 0,"reka-dropdown-menu-content"),(i,c)=>(h(),U(u(uC),Le(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:s,onInteractOutside:c[0]||(c[0]=d=>{if(d.defaultPrevented)return;const f=d.detail.originalEvent,p=f.button===0&&f.ctrlKey===!0,v=f.button===2||p;(!u(l).modal.value||v)&&(o.value=!0),u(l).triggerElement.value?.contains(d.target)&&d.preventDefault()})}),{default:B(()=>[he(i.$slots,"default")]),_:3},16,["id","aria-labelledby"]))}}),Dm=mS,yS=ee({__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=Pr(t);return Ke(),(l,o)=>(h(),U(u(aC),He(Ge({...n,...u(r)})),{default:B(()=>[he(l.$slots,"default")]),_:3},16))}}),Pm=yS,gS=ee({__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)=>(h(),U(u(dC),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),Om=gS,bS=ee({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return Ke(),(n,a)=>(h(),U(u(pC),He(Ge(t)),{default:B(()=>[he(n.$slots,"default")]),_:3},16))}}),_S=bS,xS=ee({__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=Em(),{forwardRef:a,currentElement:r}=Ke();return _t(()=>{n.triggerElement=r}),n.triggerId||=$r(void 0,"reka-dropdown-menu-trigger"),(l,o)=>(h(),U(u(H2),{"as-child":""},{default:B(()=>[H(u(Ye),{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 s=>{!l.disabled&&s.button===0&&s.ctrlKey===!1&&(u(n)?.onOpenToggle(),await ze(),u(n).open.value&&s.preventDefault())}),onKeydown:o[1]||(o[1]=yr(s=>{l.disabled||(["Enter"," "].includes(s.key)&&u(n).onOpenToggle(),s.key==="ArrowDown"&&u(n).onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())},["enter","space","arrow-down"]))},{default:B(()=>[he(l.$slots,"default")]),_:3},8,["id","type","as-child","as","aria-expanded","aria-controls","data-disabled","disabled","data-state"])]),_:3}))}}),Mm=xS;const wl=100,[wS,kS]=xt("ProgressRoot"),Vo=e=>typeof e=="number";function $S(e,t){return vn(e)||Vo(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 ${wl} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`),null)}function CS(e){return Vo(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 \`${wl}\`.`),wl)}var SS=ee({__name:"ProgressRoot",props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:wl},getValueLabel:{type:Function,required:!1,default:(e,t)=>Vo(e)?`${Math.round(e/t*wl)}%`: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;Ke();const r=bt(n,"modelValue",a,{passive:n.modelValue===void 0}),l=bt(n,"max",a,{passive:n.max===void 0});Be(()=>r.value,async s=>{const i=$S(s,n.max);i!==s&&(await ze(),r.value=i)},{immediate:!0}),Be(()=>n.max,s=>{const i=CS(n.max);i!==s&&(l.value=i)},{immediate:!0});const o=w(()=>vn(r.value)?"indeterminate":r.value===l.value?"complete":"loading");return kS({modelValue:r,max:l,progressState:o}),(s,i)=>(h(),U(u(Ye),{"as-child":s.asChild,as:s.as,"aria-valuemax":u(l),"aria-valuemin":0,"aria-valuenow":Vo(u(r))?u(r):void 0,"aria-valuetext":s.getValueText?.(u(r),u(l)),"aria-label":s.getValueLabel(u(r),u(l)),role:"progressbar","data-state":o.value,"data-value":u(r)??void 0,"data-max":u(l)},{default:B(()=>[he(s.$slots,"default",{modelValue:u(r)})]),_:3},8,["as-child","as","aria-valuemax","aria-valuenow","aria-valuetext","aria-label","data-state","data-value","data-max"]))}}),Ei=SS,ES=ee({__name:"ProgressIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=wS();return Ke(),(a,r)=>(h(),U(u(Ye),Le(t,{"data-state":u(n).progressState.value,"data-value":u(n).modelValue?.value??void 0,"data-max":u(n).max.value}),{default:B(()=>[he(a.$slots,"default")]),_:3},16,["data-state","data-value","data-max"]))}}),Ai=ES;const[AS,DS]=xt("TimeFieldRoot");function no(e,t=Tl(rn())){return e&&"day"in e?e:xn(t,e)}var PS=ee({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:s,defaultValue:i,minValue:c,maxValue:d,stepSnapping:f,dir:p,locale:v}=Lt(a),m=$s(v),g=Na(p),_=cc(m.value,{hourCycle:gl(a.hourCycle)}),{primitiveElement:y,currentElement:x}=Cr(),S=M(new Set),A=w(()=>Hh(a)),L=w(()=>c.value?no(c.value):void 0),J=w(()=>d.value?no(d.value):void 0);_t(()=>{Wf(x.value).forEach(fe=>S.value.add(fe))});const z=bt(a,"modelValue",r,{defaultValue:i.value,passive:a.modelValue===void 0}),K=w({get(){return vn(z.value)?z.value:no(z.value)},set(fe){return fe?z.value=z.value&&"day"in z.value?fe:new hn(fe.hour,fe.minute,fe.second,z.value?.millisecond):z.value=fe,fe}}),k=gw({defaultPlaceholder:a.placeholder,defaultValue:z.value}),F=bt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??k.copy(),passive:a.placeholder===void 0}),G=w({get(){return no(F.value)},set(fe){return fe&&(F.value="day"in F.value?fe.copy():new hn(fe.hour,fe.minute,fe.second,F.value?.millisecond)),fe}}),D=w(()=>s.value?s.value:"minute"),V=w(()=>z.value?!!(L.value&&ia(K.value,L.value)||J.value&&ia(J.value,K.value)):!1),W=K$(D.value),N=M(z.value?{...gu({value:K.value,formatter:_})}:{...W}),Q=w(()=>wm({granularity:D.value,dateRef:G.value,formatter:_,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:N.value,locale:m,isTimeValue:!0})),ne=w(()=>{const fe=Q.value.arr;return a.hourCycle===12?fe.map(Z=>{if(Z.part==="hour"&&"hour"in N.value){const pe=N.value.hour;if(pe!==null){const X=pe===0?12:pe>12?pe-12:pe;return{...Z,value:X.toString()}}}return Z}):fe}),ie=w(()=>ne.value.filter(({part:fe})=>fe!=="literal"));Be(m,fe=>{_.getLocale()!==fe&&(_.setLocale(fe),ze(()=>{S.value.clear(),Wf(x.value).forEach(Z=>S.value.add(Z))}))}),Be(K,fe=>{!vn(fe)&&(!dr(G.value,fe)||G.value.compare(fe)!==0)&&(F.value=fe.copy())}),Be([K,m],([fe])=>{vn(fe)?Object.values(N.value).every(Z=>Z!==null)&&vn(fe)&&(N.value={...W}):N.value={...gu({value:fe,formatter:_})}});const te=M(null),oe=w(()=>Array.from(S.value).findIndex(fe=>fe.getAttribute("data-reka-time-field-segment")===te.value?.getAttribute("data-reka-time-field-segment"))),le=w(()=>{const fe=g.value==="rtl"?-1:1;return(fe<0?oe.value<0:oe.value>S.value.size-1)?null:Array.from(S.value)[oe.value+fe]}),re=w(()=>{const fe=g.value==="rtl"?-1:1;return(fe>0?oe.value<0:oe.value>S.value.size-1)?null:Array.from(S.value)[oe.value-fe]}),we=Or();function se(fe){fe.isComposing||Dn(fe.key)&&(fe.key===we.ARROW_LEFT&&re.value?.focus(),fe.key===we.ARROW_RIGHT&&le.value?.focus())}function Ce(fe){te.value=fe}return DS({locale:m,modelValue:K,placeholder:G,disabled:l,formatter:_,hourCycle:a.hourCycle,step:A,stepSnapping:f,readonly:o,segmentValues:N,isInvalid:V,segmentContents:ie,elements:S,setFocusedElement:Ce,focusNext(){le.value?.focus()}}),t({setFocusedElement:Ce}),(fe,Z)=>(h(),U(u(Ye),Le(fe.$attrs,{ref_key:"primitiveElement",ref:y,role:"group","aria-disabled":u(l)?!0:void 0,"data-disabled":u(l)?"":void 0,"data-readonly":u(o)?"":void 0,"data-invalid":V.value?"":void 0,dir:u(g),onKeydown:yr(se,["left","right"])}),{default:B(()=>[he(fe.$slots,"default",{modelValue:u(z),segments:ne.value,isInvalid:V.value}),H(u(rm),{id:fe.id,as:"input",feature:"focusable",tabindex:"-1",value:u(z)?u(z).toString():"",name:fe.name,disabled:u(l),required:fe.required,onFocus:Z[0]||(Z[0]=pe=>Array.from(S.value)?.[0]?.focus())},null,8,["id","value","name","disabled","required"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),Yf=PS,OS=ee({__name:"TimeFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=AS(),a=M(!0),r=M(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:s,handleSegmentCompositionStart:i,handleSegmentCompositionEnd:c,handleSegmentFocusOut:d,attributes:f}=km({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}),p=w(()=>n.disabled.value),v=w(()=>n.readonly.value),m=w(()=>n.isInvalid.value);return(g,_)=>(h(),U(u(Ye),Le({as:g.as,"as-child":g.asChild},u(f),{contenteditable:p.value||v.value?!1:g.part!=="literal","data-reka-time-field-segment":g.part,"aria-disabled":p.value?!0:void 0,"aria-readonly":v.value?!0:void 0,"data-disabled":p.value?"":void 0,"data-invalid":m.value?"":void 0,"aria-invalid":m.value?!0:void 0},ev(g.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(s),compositionstart:u(i),compositionend:u(c),focusout:()=>{a.value=!0,u(d)()},focusin:y=>{u(n).setFocusedElement(y.target)}}:{})),{default:B(()=>[he(g.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-time-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),Jf=OS;const Lo=M(null),Tm=M(null);let sl=null;function Rm(e){qm(),Tm.value=e,!(e===null||e<=0)&&(sl=setTimeout(()=>{sl=null,Uu()},e*800))}function qm(){sl!==null&&(clearTimeout(sl),sl=null)}k_(Rm);const rr=dt(Lo);async function MS(e,t){const{data:n,response:a}=await Oe.POST("/auth/login",{body:{login:e,password:t}});return!a.ok||!n?!1:(Rm(typeof n.data.expires_in=="number"?n.data.expires_in:null),!0)}async function Im(){const{data:e,response:t}=await Oe.GET("/auth/me");return Lo.value=t.ok&&e?e.data:null,Lo.value}function Fm(){qm(),Lo.value=null,Tm.value=null}async function TS(e){try{await Oe.POST("/auth/logout")}catch{}finally{Fm(),O_([]),R_([])}e&&await e.replace({name:"login"}).catch(()=>{})}const RS={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":""},qS={class:"flex flex-col leading-tight max-[1099px]:hidden","data-user-identity":""},IS={class:"font-semibold"},FS={key:0,class:"text-[12px] text-muted","data-user-role":""},BS={class:"flex items-center gap-3 px-2 py-2"},NS={class:"flex size-10 shrink-0 items-center justify-center rounded-full bg-accent text-[14px] font-bold text-on-accent","aria-hidden":"true"},VS={class:"flex min-w-0 flex-col leading-tight"},LS={class:"truncate font-bold"},jS={class:"truncate text-[13px] text-muted"},US=ee({__name:"UserMenu",setup(e){const t=Ar(),n=w(()=>{const o=rr.value;if(!o)return"";const s=`${o.first_name} ${o.last_name}`.trim();return s===""?o.login:s}),a=w(()=>{const o=rr.value;if(!o)return"";const s=[o.first_name,o.last_name].map(i=>i.trim()).filter(Boolean);return s.length>0?s.slice(0,2).map(i=>i.charAt(0).toUpperCase()).join(""):o.login.slice(0,2).toUpperCase()}),r=w(()=>rr.value?.role?.name??"");async function l(){await TS(t)}return(o,s)=>(h(),U(u(Am),{modal:!1},{default:B(()=>[H(u(Mm),{"data-user-menu":"",disabled:!u(rr),"aria-label":`${u(P)("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(()=>[O("span",RS,T(a.value),1),O("span",qS,[O("span",IS,T(n.value),1),r.value?(h(),$("span",FS,T(r.value),1)):ae("",!0)]),H(u(Dl),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled","aria-label"]),H(u(Om),null,{default:B(()=>[H(u(Dm),{"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(()=>[O("div",BS,[O("span",NS,T(a.value),1),O("span",VS,[O("span",LS,T(n.value),1),O("span",jS,T(u(rr)?.email),1)])]),H(u(_S),{class:"my-1 h-px bg-border"}),H(u(Pm),{"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:l},{default:B(()=>[H(u(Hv),{size:18,"aria-hidden":"true"}),O("span",null,T(u(P)("backend::lang.auth.logout")),1)]),_:1})]),_:1})]),_:1})]),_:1}))}}),zS=4e3,kl=M([]),bu=new Map;let HS=1;const KS=dt(kl);function Pe(e,t="success"){const n=HS++;return kl.value=[{id:n,text:e,tone:t},...kl.value],bu.set(n,setTimeout(()=>Bm(n),zS)),n}function Bm(e){const t=bu.get(e);t!==void 0&&(clearTimeout(t),bu.delete(e)),kl.value=kl.value.filter(n=>n.id!==e)}const WS=["role","data-tone"],GS={class:"font-medium"},YS=["aria-label","onClick"],JS=ee({__name:"Toast",setup(e){return(t,n)=>(h(),U(Sb,{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(()=>[(h(!0),$(_e,null,Ne(u(KS),a=>(h(),$("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"},[O("span",{class:xe([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"?(h(),U(u(Bt),{key:0,size:16})):(h(),U(u(_r),{key:1,size:16}))],2),O("span",GS,T(a.text),1),O("button",{type:"button","aria-label":u(P)("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(Bm)(a.id)},[H(u(Wt),{size:16,"aria-hidden":"true"})],8,YS)],8,WS))),128))]),_:1}))}}),ZS={class:"flex min-h-screen bg-bg text-text"},QS={class:"flex min-w-0 flex-1 flex-col"},XS={class:"flex h-header shrink-0 items-center justify-between gap-4 border-b border-border bg-surface pr-6 pl-8"},e3={class:"min-w-0 flex-1 px-8 py-7"},t3=ee({__name:"AppShell",setup(e){const t=an(),{collapsed:n,watchViewport:a}=uh(),r=a();qt(r);const l=w(()=>ys(String(t.params.vendor??""),String(t.params.plugin??"")));return(o,s)=>(h(),$("div",ZS,[H(K_),l.value&&!u(n)?(h(),U(Z_,{key:0,entry:l.value},null,8,["entry"])):ae("",!0),O("div",QS,[O("header",XS,[H(tx),H(US)]),O("main",e3,[he(o.$slots,"default")])]),H(JS)]))}}),n3=ee({__name:"App",setup(e){const t=an(),n=w(()=>t.meta.shell===!0);return(a,r)=>n.value?(h(),U(t3,{key:0},{default:B(()=>[H(u(eu),null,{default:B(({Component:l,route:o})=>[(h(),U(bn(l),{key:o.path}))]),_:1})]),_:1})):(h(),U(u(eu),{key:1}))}}),a3="data-summer-controller",Di=new Map,_u=new Map;let xu="";function Nm(){return`${ps.base}/assets/`}function Vm(e){if(!e.startsWith(Nm())||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 r3(e){if(!Vm(e))return Promise.reject(new Error(`plugin script outside ${Nm()}: ${e}`));const t=Di.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",()=>{Di.delete(e),l.remove(),r(new Error(`plugin script failed to load: ${e}`))},{once:!0}),l.src=e,document.head.appendChild(l)});return Di.set(e,n),n}function l3(e,t){for(const n of t){const a=`${e} -${n}`;if(!Vm(n)||_u.has(a))continue;const r=document.createElement("link");r.rel="stylesheet",r.setAttribute(a3,e),r.disabled=e!==xu,r.href=n,_u.set(a,{owner:e,link:r}),document.head.appendChild(r)}}function o3(e){xu=e;for(const{owner:t,link:n}of _u.values())n.disabled=t!==xu}async function Cc(e,t){l3(e,t?.styles??[]);const n=t?.scripts??[],a=await Promise.allSettled(n.map(r=>r3(r)));return n.filter((r,l)=>a[l]?.status==="rejected")}const s3={class:"flex min-h-screen items-center justify-center px-4",style:{background:"radial-gradient(ellipse at 50% 35%, #2b3a5c 0%, #1d2740 60%)"}},i3={class:"flex w-full max-w-[400px] flex-col gap-6"},u3={class:"flex items-center justify-center gap-3"},c3={class:"flex size-[34px] items-center justify-center rounded-full bg-accent-soft"},d3={class:"text-[22px] font-bold tracking-[-0.02em]"},f3={class:"flex flex-col gap-1.5"},p3={class:"font-semibold"},v3={class:"flex flex-col gap-1.5"},h3={class:"font-semibold"},m3=["aria-invalid"],y3={key:0,role:"alert",class:"flex items-center gap-2.5 rounded-control bg-[#fdf0f0] px-3.5 py-3 text-[#c62828]"},g3=["disabled"],b3=ee({__name:"LoginView",setup(e){const t=an(),n=Ar(),a=M(""),r=M(""),l=M(!1),o=M(!1);async function s(){if(!o.value){o.value=!0,l.value=!1;try{if(!await MS(a.value.trim(),r.value)||!await Im()){l.value=!0;return}r.value="",await Promise.all([rh(),lh().catch(()=>[])]),await n.replace(ny(t.query.redirect)??"/")}finally{o.value=!1}}}return(i,c)=>(h(),$("main",s3,[O("div",i3,[O("div",u3,[O("span",c3,[H(u(ju),{size:20,class:"text-accent","aria-hidden":"true"})]),c[2]||(c[2]=O("span",{class:"text-[18px] font-bold text-white"},[$e("Summer"),O("span",{class:"text-accent"},"CMS")],-1))]),O("form",{class:"flex flex-col gap-[18px] rounded-card bg-white p-8 text-[#141b2d] shadow-login",novalidate:"",onSubmit:pt(s,["prevent"])},[O("h1",d3,T(u(P)("backend::lang.auth.title")),1),O("label",f3,[O("span",p3,T(u(P)("backend::lang.auth.login")),1),Ra(O("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),[[Eo,a.value]])]),O("label",v3,[O("span",h3,T(u(P)("backend::lang.auth.password")),1),Ra(O("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:xe([l.value?"border-[#c62828]":"border-[#d2d8e2]","h-input rounded-control border bg-white px-3.5"])},null,10,m3),[[Eo,r.value]])]),l.value?(h(),$("div",y3,[H(u(Bt),{size:18,"aria-hidden":"true"}),O("span",null,T(u(P)("backend::lang.auth.invalid")),1)])):ae("",!0),O("button",{type:"submit",disabled:o.value,class:"h-input rounded-control bg-[#22304d] font-semibold text-white disabled:opacity-60"},T(u(P)("backend::lang.auth.submit")),9,g3)],32)])]))}}),_3=/^filter\[(.+)\]$/,x3=/^[1-9]\d*$/;function Ja(e){const t=Array.isArray(e)?e[e.length-1]:e;return typeof t=="string"?t:""}function Zf(e){return x3.test(e)?Number(e):void 0}function w3(e){const t={},n=Ja(e.search).trim();n!==""&&(t.search=n);const a=Ja(e.sort).trim();if(a!==""){t.sort=a;const s=Ja(e.dir);t.dir=s==="desc"?"desc":"asc"}const r=Zf(Ja(e.page));r!==void 0&&(t.page=r);const l=Zf(Ja(e.per_page));l!==void 0&&(t.per_page=l);const o={};for(const s of Object.keys(e).sort()){const i=_3.exec(s)?.[1],c=Ja(e[s]);i&&c!==""&&(o[i]=c)}return Object.keys(o).length>0&&(t.filter=o),t}function Lm(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 k3(e){return JSON.stringify(Lm(e))}const Qf=/^\d+$/;function jm(e,t,n){const a=hs(t),r=Un(t);if(!a||!r)return"/";const o=((e??"").trim().split(/[?#]/,1)[0]??"").split("/").filter(d=>d!==""),s=[a.vendor,a.plugin,a.controller];if(!s.every((d,f)=>o[f]?.toLowerCase()===d.toLowerCase()))return r;const c=o.slice(s.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 Qf.test(d)?`${r}/${d}`:r}if(c.length===2&&c[0]==="preview"){const d=c[1]===":id"?String(n??""):c[1]??"";return Qf.test(d)?`${r}/${d}/preview`:r}return r}const $3={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"},C3={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"},S3={key:1,class:"text-muted","data-empty":""},E3={key:2,class:"text-[13px] text-muted tabular-nums"},Za=ee({__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(p=>p!=="").join(", "):typeof f=="boolean"?P(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 p=new Date(f);return Number.isNaN(p.getTime())?String(f):`${p.getFullYear()}-${r(p.getMonth()+1)}-${r(p.getDate())} ${r(p.getHours())}:${r(p.getMinutes())}`}function o(f){if(typeof f!="string")return"";const p=/^\d{4}-\d{2}-\d{2}/.exec(f.trim());return p?p[0]:f.trim()}function s(f){if(typeof f!="string")return"";const p=/(\d{2}):(\d{2})/.exec(f);return p?`${p[1]}:${p[2]}`:f.trim()}function i(f){return typeof f=="string"?f!==""&&f!=="0"&&f.toLowerCase()!=="false":!!f}const c=w(()=>t.column.type==="switch"?"switch":t.column.type==="datetime"?"datetime":t.column.type==="date"?"date":t.column.type==="time"?"time":"text"),d=w(()=>{switch(c.value){case"datetime":return l(t.value);case"date":return o(t.value);case"time":return s(t.value);default:return a(t.value)}});return(f,p)=>c.value==="switch"&&!n(e.value)?(h(),$(_e,{key:0},[i(e.value)?(h(),$("span",$3,[H(u(Uv),{size:14,"aria-hidden":"true"}),$e(T(u(P)("backend::lang.list.column_switch_true")),1)])):(h(),$("span",C3,T(u(P)("backend::lang.list.column_switch_false")),1))],64)):d.value===""?(h(),$("span",S3,"—")):c.value==="datetime"||c.value==="date"||c.value==="time"?(h(),$("span",E3,T(d.value),1)):(h(),$(_e,{key:3},[$e(T(d.value),1)],64))}}),A3={key:0,class:"flex shrink-0 gap-2"},D3=["data-row-state"],P3=ee({__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=w(()=>a.filter(l=>t.states.includes(l)));return(l,o)=>r.value.length>0?(h(),$("span",A3,[(h(!0),$(_e,null,Ne(r.value,s=>(h(),$("span",{key:s,"data-row-state":s,class:xe([n[s],"inline-flex h-6 shrink-0 items-center rounded-pill px-2.5 text-[12px] font-semibold whitespace-nowrap"])},T(e.labels[s]??s),11,D3))),128))])):ae("",!0)}}),O3={class:"overflow-x-auto"},M3={class:"sticky top-0 z-10"},T3={class:"h-row-head border-y border-border bg-subtle"},R3={key:0,scope:"col","data-select":"",class:"w-[52px] pl-5"},q3=["aria-checked","aria-label","disabled"],I3=["aria-sort"],F3=["data-sort","onClick"],B3={key:1,class:"w-[56px] pr-5"},N3=["aria-busy"],V3={key:0,class:"pl-5"},L3={key:1,class:"pr-5"},j3={key:1},U3=["colspan"],z3={class:"text-muted"},H3=["aria-selected","data-row-states","onClick"],K3={key:0,"data-select":"",class:"pl-5"},W3=["aria-checked","aria-label","onClick"],G3={key:0,class:"flex items-center gap-3"},Y3={"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"},J3=["onClick"],Z3={key:1,class:"flex items-center gap-2"},Q3={key:1,"data-trailing":"",class:"w-[56px] pr-5"},Um=ee({__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=Ar();function l(D){const V=D.id;return typeof V=="number"||typeof V=="string"?V:null}function o(D,V){const W=l(D);return W===null?`row-${V}`:String(W)}function s(D){return n.rowLink?n.rowLink(D):null}function i(D,V){if(D.target?.closest("a, button, input, label, select"))return;if(n.openable){const Q=D.currentTarget?.querySelector("[data-row-open]")??null;a("open",V,Q);return}const N=s(V);N&&r.push(N)}const c=w(()=>n.rows.map(l).filter(D=>D!==null)),d=w(()=>new Set(n.selected.map(String))),f=w(()=>{const D=c.value,V=D.filter(W=>d.value.has(String(W))).length;return V===0?"false":V===D.length?"true":"mixed"});function p(D){const V=l(D);return V!==null&&d.value.has(String(V))}function v(){a("update:selected",f.value==="true"?[]:[...c.value])}function m(D){const V=l(D);V!==null&&(d.value.has(String(V))?a("update:selected",n.selected.filter(W=>String(W)!==String(V))):a("update:selected",[...n.selected,V]))}function g(D){if(n.sort?.column===D.key)return n.sort.dir==="desc"?"descending":"ascending"}function _(D){return n.sortable&&D.sortable}const y=w(()=>n.variant==="relation"),x=w(()=>y.value?"h-[56px]":"h-row"),S=w(()=>y.value?3:8);function A(D){return(typeof D=="string"||typeof D=="number"?String(D):"").split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(W=>W.charAt(0).toUpperCase()).join("")}const L=["deleted","negative","disabled"];function J(D){const V=l(D),W=V===null?void 0:n.rowStates[String(V)];return Array.isArray(W)?L.filter(N=>W.includes(N)):[]}function z(D,V,W=[]){const N=W.includes("deleted")||W.includes("disabled");return V===0?N?"font-semibold text-muted":"font-semibold":N||y.value||D.relation?"text-muted":""}function K(D){return["min-w-0 truncate",D.includes("deleted")?"line-through":"no-underline",D.includes("negative")?"text-danger":D.includes("deleted")||D.includes("disabled")?"text-muted":"text-text"]}const k=w(()=>Math.max(n.columns.length+(n.selectable?1:0)+(n.trailing?1:0),1));function F(D,V){a("open",V,D.currentTarget)}const G=["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(D,V)=>(h(),$("div",O3,[O("table",{class:xe([y.value?"min-w-[480px]":"min-w-[640px]","w-full border-collapse text-left"])},[O("thead",M3,[O("tr",T3,[e.selectable?(h(),$("th",R3,[O("button",{type:"button",role:"checkbox","aria-checked":f.value,"aria-label":u(P)("backend::lang.list.select_all"),disabled:e.loading||c.value.length===0,class:xe([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:v},[f.value==="mixed"?(h(),U(u(Kv),{key:0,size:14,"aria-hidden":"true"})):f.value==="true"?(h(),U(u(_r),{key:1,size:14,"aria-hidden":"true"})):ae("",!0)],10,q3)])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,W=>(h(),$("th",{key:W.key,scope:"col","aria-sort":_(W)?g(W)??"none":void 0,class:xe([g(W)?"text-text":"text-muted","px-3.5 text-[12px] font-semibold first:pl-5 last:pr-5"])},[_(W)?(h(),$("button",{key:0,type:"button","data-sort":W.key,class:"inline-flex items-center gap-1 font-semibold",onClick:N=>a("sort",W.key)},[$e(T(W.label)+" ",1),g(W)==="ascending"?(h(),U(u(zv),{key:0,size:14,"aria-hidden":"true"})):g(W)==="descending"?(h(),U(u(jv),{key:1,size:14,"aria-hidden":"true"})):ae("",!0)],8,F3)):(h(),$(_e,{key:1},[$e(T(W.label),1)],64))],10,I3))),128)),e.trailing?(h(),$("td",B3)):ae("",!0)])]),O("tbody",{"aria-busy":e.loading?"true":void 0},[e.loading?(h(!0),$(_e,{key:0},Ne(S.value,W=>(h(),$("tr",{key:`skeleton-${W}`,"data-skeleton":"",class:xe([x.value,"border-b border-border"])},[e.selectable?(h(),$("td",V3,[...V[0]||(V[0]=[O("span",{class:"block size-[18px] rounded-checkbox bg-skel"},null,-1)])])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,N=>(h(),$("td",{key:N.key,class:"px-3.5 first:pl-5 last:pr-5"},[O("span",{class:xe([G[(W-1)%G.length],"block h-3 rounded-[6px] bg-skel"])},null,2)]))),128)),e.trailing?(h(),$("td",L3)):ae("",!0)],2))),128)):e.rows.length===0?(h(),$("tr",j3,[O("td",{colspan:k.value,class:"px-5 py-20 text-center"},[he(D.$slots,"empty",{},()=>[O("span",z3,T(u(P)("backend::lang.list.no_records")),1)])],8,U3)])):(h(!0),$(_e,{key:2},Ne(e.rows,(W,N)=>(h(),$("tr",{key:o(W,N),class:xe([[x.value,p(W)?"bg-sel":s(W)||e.openable?"hover:bg-hover":"",s(W)||e.openable?"cursor-pointer":""],"border-b border-border transition-colors duration-150 ease-out"]),"aria-selected":e.selectable?p(W)?"true":"false":void 0,"data-row-states":J(W).length>0?J(W).join(" "):void 0,onClick:Q=>i(Q,W)},[e.selectable?(h(),$("td",K3,[O("button",{type:"button",role:"checkbox","aria-checked":p(W)?"true":"false","aria-label":u(P)("backend::lang.list.select_row"),class:xe([p(W)?"border-primary bg-primary text-on-primary":"border-border-strong bg-surface","flex size-[18px] items-center justify-center rounded-checkbox border"]),onClick:Q=>m(W)},[p(W)?(h(),U(u(_r),{key:0,size:14,"aria-hidden":"true"})):ae("",!0)],10,W3)])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,(Q,ne)=>(h(),$("td",{key:Q.key,class:xe([z(Q,ne,J(W)),"px-3.5 first:pl-5 last:pr-5"])},[y.value&&ne===0?(h(),$("span",G3,[O("span",Y3,T(A(W[Q.key])),1),e.openable?(h(),$("button",{key:0,type:"button","data-row-open":"",class:"min-w-0 truncate text-left font-semibold text-text",onClick:ie=>F(ie,W)},[H(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])],8,J3)):(h(),U(Za,{key:1,column:Q,value:W[Q.key]},null,8,["column","value"]))])):ne===0&&J(W).length>0?(h(),$("span",Z3,[s(W)?(h(),U(u(_n),{key:0,to:s(W),class:xe(K(J(W)))},{default:B(()=>[H(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])]),_:2},1032,["to","class"])):(h(),$("span",{key:1,class:xe(K(J(W)))},[H(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])],2)),H(P3,{states:J(W),labels:e.stateLabels},null,8,["states","labels"])])):ne===0&&s(W)?(h(),U(u(_n),{key:2,to:s(W),class:"text-text no-underline"},{default:B(()=>[H(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])]),_:2},1032,["to"])):(h(),U(Za,{key:3,column:Q,value:W[Q.key]},null,8,["column","value"]))],2))),128)),e.trailing?(h(),$("td",Q3,[he(D.$slots,"trailing",{row:W})])):ae("",!0)],10,H3))),128))],8,N3)],2)]))}}),X3=["aria-label"],eE={key:0,class:"flex flex-col gap-1 text-[13px]"},tE={class:"font-semibold text-muted"},nE=["data-filter","value","onChange"],aE=["value"],rE={key:1,class:"flex flex-col gap-1 text-[13px]"},lE={class:"mb-1 font-semibold text-muted"},oE={class:"flex items-center gap-2"},sE=["data-filter","aria-label","value","onChange"],iE=["data-filter","aria-label","value","onChange"],uE={key:2,class:"flex flex-col gap-1 text-[13px]"},cE={class:"font-semibold text-muted"},dE=["data-filter","value","onChange"],fE=["value"],jr="",ao="h-button rounded-control border border-border-strong bg-surface px-3 text-text",pE=ee({__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(v=>({value:JSON.stringify(v.value),label:v.label}));const p=[];return f.trueValue!==void 0&&p.push({value:JSON.stringify(f.trueValue),label:P("backend::lang.list.column_switch_true")}),f.falseValue!==void 0&&p.push({value:JSON.stringify(f.falseValue),label:P("backend::lang.list.column_switch_false")}),p}const l=M({});async function o(f){const{data:p}=await Oe.GET("/{vendor}/{plugin}/{controller}/filters/{scope}/options",{params:{path:{...n.source,scope:f.name}}});l.value={...l.value,[f.name]:p?.data??[]}}_t(()=>{for(const f of n.filters)f.type==="scope"&&o(f)});const s=Zt({});function i(){for(const f of n.filters){if(f.type!=="daterange")continue;const[p="",v=""]=(n.values[f.name]??"").split(".."),m=s[f.name];(!m||n.values[f.name]!==void 0||m.from!==""&&m.to!=="")&&(s[f.name]={from:p,to:v})}}Be(()=>n.values,i,{immediate:!0,deep:!0});function c(f,p,v){const m={...s[f.name]??{from:"",to:""},[p]:v};s[f.name]=m,m.from!==""&&m.to!==""?a("update",f.name,`${m.from}..${m.to}`):(m.from===""&&m.to===""||n.values[f.name]!==void 0)&&a("update",f.name,null)}function d(f,p){a("update",f.name,p===jr?null:p)}return(f,p)=>(h(),$("div",{role:"group","aria-label":u(P)("backend::lang.list.filters"),"data-filter-bar":"",class:"flex flex-wrap items-end gap-4 border-t border-border px-5 py-3.5"},[(h(!0),$(_e,null,Ne(e.filters,v=>(h(),$(_e,{key:v.name},[v.type==="switch"?(h(),$("label",eE,[O("span",tE,T(v.label||v.name),1),O("select",{"data-filter":v.name,value:e.values[v.name]??jr,class:xe(ao),onChange:m=>d(v,m.target.value)},[O("option",{value:jr},T(u(P)("backend::lang.list.filter_all")),1),(h(!0),$(_e,null,Ne(r(v),m=>(h(),$("option",{key:m.value,value:m.value},T(m.label),9,aE))),128))],40,nE)])):v.type==="daterange"?(h(),$("fieldset",rE,[O("legend",lE,T(v.label||v.name),1),O("div",oE,[O("input",{type:"date","data-filter":`${v.name}-from`,"aria-label":u(P)("backend::lang.list.filter_from"),value:s[v.name]?.from??"",class:xe(ao),onChange:m=>c(v,"from",m.target.value)},null,40,sE),p[0]||(p[0]=O("span",{"aria-hidden":"true"},"–",-1)),O("input",{type:"date","data-filter":`${v.name}-to`,"aria-label":u(P)("backend::lang.list.filter_to"),value:s[v.name]?.to??"",class:xe(ao),onChange:m=>c(v,"to",m.target.value)},null,40,iE)])])):v.type==="scope"?(h(),$("label",uE,[O("span",cE,T(v.label||v.name),1),(h(),$("select",{key:`${v.name}-${l.value[v.name]?.length??-1}`,"data-filter":v.name,value:e.values[v.name]??jr,class:xe(ao),onChange:m=>d(v,m.target.value)},[O("option",{value:jr},T(u(P)("backend::lang.list.filter_all")),1),(h(!0),$(_e,null,Ne(l.value[v.name]??[],m=>(h(),$("option",{key:m.value,value:m.value},T(m.label),9,fE))),128))],40,dE))])):ae("",!0)],64))),128))],8,X3))}}),vE=["type","disabled"],et=ee({__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=w(()=>["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?(h(),U(u(_n),{key:0,to:e.to,class:xe(a.value)},{default:B(()=>[e.icon?(h(),U(bn(e.icon),{key:0,size:16,"aria-hidden":"true"})):ae("",!0),he(r.$slots,"default")]),_:3},8,["to","class"])):(h(),$("button",{key:1,type:e.type,disabled:e.disabled,class:xe(a.value)},[e.icon?(h(),U(bn(e.icon),{key:0,size:16,"aria-hidden":"true"})):ae("",!0),he(r.$slots,"default")],10,vE))}}),hE=ee({__name:"BulkActionsMenu",props:{actions:{},disabled:{type:Boolean}},emits:["select"],setup(e,{expose:t,emit:n}){const a=n,r=M(null);function l(){const o=r.value?.$el;o instanceof HTMLElement&&o.focus()}return t({focus:l}),(o,s)=>(h(),U(u(Am),{modal:!1},{default:B(()=>[H(u(Mm),{"as-child":"",disabled:e.disabled},{default:B(()=>[H(et,{ref_key:"trigger",ref:r,variant:"outline",size:"md","data-action":"bulk-actions",disabled:e.disabled},{default:B(()=>[$e(T(u(P)("backend::lang.list.bulk_actions"))+" ",1),H(u(Dl),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled"])]),_:1},8,["disabled"]),H(u(Om),null,{default:B(()=>[H(u(Dm),{"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(()=>[(h(!0),$(_e,null,Ne(e.actions,i=>(h(),U(u(Pm),{key:i.name,"data-bulk-action":i.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",i.name)},{default:B(()=>[$e(T(i.label),1)]),_:2},1032,["data-bulk-action","onSelect"]))),128))]),_:1})]),_:1})]),_:1}))}}),mE={class:"flex flex-wrap items-center justify-between gap-3 px-5 py-4"},yE={key:0,class:"relative block w-[320px] max-w-full"},gE={class:"sr-only"},bE=["value","placeholder"],_E={key:1},xE={class:"flex flex-wrap items-center justify-end gap-2.5"},wE={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"},kE=ee({__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=w(()=>new Map(a.actions.map(i=>[i.name,i.label]))),o=M(null);function s(){o.value?.focus()}return t({focusBulk:s}),(i,c)=>(h(),$("div",mE,[e.showSearch?(h(),$("label",yE,[O("span",gE,T(u(P)("backend::lang.list.search")),1),H(u(ds),{size:18,class:"pointer-events-none absolute top-1/2 left-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("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,bE)])):(h(),$("span",_E)),O("div",xE,[e.selectedCount>0?(h(),$("span",wE,[H(u(_r),{size:14,"aria-hidden":"true"}),$e(T(e.selectedLabel),1)])):ae("",!0),e.bulkActions.length>0?(h(),U(hE,{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"])):ae("",!0),(h(!0),$(_e,null,Ne(e.buttons,d=>(h(),$(_e,{key:d},[d==="delete"?(h(),U(et,{key:0,"data-action":"delete",variant:e.selectedCount>0?"danger":"outline",icon:u(Ol),disabled:e.selectedCount===0,onClick:c[2]||(c[2]=f=>r("delete"))},{default:B(()=>[$e(T(e.deleteLabel),1)]),_:1},8,["variant","icon","disabled"])):l.value.has(d)?(h(),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(()=>[$e(T(l.value.get(d)),1)]),_:2},1032,["data-action","disabled","aria-busy","onClick"])):ae("",!0)],64))),128))])]))}}),$E={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"},CE={"data-range":""},SE={key:0,class:"flex items-center gap-2"},EE=["value"],AE=["value"],DE=["aria-label"],PE=["disabled"],OE={key:0,"aria-hidden":"true",class:"px-1"},ME=["data-page","aria-current","onClick"],TE=["disabled"],Pi="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",zm=ee({__name:"Pagination",props:{meta:{},loading:{type:Boolean},perPageOptions:{},perPage:{}},emits:["page","perPage"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.meta?.total??0),l=w(()=>n.meta?.page??1),o=w(()=>Math.max(n.meta?.last_page??1,1)),s=w(()=>{const d=n.meta;if(!d||d.total===0)return xr("backend::lang.list.results",0);const f=(d.page-1)*d.per_page+1,p=Math.min(d.page*d.per_page,d.total);return P("backend::lang.list.pagination_range",{from:f,to:p,total:d.total})}),i=w(()=>{const d=o.value,f=l.value,p=new Set([1,d,f-1,f,f+1].filter(g=>g>=1&&g<=d));f<=3&&[2,3].forEach(g=>g<=d&&p.add(g)),f>=d-2&&[d-1,d-2].forEach(g=>g>=1&&p.add(g));const v=[...p].sort((g,_)=>g-_),m=[];return v.forEach((g,_)=>{const y=v[_-1];y!==void 0&&g-y>1&&m.push(null),m.push(g)}),m});function c(d){const f=Number(d.target.value);Number.isFinite(f)&&f>0&&a("perPage",f)}return(d,f)=>(h(),$("footer",$E,[O("span",CE,T(e.loading?u(P)("backend::lang.list.loading"):s.value),1),e.perPageOptions.length>1?(h(),$("label",SE,[O("span",null,T(u(P)("backend::lang.list.records_per_page")),1),O("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},[(h(!0),$(_e,null,Ne(e.perPageOptions,p=>(h(),$("option",{key:p,value:String(p)},T(p),9,AE))),128))],40,EE)])):ae("",!0),!e.loading&&r.value>0?(h(),$("nav",{key:1,"aria-label":u(P)("backend::lang.list.pagination"),class:"ml-auto flex items-center gap-1.5"},[O("button",{type:"button","data-page":"prev",class:xe(Pi),disabled:l.value<=1,onClick:f[0]||(f[0]=p=>a("page",l.value-1))},[H(u(cs),{size:14,"aria-hidden":"true"}),$e(T(u(P)("backend::lang.list.prev_page")),1)],8,PE),(h(!0),$(_e,null,Ne(i.value,(p,v)=>(h(),$(_e,{key:p??`gap-${v}`},[p===null?(h(),$("span",OE,"…")):(h(),$("button",{key:1,type:"button","data-page":p,"aria-current":p===l.value?"page":void 0,class:xe([Pi,p===l.value?"border-transparent bg-sel font-bold":""]),onClick:m=>p!==l.value&&a("page",p)},T(p),11,ME))],64))),128)),O("button",{type:"button","data-page":"next",class:xe(Pi),disabled:l.value>=o.value,onClick:f[1]||(f[1]=p=>a("page",l.value+1))},[$e(T(u(P)("backend::lang.list.next_page")),1),H(u(Pl),{size:14,"aria-hidden":"true"})],8,TE)],8,DE)):ae("",!0)]))}}),RE={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"},qE={class:"flex min-w-0 items-start gap-2.5"},IE={class:"min-w-0 [overflow-wrap:anywhere]"},Sc=ee({__name:"ExtensionFailure",props:{text:{}},setup(e){return(t,n)=>(h(),$("div",RE,[O("span",qE,[H(u(Bt),{size:16,class:"mt-0.5 shrink-0 text-danger","aria-hidden":"true"}),O("span",IE,T(e.text),1)])]))}}),FE=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"]),BE=new Set(["script","style","template","iframe","object","embed","noscript","textarea","title","xmp","svg","math","form","input","button","select","link","meta","base"]),NE=32,VE=2e3,LE=new Set(["class","title","lang","dir","role"]),jE={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"])},UE=/^(aria|data)-[a-z0-9_-]+$/;function zE(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 HE(e,t,n){return LE.has(t)||jE[e]?.has(t)===!0||UE.test(t)?e==="a"&&t==="href"||e==="img"&&t==="src"?zE(n,e==="a"):!0:!1}function KE(e,t){const n={};for(const[a,r]of Object.entries(t??{})){const l=a.toLowerCase();typeof r=="string"&&HE(e,l,r)&&(n[l]=r)}return n}function wu(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(BE.has(l))continue;if(!FE.has(l)){a.push(...wu(r.children,t,n));continue}if(t+1>NE)continue;n.left-=1;const o=wu(r.children,t+1,n);a.push(Kt(l,KE(l,r.attrs),o.length>0?o:void 0))}return a}function WE(e){return wu(e,0,{left:VE})}const GE={key:1,"data-partial-loading":"","aria-busy":"true"},YE=["data-partial","aria-busy"],Ec=ee({__name:"PartialHost",props:{source:{},name:{},recordId:{default:null},variant:{},reloadKey:{default:0},hint:{type:Boolean,default:!1}},setup(e){const t=e,n=M(null),a=M(!1),r=M(!1);let l=0;const o=i=>WE(i.nodes);o.props=["nodes"];async function s(){const i=++l;r.value=!0;let c=null;try{c=(await Oe.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}i===l&&(r.value=!1,a.value=c===null,n.value=c)}return Be(()=>t.reloadKey,()=>{s()}),s(),(i,c)=>a.value?(h(),U(Sc,{key:0,"data-partial-failed":"",text:u(P)("backend::lang.extension.partial_failed")},null,8,["text"])):n.value===null?(h(),$("div",GE,[O("div",{"data-partial-skeleton":"",class:xe([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?(h(),$("div",{key:2,class:"summer-partial","data-partial":e.variant,"aria-busy":r.value?"true":void 0},[H(o,{nodes:n.value},null,8,["nodes"])],8,YE)):ae("",!0)}}),JE={class:"flex gap-2.5"},ZE=["disabled","aria-busy"],La=ee({__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,s)=>(h(),U(u(Sk),{open:e.open,"onUpdate:open":r},{default:B(()=>[H(u($k),null,{default:B(()=>[H(u(wk),{class:"pointer-events-auto fixed inset-0 z-[80] bg-overlay"}),H(u(mk),{"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(()=>[H(u(Ak),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[$e(T(e.title??u(P)("backend::lang.form.confirm")),1)]),_:1}),H(u(_k),{class:"text-muted"},{default:B(()=>[$e(T(e.message),1)]),_:1}),O("div",JE,[H(u(gk),{"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(()=>[$e(T(e.cancelLabel??u(P)("backend::lang.form.cancel")),1)]),_:1},8,["disabled"]),O("button",{type:"button","data-action":"confirm",disabled:e.busy,"aria-busy":e.busy?"true":void 0,class:xe([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:pt(l,["prevent"])},[e.busy?(h(),U(u(co),{key:0,size:16,class:"animate-spin","aria-hidden":"true"})):ae("",!0),$e(" "+T(e.confirmLabel??u(P)("backend::lang.form.confirm")),1)],10,ZE)])]),_:1})]),_:1})]),_:1},8,["open"]))}});function ja(){const e=M(null),t=M(!1);let n=null,a=null;function r(i){const c=n;n=null,a=null,e.value=null,c?.(i)}function l(i,c){return r(!1),e.value=i,a=c??null,new Promise(d=>{n=d})}async function o(){if(t.value)return;const i=a;if(i){t.value=!0;try{await i()}finally{t.value=!1}}r(!0)}function s(){t.value||r(!1)}return{request:e,busy:t,ask:l,confirm:o,cancel:s}}const QE={class:"flex flex-col gap-5"},XE={class:"flex flex-wrap items-end justify-between gap-4"},eA={class:"flex flex-col"},tA={class:"text-[26px] font-bold tracking-[-0.02em]"},nA={key:0,"data-record-count":"",class:"text-muted"},aA={key:0,class:"flex items-center gap-2.5"},rA={class:"overflow-hidden rounded-card border border-border bg-surface shadow-card"},lA={key:2,role:"alert",class:"border-t border-border px-5 py-4 text-danger"},oA={key:0,"data-empty-search":"",class:"flex flex-col items-center gap-3"},sA={class:"flex size-14 items-center justify-center rounded-full bg-subtle text-muted"},iA={class:"text-[17px] font-bold"},uA={class:"max-w-[420px] text-muted"},cA={key:1,"data-empty-list":"",class:"text-muted"},dA=300,fA=ee({__name:"ListView",setup(e){const t=an(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=M(null),s=M([]),i=M(null),c=M(!0),d=M(!1),f=M(!1),p=w(()=>d.value||f.value),v=M([]),m=M(!1),g=M(0),_=ja(),y=w(()=>w3(t.query)),x=M(y.value.search??""),S=w(()=>o.value?.messages),A=w(()=>o.value?.title?o.value.title:ys(a.vendor,a.plugin)?.sideMenu.find(R=>R.controller===r)?.label??r),L=w(()=>i.value?Ie(S.value?.recordCount,i.value.total):""),J=w(()=>o.value?.toolbarButtons??[]),z=w(()=>J.value.filter(E=>E==="create")),K=w(()=>o.value?.toolbarActions??[]),k=w(()=>J.value.filter(E=>E==="delete"||K.value.some(R=>R.name===E))),F=M(null),G=w(()=>i.value?.row_states??{}),D=w(()=>({deleted:Ie(S.value?.rowStateDeleted),negative:Ie(S.value?.rowStateNegative),disabled:Ie(S.value?.rowStateDisabled)})),V=w(()=>(o.value?.bulkActions??[]).filter(E=>E.name!=="delete")),W=M(!1),N=M(null),Q=w(()=>{const E=o.value?.perPageOptions??[];return E.length>0?E:[o.value?.recordsPerPage||20]}),ne=w(()=>y.value.per_page??i.value?.per_page??o.value?.recordsPerPage??20),ie=w(()=>y.value.sort?{column:y.value.sort,dir:y.value.dir==="desc"?"desc":"asc"}:null);function te(E){const R=o.value?.recordUrl,q=E.id;return!R||typeof q!="number"&&typeof q!="string"?null:jm(R,r,q)}function oe(E){n.replace({path:t.path,query:Lm(E)})}let le=0;async function re(){const E=++le;c.value=!0,f.value=!1;const R=await Oe.GET("/{vendor}/{plugin}/{controller}",{params:{path:a,query:y.value}});E===le&&(s.value=R.data?.data??[],i.value=R.data?.meta??null,f.value=!R.data,c.value=!1)}async function we(){const E=await Oe.GET("/{vendor}/{plugin}/{controller}/schema/list",{params:{path:a}});o.value=E.data?.data??null,d.value=!o.value,o.value&&Cc(r,o.value.assets)}we(),Be(()=>k3(y.value),()=>{v.value=[],x.value=y.value.search??"",re()},{immediate:!0});let se=null;function Ce(E){x.value=E,se!==null&&clearTimeout(se),se=setTimeout(()=>{se=null;const R=E.trim();oe({...y.value,search:R===""?void 0:R,page:void 0})},dA)}qt(()=>{se!==null&&clearTimeout(se)});function fe(){x.value="",oe({...y.value,search:void 0,page:void 0})}function Z(E){const R=ie.value;R?.column!==E?oe({...y.value,sort:E,dir:"asc",page:void 0}):R.dir==="asc"?oe({...y.value,sort:E,dir:"desc",page:void 0}):oe({...y.value,sort:void 0,dir:void 0,page:void 0})}function pe(E){oe({...y.value,page:E})}function X(E){oe({...y.value,per_page:E,page:void 0})}function ue(E,R){const q={...y.value.filter??{}};R===null?delete q[E]:q[E]=R,oe({...y.value,filter:q,page:void 0})}async function ge(){const E=v.value.map(Number).filter(q=>Number.isInteger(q)&&q>0);if(!(E.length===0||m.value||!await _.ask({message:Ie(S.value?.deleteConfirm,E.length),confirmLabel:P("backend::lang.form.delete"),danger:!0}))){m.value=!0;try{const q=await Oe.POST("/{vendor}/{plugin}/{controller}/bulk-delete",{params:{path:a},body:{ids:E}});if(q.data){Pe(Ie(S.value?.deleted,q.data.data.deleted)),v.value=[],await re(),g.value+=1;return}Pe(q.error?.error.message||P("backend::lang.list.delete_failed"),"danger")}catch{Pe(P("backend::lang.list.delete_failed"),"danger")}finally{m.value=!1}}}async function b(E){const R=V.value.find(be=>be.name===E),q=v.value.map(Number).filter(be=>Number.isInteger(be)&&be>0);if(!R||q.length===0||W.value)return;const Y=R.label??E;let de=0,ve=null,me="";const ce=await _.ask({message:R.confirm||xr("backend::lang.list.bulk_confirm",q.length,{action:Y}),confirmLabel:Y,danger:!1},async()=>{W.value=!0;try{const be=await Oe.POST("/{vendor}/{plugin}/{controller}/bulk/{action}",{params:{path:{...a,action:E}},body:{ids:q}});de=be.response.status,ve=be.data?.data??null,me=be.error?.error.message??""}catch{de=0}finally{W.value=!1}});if(await new Promise(be=>setTimeout(be,0)),N.value?.focusBulk(),!ce)return;const Ee=ve;if(Ee){Pe(Ee.message||xr("backend::lang.list.bulk_done",Ee.affected)),v.value=[],await re(),g.value+=1;return}if(de===409){Pe(P("backend::lang.list.bulk_stale"),"danger"),v.value=[],await re();return}if(de===403){Pe(me||P("backend::lang.list.action_forbidden"),"danger");return}Pe(me||P("backend::lang.extension.action_failed"),"danger")}async function C(E){if(F.value===null){F.value=E;try{const R=await Oe.POST("/{vendor}/{plugin}/{controller}/toolbar/{action}",{params:{path:{...a,action:E}},body:{}});if(R.data){R.data.data.message&&Pe(R.data.data.message),await re(),g.value+=1;return}Pe(R.error?.error.message||P("backend::lang.extension.action_failed"),"danger")}catch{Pe(P("backend::lang.extension.action_failed"),"danger")}finally{F.value=null}}}return(E,R)=>(h(),$("section",QE,[O("header",XE,[O("div",eA,[O("h1",tA,T(A.value),1),L.value?(h(),$("p",nA,T(L.value),1)):ae("",!0)]),z.value.length>0?(h(),$("div",aA,[(h(!0),$(_e,null,Ne(z.value,q=>(h(),U(et,{key:q,"data-action":"create",variant:"primary",icon:u(Lu),to:`${u(l)}/create`},{default:B(()=>[$e(T(u(Ie)(S.value?.create)),1)]),_:1},8,["icon","to"]))),128))])):ae("",!0)]),o.value?.headerPartial?(h(),U(Ec,{key:0,variant:"header",source:a,name:o.value.headerPartial,"reload-key":g.value},null,8,["name","reload-key"])):ae("",!0),O("div",rA,[o.value?(h(),U(kE,{key:0,ref_key:"toolbar",ref:N,"show-search":o.value.showSearch,search:x.value,"search-prompt":u(Ie)(S.value?.searchPrompt),buttons:k.value,"selected-count":v.value.length,"selected-label":u(Ie)(S.value?.selected,v.value.length),"delete-label":u(Ie)(S.value?.deleteSelected,v.value.length),actions:K.value,"busy-action":F.value,"bulk-actions":V.value,"bulk-busy":W.value,"onUpdate:search":Ce,onDelete:ge,onAction:C,onBulk:b},null,8,["show-search","search","search-prompt","buttons","selected-count","selected-label","delete-label","actions","busy-action","bulk-actions","bulk-busy"])):ae("",!0),o.value&&o.value.filters.length>0?(h(),U(pE,{key:1,filters:o.value.filters,values:y.value.filter??{},source:a,onUpdate:ue},null,8,["filters","values"])):ae("",!0),p.value&&!c.value?(h(),$("p",lA,T(u(P)("backend::lang.list.load_failed")),1)):(h(),U(Um,{key:3,columns:o.value?.columns??[],rows:s.value,loading:c.value||!o.value,"row-link":te,selectable:o.value?.showCheckboxes??!1,selected:v.value,sortable:o.value?.showSorting??!1,sort:ie.value,"row-states":G.value,"state-labels":D.value,"onUpdate:selected":R[0]||(R[0]=q=>v.value=q),onSort:Z},{empty:B(()=>[y.value.search?(h(),$("div",oA,[O("span",sA,[H(u(Jv),{size:24,"aria-hidden":"true"})]),O("p",iA,T(u(Ie)(S.value?.emptySearch,void 0,{term:y.value.search})),1),O("p",uA,T(u(Ie)(S.value?.emptySearchHint,void 0,{term:y.value.search})),1),H(et,{"data-action":"clear-search",onClick:fe},{default:B(()=>[$e(T(u(P)("backend::lang.list.clear_search")),1)]),_:1})])):(h(),$("p",cA,T(u(Ie)(S.value?.empty)||o.value?.noRecordsMessage||u(P)("backend::lang.list.no_records")),1))]),_:1},8,["columns","rows","loading","selectable","selected","sortable","sort","row-states","state-labels"])),H(zm,{meta:i.value,loading:c.value||!o.value,"per-page-options":Q.value,"per-page":ne.value,onPage:pe,onPerPage:X},null,8,["meta","loading","per-page-options","per-page"])]),H(La,{open:u(_).request.value!==null,message:u(_).request.value?.message??"","confirm-label":u(_).request.value?.confirmLabel,danger:u(_).request.value?.danger,busy:u(_).busy.value,onConfirm:u(_).confirm,onCancel:u(_).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])]))}}),ya="X-Session-Key",Hm="X-Child-Session-Key",pA=32;function $l(){const e=new Uint8Array(pA);globalThis.crypto.getRandomValues(e);let t="";for(const n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const vA="X-Upload-Id";async function ua(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 jo(e){try{const t=await e();return t.response.ok&&t.data instanceof Blob?t.data:null}catch{return null}}function In(e){return encodeURIComponent(String(e))}function Km(e){return`${ps.api}/${In(e.vendor)}/${In(e.plugin)}/${In(e.controller)}`}function hA(e){try{return e===""?null:JSON.parse(e)}catch{return null}}function Wm(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 mA(e,t){const n=t;if((e===200||e===201)&&n?.data)return{ok:!0,item:n.data};const a=Wm(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 Gm(e,t,n,a,r){let l=null,o=!1;const s=()=>new Promise(c=>{const d=new XMLHttpRequest;l=d,d.open("POST",e),d.setRequestHeader("X-Requested-With",nh),d.setRequestHeader("Accept","application/json");for(const[p,v]of Object.entries(n))d.setRequestHeader(p,v);r&&d.setRequestHeader(vA,r),d.upload.onprogress=p=>{p.lengthComputable&&a?.(p.loaded,p.total)},d.onload=()=>c({status:d.status,body:hA(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 s();return typeof c=="object"&&c.status===401&&!o&&(await Uu()&&(c=o?"aborted":await s()),typeof c=="object"&&c.status===401&&w_()),c==="aborted"||o?{ok:!1,reason:"aborted",status:0,message:""}:c==="network"?{ok:!1,reason:"network",status:0,message:""}:mA(c.status,c.body)})(),abort(){o=!0,l?.abort()}}}function Ym(e,t,n,a){const r={...e,id:t,field:n},l={[ya]:a},o=`${Km(e)}/${In(t)}/files/${In(n)}`;return{list:()=>ua(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}",{params:{path:r,header:l}})),upload:(s,i,c)=>Gm(o,s,{...l},i,c),update:(s,i)=>ua(()=>Oe.PUT("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:s},header:l},body:i})),remove:s=>ua(()=>Oe.DELETE("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:s},header:l}})),reorder:s=>ua(()=>Oe.POST("/{vendor}/{plugin}/{controller}/{id}/files/{field}/reorder",{params:{path:r,header:l},body:{ids:s}})),download:s=>jo(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/download",{params:{path:{...r,file:s},header:l},parseAs:"blob"})),thumb:s=>jo(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/thumb",{params:{path:{...r,file:s},header:l},parseAs:"blob"}))}}function yA(e,t,n,a,r,l,o){const s={...e,id:t,name:n,child:a,field:r},i={[ya]:l,[Hm]:o},c=`${Km(e)}/${In(t)}/relations/${In(n)}/records/${In(a)}/files/${In(r)}`;return{list:()=>ua(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}",{params:{path:s,header:i}})),upload:(d,f,p)=>Gm(c,d,{...i},f,p),update:(d,f)=>ua(()=>Oe.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...s,file:d},header:i},body:f})),remove:d=>ua(()=>Oe.DELETE("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...s,file:d},header:i}})),reorder:d=>ua(()=>Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/reorder",{params:{path:s,header:i},body:{ids:d}})),download:d=>jo(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/download",{params:{path:{...s,file:d},header:i},parseAs:"blob"})),thumb:d=>jo(()=>Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/thumb",{params:{path:{...s,file:d},header:i},parseAs:"blob"}))}}const gA={key:0,role:"alert","data-forbidden-banner":"",class:"flex items-start gap-3 rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},bA={class:"flex min-w-0 flex-col gap-1"},_A={class:"[overflow-wrap:anywhere]"},xA={key:1,role:"alert","data-error-banner":"",class:"flex items-start gap-3 rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},wA={class:"flex flex-col gap-1"},Nl=ee({__name:"FormErrorBanner",props:{errors:{},fieldNames:{},forbidden:{default:null}},setup(e){const t=e,n=w(()=>Object.keys(t.errors).length),a=w(()=>Object.entries(t.errors).filter(([r])=>!t.fieldNames.includes(r)).flatMap(([,r])=>r));return(r,l)=>e.forbidden?(h(),$("div",gA,[H(u(Bt),{size:20,class:"mt-px shrink-0","aria-hidden":"true"}),O("div",bA,[O("p",_A,T(e.forbidden),1),(h(!0),$(_e,null,Ne(a.value,(o,s)=>(h(),$("p",{key:s,class:"text-[13px] [overflow-wrap:anywhere]"},T(o),1))),128))])])):n.value>0?(h(),$("div",xA,[H(u(Bt),{size:20,class:"mt-px shrink-0","aria-hidden":"true"}),O("div",wA,[O("p",null,[O("strong",null,T(u(P)("backend::lang.form.error_title")),1),$e(" "+T(u(xr)("backend::lang.form.error_fields",n.value)),1)]),(h(!0),$(_e,null,Ne(a.value,(o,s)=>(h(),$("p",{key:s,class:"text-[13px]"},T(o),1))),128))])])):ae("",!0)}}),kA=new Set(["readonly","placeholder","maxlength","minlength","min","max","step","autocomplete","spellcheck","pattern"]);function Ac(e){const t={};for(const[n,a]of Object.entries(e.attributes??{})){const r=n.toLowerCase();!kA.has(r)||a===null||a===!1||(t[r]=a)}return t}function Ba(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 Dc(e){return typeof e=="string"?e!==""&&e!=="0"&&e.toLowerCase()!=="false":!!e}function Jm(e,t){return typeof e=="number"?t?1:0:t}const $A={class:"flex min-w-0 flex-col"},CA=["for"],SA={key:0,class:"text-danger","aria-hidden":"true"},EA=["id"],AA=["id","name","checked","aria-invalid","aria-describedby"],DA=ee({__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=w(()=>Dc(n.modelValue));function l(o){a("update:modelValue",Jm(n.modelValue,o.target.checked))}return(o,s)=>(h(),$("div",{class:xe([e.invalid?"border-danger":"border-border","flex items-center justify-between gap-4 rounded-inner border px-4 py-3.5"]),"data-toggle-card":""},[O("div",$A,[O("label",{for:e.controlId,class:"font-semibold"},[$e(T(e.field.label||e.field.name),1),e.field.required?(h(),$("span",SA," *")):ae("",!0)],8,CA),e.field.comment?(h(),$("p",{key:0,id:`${e.controlId}-comment`,class:"text-[13px] text-muted"},T(e.field.comment),9,EA)):ae("",!0)]),O("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,AA)],2))}});function PA(e){return e==="date"||e==="time"?e:"datetime"}function Ot(e,t=2){return String(e).padStart(t,"0")}const OA=/(Z|[+-]\d{2}:?\d{2})$/i;function MA(e,t,n=!1){if(typeof t!="string"||t.trim()==="")return null;const a=t.trim();try{if(e==="date")return Mh(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?Ux(l[1]):null}const r=OA.test(a)?a.replace(" ","T"):`${a.replace(" ","T")}Z`;return n?xn(pf(r,"UTC")):pf(r,rn())}catch{return null}}function Oi(e){return`${Ot(e.year,4)}-${Ot(e.month)}-${Ot(e.day)}`}function Mi(e){return`${Ot(e.hour)}:${Ot(e.minute)}:${Ot(e.second)}`}function Xf(e,t,n=!1){if(!t)return null;if(e==="time")return"hour"in t?Mi(t):null;if(!("year"in t))return null;if(e==="date")return Oi(t);if(n){const l=t instanceof zn?xn(t):t,o="hour"in l?Mi(l):"00:00:00";return`${Oi(l)}T${o}Z`}const a=t instanceof zn?t:ec(t instanceof tt?xn(t):t,rn()),r=ws(a,"UTC");return`${Oi(r)}T${Mi(r)}Z`}const TA={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm",time:"HH:mm"},RA=/\[([^\]]*)\]|YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|HH|H|hh|h|mm|ss|A|a/g;function qA(e){return"year"in e?new tt(e.year,e.month,e.day):null}function Ti(e,t,n,a){return new Yt(e,{...n,timeZone:"UTC"}).formatToParts(t.toDate("UTC")).find(l=>l.type===a)?.value??""}function IA(e,t,n,a){if(!e)return"";const r=n||TA[t],l=qA(e),o="hour"in e?e:null,s=/D/.test(r.replace(/\[[^\]]*\]/g,""));return r.replace(RA,(i,c)=>{if(c!==void 0)return c;switch(i){case"YYYY":return l?Ot(l.year,4):"";case"YY":return l?Ot(l.year%100):"";case"MMMM":case"MMM":{if(!l)return"";const d=i==="MMMM"?"long":"short";return s?Ti(a,l,{day:"numeric",month:d},"month"):Ti(a,l,{month:d},"month")}case"MM":return l?Ot(l.month):"";case"M":return l?String(l.month):"";case"dddd":case"ddd":return l?Ti(a,l,{weekday:i==="dddd"?"long":"short"},"weekday"):"";case"DD":return l?Ot(l.day):"";case"D":return l?String(l.day):"";case"HH":return o?Ot(o.hour):"";case"H":return o?String(o.hour):"";case"hh":return o?Ot(o.hour%12||12):"";case"h":return o?String(o.hour%12||12):"";case"mm":return o?Ot(o.minute):"";case"ss":return o?Ot(o.second):"";case"A":return o?o.hour<12?"AM":"PM":"";case"a":return o?o.hour<12?"am":"pm":"";default:return i}})}const FA=new tt(2026,10,4);function BA(e,t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=6)return t;try{return(7-xs(FA,e))%7}catch{return 1}}function ep(e){if(e)try{return Mh(e.slice(0,10))}catch{return}}function NA(e,t=Tl(rn())){const n=ep(e.minDate),a=ep(e.maxDate);if(n||a)return{min:n,max:a};const r=e.yearRange??[];return r.length===1&&typeof r[0]=="number"?{min:new tt(t.year-r[0],1,1),max:new tt(t.year+r[0],12,31)}:r.length===2&&typeof r[0]=="number"&&typeof r[1]=="number"?{min:new tt(r[0],1,1),max:new tt(r[1],12,31)}:{}}function ku(e,t,n,a){if(!e||t==="time")return;if(t==="date")return e;const r=new va(e.year,e.month,e.day,a?23:0,a?59:0,a?59:0);return n?r:ws(ec(r,"UTC"),rn())}function VA(e,t){const n=Tl(rn());return ku(n,e==="time"?"datetime":e,t,!1)??n}const LA=["id","aria-describedby"],jA={key:0},UA={key:1,class:"text-muted","data-empty":""},zA=["aria-label"],HA={class:"flex size-8 shrink-0 items-center justify-center text-muted","aria-hidden":"true"},KA=["data-mode"],WA=["aria-label"],GA={key:0,"data-datepicker-time":"",class:"mt-3 flex items-center gap-2 border-t border-border pt-3"},Ur="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",YA=ee({__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=w(()=>PA(n.field.mode)),l=w(()=>r.value==="datetime"&&!!n.field.ignoreTimezone),o=w(()=>hl.value||"pl"),s=w(()=>{const re=n.field.attributes?.readonly;return!!n.field.readOnly||re!=null&&re!==!1}),i=w(()=>MA(r.value,n.modelValue,l.value)),c=w(()=>r.value==="time"?null:i.value),d=w(()=>r.value==="time"?i.value:null),f=w(()=>NA(n.field)),p=w(()=>ku(f.value.min,r.value,l.value,!1)),v=w(()=>ku(f.value.max,r.value,l.value,!0)),m=VA(r.value,l.value),g=w(()=>BA(o.value,n.field.firstDay)),_=w(()=>n.field.twelveHour?12:24),y=w(()=>r.value==="date"?"day":"minute"),x=w(()=>IA(i.value,r.value,n.field.displayFormat,o.value)),S=w(()=>!n.field.required&&i.value!==null&&!s.value),A=w(()=>{const re=c.value;return re?!!p.value&&re.compare(p.value)<0||!!v.value&&re.compare(v.value)>0:!1}),L=new Set(["day","month","year","hour","minute","second"]),J=M(null),z=M(!1);function K(){const re=J.value;if(!re){z.value=!1;return}const we=Array.from(re.querySelectorAll("[data-reka-date-field-segment], [data-reka-time-field-segment]")).filter(Ce=>L.has(Ce.dataset.rekaDateFieldSegment??Ce.dataset.rekaTimeFieldSegment??"")),se=we.filter(Ce=>!Ce.hasAttribute("data-placeholder")).length;z.value=se>0&&se!!n.invalid||A.value||z.value),G=w(()=>Xf(r.value,i.value,l.value));function D(re){const we=Xf(r.value,re??null,l.value);k(),!(we===G.value&&(we!==null||n.modelValue===null))&&a("update:modelValue",we)}function V(re){if(!re||r.value!=="datetime"){D(re);return}const we=c.value,se=Q.value,Ce=!we||we.year!==re.year||we.month!==re.month||we.day!==re.day,fe=!("hour"in re)||re.hour!==se.hour||re.minute!==se.minute;Ce&&fe&&(re=ne(re,se)),N.value=re,D(re)}function W(){a("update:modelValue",null),k()}const N=M(null);Be(c,re=>{N.value=re},{immediate:!0});const Q=w(()=>{const re=N.value??c.value;return re&&"hour"in re?new hn(re.hour,re.minute):new hn(0,0)});function ne(re,we){return"hour"in re?re.set({hour:we.hour,minute:we.minute,second:0,millisecond:0}):new va(re.year,re.month,re.day,we.hour,we.minute)}function ie(re){if(!re)return;const we=re instanceof hn?re:new hn(re.hour,re.minute),se=N.value??c.value??m,Ce=ne(se,we);N.value=Ce,D(Ce)}function te(re){return re.charAt(0).toLocaleUpperCase(o.value)+re.slice(1)}const oe=w(()=>[Ba(F.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 le(re){return re==="literal"?"text-muted":re==="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(re,we)=>s.value?(h(),$("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"},[x.value!==""?(h(),$("span",jA,T(x.value),1)):(h(),$("span",UA,"—"))],8,LA)):r.value==="time"?(h(),$("div",{key:1,ref_key:"container",ref:J,"data-datepicker":"","data-mode":"time",class:xe(oe.value),onKeyup:k,onFocusout:k},[H(u(Yf),{id:e.controlId,"model-value":d.value,locale:o.value,"hour-cycle":_.value,granularity:"minute",name:e.field.name,required:e.field.required||void 0,"aria-invalid":F.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center","onUpdate:modelValue":D},{default:B(({segments:se})=>[(h(!0),$(_e,null,Ne(se,Ce=>(h(),U(u(Jf),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:B(()=>[$e(T(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["id","model-value","locale","hour-cycle","name","required","aria-invalid","aria-describedby"]),S.value?(h(),$("button",{key:0,type:"button","data-action":"clear","aria-label":u(P)("backend::lang.datepicker.clear"),class:xe(Ur),onClick:W},[H(u(Wt),{size:16,"aria-hidden":"true"})],8,zA)):ae("",!0),O("span",HA,[H(u(Ld),{size:16})])],34)):(h(),U(u(CC),{key:2,id:e.controlId,"model-value":c.value,"default-placeholder":u(m),locale:o.value,granularity:y.value,"hour-cycle":_.value,"hide-time-zone":r.value!=="datetime"||l.value,"min-value":p.value,"max-value":v.value,"week-starts-on":g.value,name:e.field.name,required:e.field.required||void 0,"close-on-select":r.value==="date","prevent-deselect":"","onUpdate:modelValue":V},{default:B(()=>[O("div",{ref_key:"container",ref:J,"data-datepicker":"","data-mode":r.value,class:xe(oe.value),onKeyup:k,onFocusout:k},[H(u(zC),{"aria-invalid":F.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center overflow-hidden"},{default:B(({segments:se})=>[(h(!0),$(_e,null,Ne(se,Ce=>(h(),U(u(lS),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:B(()=>[$e(T(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["aria-invalid","aria-describedby"]),S.value?(h(),$("button",{key:0,type:"button","data-action":"clear","aria-label":u(P)("backend::lang.datepicker.clear"),class:xe(Ur),onClick:W},[H(u(Wt),{size:16,"aria-hidden":"true"})],8,WA)):ae("",!0),H(u(pS),{"data-action":"open-calendar","aria-label":u(P)("backend::lang.datepicker.open_calendar"),class:xe(Ur)},{default:B(()=>[H(u(a0),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])],42,KA),H(u(jC),{"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(()=>[H(u(EC),null,{default:B(({weekDays:se,grid:Ce})=>[H(u(tS),{class:"flex h-9 items-center justify-between"},{default:B(()=>[H(u(uS),{"aria-label":u(P)("backend::lang.datepicker.prev_month"),class:xe(Ur)},{default:B(()=>[H(u(cs),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"]),H(u(aS),{class:"font-semibold"},{default:B(({headingValue:fe})=>[$e(T(te(fe)),1)]),_:1}),H(u(sS),{"aria-label":u(P)("backend::lang.datepicker.next_month"),class:xe(Ur)},{default:B(()=>[H(u(Pl),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])]),_:1}),(h(!0),$(_e,null,Ne(Ce,fe=>(h(),U(u(KC),{key:fe.value.toString(),class:"mt-2 w-full border-collapse select-none"},{default:B(()=>[H(u(JC),null,{default:B(()=>[H(u(Gf),{class:"flex"},{default:B(()=>[(h(!0),$(_e,null,Ne(se,Z=>(h(),U(u(XC),{key:Z,class:"flex h-9 w-9 items-center justify-center text-[13px] font-normal text-muted"},{default:B(()=>[$e(T(Z),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024),H(u(GC),null,{default:B(()=>[(h(!0),$(_e,null,Ne(fe.rows,(Z,pe)=>(h(),U(u(Gf),{key:`week-${pe}`,class:"flex"},{default:B(()=>[(h(!0),$(_e,null,Ne(Z,X=>(h(),U(u(DC),{key:X.toString(),date:X,class:"p-0"},{default:B(()=>[H(u(OC),{day:X,month:fe.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"?(h(),$("div",GA,[H(u(Ld),{size:16,class:"shrink-0 text-muted","aria-hidden":"true"}),H(u(Yf),{"model-value":Q.value,locale:o.value,"hour-cycle":_.value,granularity:"minute","hide-time-zone":"",class:"flex min-w-0 items-center","onUpdate:modelValue":ie},{default:B(({segments:se})=>[(h(!0),$(_e,null,Ne(se,Ce=>(h(),U(u(Jf),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:B(()=>[$e(T(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["model-value","locale","hour-cycle"])])):ae("",!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"]))}}),JA={class:"relative"},ZA=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],QA=["value"],ro="empty",lo="placeholder",XA=ee({__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=w(()=>n.field.options??[]);function l(c,d){return c==null||d===null||d===void 0?c===d||c==null&&d==null:String(c)===String(d)}const o=w(()=>{const c=r.value.findIndex(d=>l(d.value,n.modelValue));return c>=0?String(c):n.field.emptyOption!==void 0&&(n.modelValue===null||n.modelValue===void 0||n.modelValue==="")?ro:lo}),s=w(()=>o.value===ro||o.value===lo);function i(c){const d=c.target.value;if(d===ro){a("update:modelValue",null);return}const f=r.value[Number(d)];f&&a("update:modelValue",f.value)}return(c,d)=>(h(),$("div",JA,[O("select",{id:e.controlId,name:e.field.name,value:o.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:xe([[u(Ba)(e.invalid),s.value?"text-muted":""],"h-input appearance-none pr-10"]),onChange:i},[e.field.emptyOption!==void 0?(h(),$("option",{key:0,value:ro,class:"text-muted"},T(e.field.emptyOption),1)):ae("",!0),o.value===lo?(h(),$("option",{key:1,value:lo,disabled:""},T(u(P)("backend::lang.form.select_placeholder")),1)):ae("",!0),(h(!0),$(_e,null,Ne(r.value,(f,p)=>(h(),$("option",{key:p,value:String(p),class:"text-text"},T(f.label),9,QA))),128))],42,ZA),H(u(Dl),{size:16,class:"pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"})]))}}),Pc=Symbol("summer.form.values"),Oc=Symbol("summer.form.patch"),Zm=Symbol("summer.form.locale"),Qm=Symbol("summer.form.assets");function Mc(){const e=M(0);return{activeUploads:e,beginUpload(){e.value++;let t=!1;return()=>{t||(t=!0,e.value>0&&e.value--)}}}}const Vl=Symbol("summer.form.session"),tp="summer-action",eD=5e3,tD={class:"flex items-start gap-3"},nD={class:"flex min-w-0 flex-1 flex-col gap-1"},aD={key:0,class:"flex items-center gap-4"},rD=["src"],lD={key:1,class:"flex size-16 shrink-0 items-center justify-center rounded-inner bg-subtle","aria-hidden":"true"},oD=["title"],sD={class:"flex flex-col gap-1.5"},iD=["for"],uD=["id","disabled","aria-invalid","aria-describedby"],cD=["id"],dD={class:"flex flex-col gap-1.5"},fD=["for"],pD=["id","disabled","aria-invalid","aria-describedby"],vD=["id"],hD={class:"flex gap-2.5"},mD=["disabled"],yD=["disabled"],gD=ee({__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=M(""),l=M(""),o=M({}),s=M(!1),i=ja();function c(_){const y={};for(const[x,S]of Object.entries(_??{})){const A=(Array.isArray(S)?S:[S]).filter(L=>typeof L=="string"&&L!=="");A.length>0&&(y[x]=A)}return y}const d=w(()=>`${n.idPrefix}-caption-title`),f=w(()=>`${n.idPrefix}-caption-description`),p=w(()=>!!n.file&&(r.value!==n.file.title||l.value!==n.file.description));Be(()=>n.open,_=>{_&&n.file&&(r.value=n.file.title??"",l.value=n.file.description??"",o.value={},s.value=!1)},{immediate:!0});async function v(_){if(_){a("update:open",!0);return}s.value||p.value&&!await i.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function m(){if(!(s.value||!n.file||!n.routes)){s.value=!0;try{const _=await n.routes.update(n.file.id,{title:r.value,description:l.value});if(_.data){o.value={},a("saved",_.data),a("update:open",!1),Pe(P("backend::lang.fileupload.details_saved"));return}if(_.status===422){o.value=c(_.error?.details),Object.keys(o.value).length===0&&(o.value={title:[Wm(_.error)||P("backend::lang.form.error_generic")]});return}Pe(_.error?.message||P("backend::lang.form.error_generic"),"danger")}finally{s.value=!1}}}function g(_){_.preventDefault(),a("closed")}return(_,y)=>(h(),$(_e,null,[H(u(Rl),{open:e.open,"onUpdate:open":v},{default:B(()=>[H(u(Es),null,{default:B(()=>[H(u(Il),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),H(u(ql),{"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:g},{default:B(()=>[O("div",tD,[O("div",nD,[H(u(Fl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.attachment")),1)]),_:1}),H(u(bl),{class:"text-muted"},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.help")),1)]),_:1})]),H(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),disabled:s.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(()=>[H(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),e.file?(h(),$("div",aD,[e.preview?(h(),$("img",{key:0,src:e.preview,alt:"",class:"size-16 shrink-0 rounded-inner object-cover"},null,8,rD)):(h(),$("span",lD,[H(u(Gr),{size:16,class:"text-muted"})])),O("span",{class:"min-w-0 truncate text-[13px] text-muted",title:e.file.file_name},T(e.file.file_name),9,oD)])):ae("",!0),O("form",{class:"flex flex-col gap-4",novalidate:"",onSubmit:pt(m,["prevent"])},[O("div",sD,[O("label",{for:d.value,class:"font-semibold"},T(u(P)("backend::lang.fileupload.title_label")),9,iD),Ra(O("input",{id:d.value,"onUpdate:modelValue":y[0]||(y[0]=x=>r.value=x),type:"text","data-caption-title":"",disabled:s.value,"aria-invalid":o.value.title?"true":void 0,"aria-describedby":o.value.title?`${d.value}-error`:void 0,class:xe([u(Ba)(!!o.value.title),"h-input"])},null,10,uD),[[Eo,r.value]]),o.value.title?(h(),$("p",{key:0,id:`${d.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[H(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,T(o.value.title.join(" ")),1)],8,cD)):ae("",!0)]),O("div",dD,[O("label",{for:f.value,class:"font-semibold"},T(u(P)("backend::lang.fileupload.description_label")),9,fD),Ra(O("textarea",{id:f.value,"onUpdate:modelValue":y[1]||(y[1]=x=>l.value=x),rows:"3","data-caption-description":"",disabled:s.value,"aria-invalid":o.value.description?"true":void 0,"aria-describedby":o.value.description?`${f.value}-error`:void 0,class:xe([u(Ba)(!!o.value.description),"min-h-input resize-y py-2.5"])},null,10,pD),[[Eo,l.value]]),o.value.description?(h(),$("p",{key:0,id:`${f.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[H(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,T(o.value.description.join(" ")),1)],8,vD)):ae("",!0)]),O("div",hD,[O("button",{type:"button","data-action":"cancel",disabled:s.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:y[2]||(y[2]=x=>v(!1))},T(u(P)("backend::lang.form.cancel")),9,mD),O("button",{type:"submit","data-action":"save-caption",disabled:s.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(s.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.fileupload.details_submit")),9,yD)])],32)]),_:1})]),_:1})]),_:1},8,["open"]),H(La,{open:u(i).request.value!==null,message:u(i).request.value?.message??"","confirm-label":u(i).request.value?.confirmLabel,danger:u(i).request.value?.danger,onConfirm:u(i).confirm,onCancel:u(i).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),bD=["id","data-field-name","aria-labelledby","aria-describedby","aria-busy"],_D={key:0,"data-fileupload-loading":"",class:"h-[112px] rounded-control bg-skel","aria-hidden":"true"},xD={key:1,role:"alert","data-fileupload-failed":"",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},wD={key:0,"data-fileupload-empty":"",class:"flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 text-muted"},kD={key:1,"data-fileupload-grid":"",class:"grid grid-cols-[repeat(auto-fill,minmax(160px,1fr))] gap-4"},$D=["data-file-item","data-state","onDragover","onDrop"],CD={class:"relative flex aspect-square items-center justify-center bg-subtle"},SD=["href","aria-label"],ED=["src","alt","onError"],AD=["aria-label","onClick"],DD=["src","alt"],PD={key:2,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},OD=["data-handle","aria-label","onKeydown","onDragstart"],MD={key:5,class:"absolute top-2 right-2 flex gap-1"},TD=["data-caption","aria-label","onClick"],RD=["aria-label","onClick"],qD=["aria-label","onClick"],ID={class:"flex flex-col gap-1 p-2"},FD=["title"],BD={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},ND={key:0},VD={key:1},LD={key:2},jD={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},UD={key:1,"data-file-error":"",class:"text-[13px] text-danger"},zD={class:"sr-only"},HD={key:2,"data-fileupload-single":"",class:"flex flex-col gap-2"},KD=["data-file-item","data-state"],WD=["src","alt","onError"],GD={key:3,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},YD={class:"flex min-w-0 flex-1 flex-col gap-1"},JD=["title"],ZD={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},QD={key:0},XD={key:1},eP={key:2},tP={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},nP={key:1,"data-file-error":"",class:"text-[13px] text-danger"},aP={class:"sr-only"},rP={key:2,class:"mt-1 flex flex-wrap gap-2"},lP={key:3,"data-fileupload-rows":"",class:"flex flex-col gap-2"},oP=["data-file-item","data-state","onDragover","onDrop"],sP={class:"flex items-center gap-3"},iP=["data-handle","aria-label","onKeydown","onDragstart"],uP={class:"flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-pager bg-subtle"},cP=["src","onError"],dP={class:"flex min-w-0 flex-1 flex-col leading-tight"},fP=["title"],pP=["title"],vP=["title"],hP={class:"flex shrink-0 items-center gap-2 text-[13px] text-muted tabular-nums"},mP={key:0},yP={key:1},gP={key:2},bP={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},_P={class:"flex shrink-0 items-center gap-1"},xP=["href","aria-label"],wP=["aria-label","onClick"],kP=["data-caption","aria-label","onClick"],$P=["aria-label","onClick"],CP=["aria-label","onClick"],SP={key:1,"data-file-error":"",class:"text-[13px] text-danger"},EP={class:"sr-only"},AP=["aria-describedby"],DP={class:"flex size-10 items-center justify-center rounded-full bg-surface","aria-hidden":"true"},PP={class:"text-text"},OP={key:0,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},MP={key:5,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},TP={key:6,role:"alert","data-fileupload-too-many":"",class:"flex items-center gap-1.5 text-[13px] text-danger"},RP=["accept","multiple"],qP={class:"sr-only","aria-live":"polite","data-fileupload-live":""},IP=1<<20,FP=400,Ri="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:text-text",BP="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:bg-danger-soft hover:text-danger",Qa="inline-flex size-8 shrink-0 items-center justify-center rounded-pager text-muted hover:bg-hover hover:text-text",NP=ee({__name:"FileuploadField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Vl,null),a=["jpg","jpeg","png","gif","webp"],r=["image/jpeg","image/png","image/gif","image/webp"];let l=1;const o=M([]),s=M("loading"),i=M(!1),c=M(0),d=M(""),f=M(null),p=M(null),v=M(null),m=M(null),g=M(null),_=M(!1),y=M({}),x=M(new Set),S=new Set,A=[],L=n?n.routes(t.field.name):null;let J=null,z=null,K=!1,k=null,F=0,G=!1;const D=w(()=>{const I=t.field.attributes?.readonly;return!!t.field.readOnly||I!=null&&I!==!1}),V=w(()=>t.field.multiple===!0),W=w(()=>t.field.mode==="image"),N=w(()=>V.value?t.field.maxFiles:1),Q=w(()=>(n?.recordId??0)!==0),ne=w(()=>o.value.filter(I=>I.state!=="failed")),ie=w(()=>{if(V.value)return o.value;const I=ne.value,ye=I[I.length-1];return o.value.filter(j=>j.state==="failed"||j===ye)}),te=w(()=>ie.value.filter(I=>I.state!=="failed").length),oe=w(()=>D.value||s.value!=="ready"?!1:V.value?N.value===void 0||N.value===null||ne.value.lengthV.value&&!D.value&&typeof N.value=="number"&&ne.value.length>=N.value),re=w(()=>t.field.fileTypes?.length?t.field.fileTypes.map(I=>I.toLowerCase()):W.value&&!t.field.mimeTypes?.length?a:null),we=w(()=>(t.field.fileTypes?.length?t.field.fileTypes:t.field.mimeTypes??[]).join(", ")),se=w(()=>{const I=[];for(const ye of t.field.fileTypes??[])I.push(`.${ye.toLowerCase()}`);for(const ye of t.field.mimeTypes??[])I.push(ye.includes("/")?ye:`.${ye.toLowerCase()}`);return I.length===0&&W.value&&I.push(...r),I.length>0?I.join(","):void 0}),Ce=w(()=>t.field.prompt||P(V.value?"backend::lang.fileupload.default_prompt_many":"backend::lang.fileupload.default_prompt"));function fe(I,ye){return new Intl.NumberFormat(hl.value,{minimumFractionDigits:ye,maximumFractionDigits:ye}).format(I)}function Z(I){const ye=["B","kB","MB","GB"];let j=I,ke=0;for(;j>=1e3&&ke{const I=t.field.maxFilesize;return typeof I=="number"?`${new Intl.NumberFormat(hl.value).format(I)} MB`:""}),X=w(()=>{const I=[];return we.value!==""&&I.push(P("backend::lang.fileupload.limits_types",{types:we.value})),pe.value!==""&&I.push(P("backend::lang.fileupload.limits_size",{size:pe.value})),V.value&&typeof N.value=="number"&&I.push(P("backend::lang.fileupload.limits_count",{current:ne.value.length,max:N.value})),I.join(" · ")});function ue(I){const ye=I.lastIndexOf(".");return ye<0?"":I.slice(ye+1).toLowerCase()}function ge(I){const ye=t.field.mimeTypes??[];if(ye.length===0||I.type==="")return!0;const j=I.type.toLowerCase(),ke=ue(I.name);return ye.some(Ve=>{const $t=Ve.toLowerCase();return $t.includes("/")?$t.endsWith("/*")?j.startsWith($t.slice(0,-1)):j===$t:$t===ke})}function b(I){const ye=re.value;if(ye&&!ye.includes(ue(I.name)))return P("backend::lang.fileupload.wrong_type",{name:I.name,types:ye.join(", ")});if(!ge(I))return P("backend::lang.fileupload.wrong_type",{name:I.name,types:we.value});const j=t.field.maxFilesize;return typeof j=="number"&&I.size>Math.ceil(j*IP)?P("backend::lang.fileupload.too_large",{name:I.name,size:pe.value}):""}function C(I){return Zt({uid:l++,name:I.file_name,size:I.file_size,state:"done",progress:100,error:"",retryable:!1,file:I,source:null,handle:null,uploadId:""})}function E(){return globalThis.crypto?.randomUUID?.()??`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function R(I,ye){return Zt({uid:l++,name:I.name,size:I.size,state:ye===""?"queued":"failed",progress:0,error:ye,retryable:!1,file:null,source:yo(I),handle:null,uploadId:E()})}function q(I){return o.value.find(ye=>ye.uid===I)}async function Y(I){if(!L){s.value="failed";return}I&&(s.value="loading");const ye=await L.list();if(G)return;if(!ye.data){I&&(s.value="failed");return}const j=o.value.filter(ke=>ke.state!=="done");for(const ke of o.value)ke.state==="done"&&Fs(ke.uid);o.value=[...ye.data.map(C),...j],s.value="ready"}function de(){D.value||f.value?.click()}function ve(I){if(I.length===0||D.value)return;if(c.value=0,!V.value)for(const Ve of[...o.value])Ve.state!=="failed"&&(Ve.state!=="done"||Ve.file?.pending)&&Ue(Ve);let ye=V.value?typeof N.value=="number"?Math.max(N.value-ne.value.length,0):Number.POSITIVE_INFINITY:1,j=0;const ke=[];for(const Ve of I.slice(0,V.value?I.length:1)){const $t=b(Ve);if($t===""&&ye<=0){j++;continue}$t===""&&ye--,ke.push(R(Ve,$t))}o.value=[...o.value,...ke],c.value=j,Se()}function me(I){const ye=I.target;ve(Array.from(ye.files??[])),ye.value=""}function ce(I){return v.value===null&&Array.from(I.dataTransfer?.types??[]).includes("Files")}function Ee(I){ce(I)&&(I.preventDefault(),i.value=!0)}function be(I){ce(I)&&(I.preventDefault(),i.value=!1,ve(Array.from(I.dataTransfer?.files??[])))}function Se(){if(!L||o.value.some(ye=>ye.state==="uploading"))return;const I=o.value.find(ye=>ye.state==="queued");I&&Re(I)}async function Re(I){if(!L||!I.source)return;I.state="uploading",I.progress=0,I.error="",I.retryable=!1;const ye=new Set(o.value.filter(ke=>ke.file).map(ke=>ke.file.id)),j=n?.beginUpload();try{const ke=L.upload(I.source,(Zn,za)=>{I.progress=za>0?Math.min(100,Math.round(Zn/za*100)):0},I.uploadId||void 0);I.handle=yo(ke);const Ve=await ke.promise;I.handle=null;const $t=!!q(I.uid);if(Ve.ok)!$t||G?L.remove(Ve.item.id):(I.state="done",I.progress=100,I.file=Ve.item,I.name=Ve.item.file_name,I.size=Ve.item.file_size,n?.markDirty());else if(Ve.reason==="aborted"||Ve.reason==="network"){const Zn=await je(ye);if(Ve.reason==="aborted"){for(const za of Zn)L.remove(za.id);o.value=o.value.filter(za=>za.uid!==I.uid),Fs(I.uid)}else $t&&Zn[0]&&Zn.length===1?(I.state="done",I.progress=100,I.file=Zn[0],I.name=Zn[0].file_name,I.size=Zn[0].file_size,n?.markDirty()):(I.state="failed",I.error=P("backend::lang.fileupload.upload_failed"),I.retryable=!0)}else if($t)switch(I.state="failed",Ve.reason){case"too_large":I.error=pe.value?P("backend::lang.fileupload.too_large",{name:I.name,size:pe.value}):Ve.message||P("backend::lang.fileupload.upload_failed");break;case"invalid":I.error=Ve.message||P("backend::lang.fileupload.upload_failed");break;default:I.error=Ve.message||P("backend::lang.fileupload.upload_failed"),I.retryable=Ve.status>=500}}finally{j?.(),G||Se()}}async function je(I){if(!L)return[];const ye=await L.list();return ye.data?ye.data.filter(j=>j.pending&&!I.has(j.id)):[]}function We(I){I.state!=="failed"||!I.source||(I.state="queued",I.error="",I.retryable=!1,Se())}async function Ue(I){const ye=o.value.findIndex(ke=>ke.uid===I.uid);if(ye<0)return;switch(o.value=o.value.filter(ke=>ke.uid!==I.uid),Fs(I.uid),I.state){case"uploading":I.handle?.abort(),n?.markDirty(),Se();return;case"queued":case"failed":return}if(!L||!I.file)return;n?.markDirty();const j=await L.remove(I.file.id);if(!j.data&&!G){const ke=[...o.value];ke.splice(Math.min(ye,ke.length),0,I),o.value=ke,Pe(j.error?.message||P("backend::lang.form.error_generic"),"danger")}}function lt(){return o.value.map(I=>I.uid)}function it(I){const ye=new Map(o.value.map(Ve=>[Ve.uid,Ve])),j=I.map(Ve=>ye.get(Ve)).filter(Ve=>!!Ve),ke=o.value.filter(Ve=>!I.includes(Ve.uid));o.value=[...j,...ke]}function wt(){J!==null&&clearTimeout(J),J=setTimeout(()=>{J=null,ln()},FP)}function Pt(){return o.value.filter(I=>I.state==="done"&&I.file).map(I=>I.file.id)}async function ln(){if(!L)return;const I=Pt();if(K){k=I;return}const ye=z;z=null;const j=++F;K=!0;try{const ke=await L.reorder(I);if(k)return;!ke.data&&!G&&j===F&&(ye&&it(ye),Pe(P("backend::lang.fileupload.reorder_failed"),"danger"))}finally{K=!1,k&&(k=null,ln())}}function De(I,ye){const j=o.value.findIndex($t=>$t.uid===I);if(j<0||ye<0||ye>=o.value.length||ye===j)return!1;z===null&&(z=lt());const ke=[...o.value],[Ve]=ke.splice(j,1);return ke.splice(ye,0,Ve),o.value=ke,d.value=P("backend::lang.fileupload.moved",{name:Ve.name,position:ye+1,total:ke.length}),wt(),!0}async function Ae(I,ye){const j=o.value.findIndex(Ve=>Ve.uid===ye.uid);let ke;switch(I.key){case"ArrowUp":case"ArrowLeft":ke=j-1;break;case"ArrowDown":case"ArrowRight":ke=j+1;break;default:return}I.preventDefault(),De(ye.uid,ke)&&(await ze(),p.value?.querySelector(`[data-handle="${ye.uid}"]`)?.focus())}function qe(I,ye){v.value=ye.uid,I.dataTransfer&&(I.dataTransfer.effectAllowed="move",I.dataTransfer.setData("text/plain",ye.name))}function kt(I,ye){v.value!==null&&(I.preventDefault(),m.value=ye.uid)}function Rr(I,ye){v.value!==null&&(I.preventDefault(),De(v.value,o.value.findIndex(j=>j.uid===ye.uid)),Is())}function Is(){v.value=null,m.value=null}function qc(I){const ye=I.file?.content_type??I.source?.type??"";return r.includes(ye.toLowerCase())}function Cn(I){return!I.file||!qc(I)||x.value.has(I.uid)?null:t.field.protected?y.value[I.uid]??null:I.file.thumb_url||I.file.url||null}function Ic(){return typeof URL.revokeObjectURL=="function"}function Fs(I){const ye=y.value[I];if(ye!==void 0){Ic()&&URL.revokeObjectURL(ye);const j={...y.value};delete j[I],y.value=j}S.delete(I)}async function ay(I){if(!L||!I.file||S.has(I.uid)||typeof URL.createObjectURL!="function")return;S.add(I.uid);const ye=await L.thumb(I.file.id);if(!(G||!q(I.uid)||!S.has(I.uid))){if(!ye){x.value=new Set([...x.value,I.uid]);return}y.value={...y.value,[I.uid]:URL.createObjectURL(ye)}}}Be(()=>o.value.map(I=>`${I.uid}:${I.state}`).join(","),()=>{if(t.field.protected)for(const I of o.value)I.state==="done"&&qc(I)&&ay(I)});function Bs(I){x.value=new Set([...x.value,I.uid])}async function Fc(I,ye){if(!L||!I.file||typeof URL.createObjectURL!="function")return;const j=await L.download(I.file.id);if(!j){Pe(P("backend::lang.form.error_generic"),"danger");return}const ke=URL.createObjectURL(j);A.push(ke);const Ve=document.createElement("a");Ve.href=ke,Ve.rel="noopener",ye?Ve.download=I.file.file_name:Ve.target="_blank",Ve.click()}function xa(I){return t.field.useCaption&&I.file?.title?I.file.title:I.name}function Ns(I){return Q.value&&!!I.file?.pending}const zl=w(()=>g.value===null?void 0:q(g.value));function Vs(I){g.value=I.uid,_.value=!0}function ry(I){const ye=zl.value;ye&&(ye.file=I)}function ly(){const I=g.value;g.value=null,I!==null&&p.value?.querySelector(`[data-caption="${I}"]`)?.focus()}const Ls=w(()=>{const I=t.field.thumbOptions?.mode;return I==="fit"||I==="auto"?"object-contain":"object-cover"});return _t(()=>{Y(!0)}),n&&Be(n.revision,()=>{Y(!1)}),qt(()=>{G=!0,J!==null&&(clearTimeout(J),J=null);for(const I of o.value)I.handle?.abort();if(Ic()){for(const I of Object.values(y.value))URL.revokeObjectURL(I);for(const I of A)URL.revokeObjectURL(I)}}),(I,ye)=>(h(),$("div",{id:e.controlId,ref_key:"root",ref:p,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":s.value==="loading"?"true":void 0,class:"flex min-w-0 flex-col gap-4"},[s.value==="loading"?(h(),$("span",_D)):s.value==="failed"?(h(),$("p",xD,T(u(P)("backend::lang.fileupload.load_failed")),1)):(h(),$(_e,{key:2},[D.value&&ie.value.length===0?(h(),$("p",wD,T(u(P)("backend::lang.fileupload.empty")),1)):W.value&&V.value&&ie.value.length>0?(h(),$("ul",kD,[(h(!0),$(_e,null,Ne(ie.value,j=>(h(),$("li",{key:j.uid,"data-file-item":j.uid,"data-state":j.state,class:xe([[j.state==="failed"?"border-danger":"border-border",v.value===j.uid?"opacity-50":"",m.value===j.uid&&v.value!==j.uid?"border-2 border-dashed border-primary bg-sel":""],"relative overflow-hidden rounded-inner border bg-surface"]),onDragover:ke=>kt(ke,j),onDrop:ke=>Rr(ke,j)},[O("div",CD,[j.state==="uploading"?(h(),U(u(co),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):j.state==="failed"?(h(),U(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):j.state==="done"?(h(),$(_e,{key:2},[Cn(j)&&!e.field.protected&&j.file?.url?(h(),$("a",{key:0,href:j.file.url,target:"_blank",rel:"noopener",class:"block size-full","aria-label":u(P)("backend::lang.fileupload.open_preview",{name:j.name})},[O("img",{src:Cn(j)??void 0,alt:xa(j),class:xe([Ls.value,"size-full"]),onError:ke=>Bs(j)},null,42,ED)],8,SD)):Cn(j)?(h(),$("button",{key:1,type:"button",class:"block size-full","aria-label":u(P)("backend::lang.fileupload.open_preview",{name:j.name}),onClick:ke=>Fc(j,!1)},[O("img",{src:Cn(j)??void 0,alt:xa(j),class:xe([Ls.value,"size-full"])},null,10,DD)],8,AD)):x.value.has(j.uid)?(h(),$("span",PD,[H(u(zd),{size:20,"aria-hidden":"true"}),$e(" "+T(u(P)("backend::lang.fileupload.preview_unavailable")),1)])):(h(),U(u(Gr),{key:3,size:20,class:"text-muted","aria-hidden":"true"}))],64)):(h(),U(u(Gr),{key:3,size:20,class:"text-muted","aria-hidden":"true"})),!D.value&&j.state==="done"?(h(),$("button",{key:4,type:"button",draggable:"true","data-handle":j.uid,"aria-label":u(P)("backend::lang.fileupload.move",{name:j.name}),class:xe([Ri,"absolute top-2 left-2 cursor-grab"]),onKeydown:ke=>Ae(ke,j),onDragstart:ke=>qe(ke,j),onDragend:Is},[H(u(Ud),{size:16,"aria-hidden":"true"})],40,OD)):ae("",!0),D.value?ae("",!0):(h(),$("div",MD,[e.field.useCaption&&j.state==="done"?(h(),$("button",{key:0,type:"button","data-caption":j.uid,"aria-label":u(P)("backend::lang.fileupload.edit_details",{name:j.name}),class:xe(Ri),onClick:ke=>Vs(j)},[H(u(fo),{size:16,"aria-hidden":"true"})],8,TD)):ae("",!0),j.state==="failed"&&j.retryable?(h(),$("button",{key:1,type:"button","data-action":"retry","aria-label":u(P)("backend::lang.fileupload.retry"),class:xe(Ri),onClick:ke=>We(j)},[H(u(ni),{size:16,"aria-hidden":"true"})],8,RD)):ae("",!0),O("button",{type:"button","data-action":"remove-file","aria-label":j.state==="uploading"||j.state==="queued"?u(P)("backend::lang.fileupload.cancel_upload",{name:j.name}):u(P)("backend::lang.form.remove_item",{name:j.name}),class:xe(BP),onClick:ke=>Ue(j)},[H(u(Wt),{size:16,"aria-hidden":"true"})],8,qD)]))]),O("div",ID,[O("span",{class:"truncate text-[13px]",title:xa(j)},T(xa(j)),9,FD),O("span",BD,[j.state==="queued"?(h(),$("span",ND,T(u(P)("backend::lang.fileupload.queued")),1)):j.state==="uploading"?(h(),$("span",VD,T(u(P)("backend::lang.fileupload.uploading",{percent:j.progress})),1)):(h(),$("span",LD,T(Z(j.size)),1)),Ns(j)?(h(),$("span",jD,T(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),j.state==="uploading"?(h(),U(u(Ei),{key:0,"model-value":j.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:j.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[H(u(Ai),{class:"h-full bg-primary",style:Fn({width:`${j.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),j.state==="failed"?(h(),$("p",UD,[O("span",zD,T(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(T(j.error),1)])):ae("",!0)])],42,$D))),128))])):W.value&&!V.value&&ie.value.length>0?(h(),$("div",HD,[(h(!0),$(_e,null,Ne(ie.value,j=>(h(),$("div",{key:j.uid,"data-file-item":j.uid,"data-state":j.state,class:"flex items-start gap-4"},[O("div",{class:xe([j.state==="failed"?"border-danger":"border-border","flex size-40 shrink-0 items-center justify-center overflow-hidden rounded-inner border bg-subtle"])},[j.state==="uploading"?(h(),U(u(co),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):j.state==="failed"?(h(),U(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):Cn(j)?(h(),$("img",{key:2,src:Cn(j)??void 0,alt:xa(j),class:xe([Ls.value,"size-full"]),onError:ke=>Bs(j)},null,42,WD)):x.value.has(j.uid)?(h(),$("span",GD,[H(u(zd),{size:20,"aria-hidden":"true"}),$e(" "+T(u(P)("backend::lang.fileupload.preview_unavailable")),1)])):(h(),U(u(Gr),{key:4,size:20,class:"text-muted","aria-hidden":"true"}))],2),O("div",YD,[O("span",{class:"truncate font-semibold",title:xa(j)},T(xa(j)),9,JD),O("span",ZD,[j.state==="queued"?(h(),$("span",QD,T(u(P)("backend::lang.fileupload.queued")),1)):j.state==="uploading"?(h(),$("span",XD,T(u(P)("backend::lang.fileupload.uploading",{percent:j.progress})),1)):(h(),$("span",eP,T(Z(j.size)),1)),Ns(j)?(h(),$("span",tP,T(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),j.state==="uploading"?(h(),U(u(Ei),{key:0,"model-value":j.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:j.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[H(u(Ai),{class:"h-full bg-primary",style:Fn({width:`${j.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),j.state==="failed"?(h(),$("p",nP,[O("span",aP,T(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(T(j.error),1)])):ae("",!0),D.value?ae("",!0):(h(),$("div",rP,[j.state!=="failed"?(h(),U(et,{key:0,size:"sm",variant:"outline","data-action":"replace-file",icon:u(ai),onClick:de},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):ae("",!0),j.state==="failed"&&j.retryable?(h(),U(et,{key:1,size:"sm",variant:"outline","data-action":"retry",icon:u(ni),onClick:ke=>We(j)},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.retry")),1)]),_:1},8,["icon","onClick"])):ae("",!0),e.field.useCaption&&j.state==="done"?(h(),U(et,{key:2,size:"sm",variant:"outline","data-caption":j.uid,icon:u(fo),onClick:ke=>Vs(j)},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.details_submit")),1)]),_:1},8,["data-caption","icon","onClick"])):ae("",!0),H(et,{size:"sm",variant:"danger","data-action":"remove-file",icon:u(Wt),onClick:ke=>Ue(j)},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.remove_file")),1)]),_:1},8,["icon","onClick"])]))])],8,KD))),128))])):ie.value.length>0?(h(),$("ul",lP,[(h(!0),$(_e,null,Ne(ie.value,j=>(h(),$("li",{key:j.uid,"data-file-item":j.uid,"data-state":j.state,class:xe([[j.state==="failed"?"border-danger":"border-border",v.value===j.uid?"opacity-50":"",m.value===j.uid&&v.value!==j.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:ke=>kt(ke,j),onDrop:ke=>Rr(ke,j)},[O("div",sP,[V.value&&!D.value&&j.state==="done"?(h(),$("button",{key:0,type:"button",draggable:"true","data-handle":j.uid,"aria-label":u(P)("backend::lang.fileupload.move",{name:j.name}),class:xe([Qa,"cursor-grab"]),onKeydown:ke=>Ae(ke,j),onDragstart:ke=>qe(ke,j),onDragend:Is},[H(u(Ud),{size:16,"aria-hidden":"true"})],40,iP)):ae("",!0),O("span",uP,[j.state==="uploading"?(h(),U(u(co),{key:0,size:16,class:"animate-spin text-muted","aria-hidden":"true"})):j.state==="failed"?(h(),U(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):Cn(j)?(h(),$("img",{key:2,src:Cn(j)??void 0,alt:"",class:"size-8 object-cover",onError:ke=>Bs(j)},null,40,cP)):(h(),U(u(Gr),{key:3,size:16,class:"text-muted","aria-hidden":"true"}))]),O("span",dP,[e.field.useCaption&&j.file?.title?(h(),$(_e,{key:0},[O("span",{class:"truncate font-semibold",title:j.file.title},T(j.file.title),9,fP),O("span",{class:"truncate text-[13px] text-muted",title:j.name},T(j.name),9,pP)],64)):(h(),$("span",{key:1,class:"truncate",title:j.name},T(j.name),9,vP))]),O("span",hP,[j.state==="queued"?(h(),$("span",mP,T(u(P)("backend::lang.fileupload.queued")),1)):j.state==="uploading"?(h(),$("span",yP,T(u(P)("backend::lang.fileupload.uploading",{percent:j.progress})),1)):(h(),$("span",gP,T(Z(j.size)),1)),Ns(j)?(h(),$("span",bP,T(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),!V.value&&!D.value&&j.state!=="failed"?(h(),U(et,{key:1,size:"sm",variant:"outline","data-action":"replace-file",icon:u(ai),onClick:de},{default:B(()=>[$e(T(u(P)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):ae("",!0),O("span",_P,[j.state==="done"&&j.file?(h(),$(_e,{key:0},[!e.field.protected&&j.file.url?(h(),$("a",{key:0,href:j.file.url,download:"",target:"_blank",rel:"noopener","aria-label":u(P)("backend::lang.fileupload.download",{name:j.name}),class:xe(Qa)},[H(u(jd),{size:16,"aria-hidden":"true"})],8,xP)):e.field.protected?(h(),$("button",{key:1,type:"button","data-action":"download","aria-label":u(P)("backend::lang.fileupload.download",{name:j.name}),class:xe(Qa),onClick:ke=>Fc(j,!0)},[H(u(jd),{size:16,"aria-hidden":"true"})],8,wP)):ae("",!0),e.field.useCaption&&!D.value?(h(),$("button",{key:2,type:"button","data-caption":j.uid,"aria-label":u(P)("backend::lang.fileupload.edit_details",{name:j.name}),class:xe(Qa),onClick:ke=>Vs(j)},[H(u(fo),{size:16,"aria-hidden":"true"})],8,kP)):ae("",!0)],64)):ae("",!0),j.state==="failed"&&j.retryable?(h(),$("button",{key:1,type:"button","data-action":"retry","aria-label":u(P)("backend::lang.fileupload.retry"),class:xe(Qa),onClick:ke=>We(j)},[H(u(ni),{size:16,"aria-hidden":"true"})],8,$P)):ae("",!0),D.value?ae("",!0):(h(),$("button",{key:2,type:"button","data-action":"remove-file","aria-label":j.state==="uploading"||j.state==="queued"?u(P)("backend::lang.fileupload.cancel_upload",{name:j.name}):u(P)("backend::lang.form.remove_item",{name:j.name}),class:xe([Qa,"hover:bg-danger-soft hover:text-danger"]),onClick:ke=>Ue(j)},[H(u(Wt),{size:16,"aria-hidden":"true"})],8,CP))])]),j.state==="uploading"?(h(),U(u(Ei),{key:0,"model-value":j.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:j.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:B(()=>[H(u(Ai),{class:"h-full bg-primary",style:Fn({width:`${j.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),j.state==="failed"?(h(),$("p",SP,[O("span",EP,T(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(T(j.error),1)])):ae("",!0)],42,oP))),128))])):ae("",!0),oe.value?(h(),$("button",{key:4,type:"button","data-fileupload-dropzone":"","aria-describedby":e.describedBy||void 0,class:xe([[i.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:de,onDragover:Ee,onDragleave:ye[0]||(ye[0]=j=>i.value=!1),onDrop:be},[O("span",DP,[H(u(ai),{size:20,class:"text-muted"})]),O("span",PP,T(Ce.value),1),X.value!==""?(h(),$("span",OP,T(X.value),1)):ae("",!0)],42,AP)):le.value&&X.value!==""?(h(),$("p",MP,T(X.value),1)):ae("",!0),c.value>0?(h(),$("p",TP,[H(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,T(u(xr)("backend::lang.fileupload.too_many",c.value,{max:N.value??0})),1)])):ae("",!0)],64)),O("input",{ref_key:"input",ref:f,type:"file",hidden:"",tabindex:"-1","data-fileupload-input":"",accept:se.value,multiple:V.value||void 0,onChange:me},null,40,RP),O("p",qP,T(d.value),1),e.field.useCaption?(h(),U(gD,{key:3,open:_.value,"onUpdate:open":ye[1]||(ye[1]=j=>_.value=j),file:zl.value?.file??null,routes:u(L),preview:zl.value?Cn(zl.value):null,"id-prefix":e.controlId,onSaved:ry,onClosed:ly},null,8,["open","file","routes","preview","id-prefix"])):ae("",!0)],8,bD))}}),VP=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],LP=ee({__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=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),l=w(()=>Ac(n.field));function o(s){const i=s.target.value.trim();if(i===""){a("update:modelValue",null);return}const c=Number(i);a("update:modelValue",Number.isFinite(c)?c:null)}return(s,i)=>(h(),$("input",Le({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(Ba)(e.invalid),"h-input tabular-nums"],onInput:o}),null,16,VP))}}),jP=["id","aria-labelledby","aria-describedby"],UP=ee({__name:"PartialField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e;return(n,a)=>(h(),$("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?(h(),U(Ec,{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"])):(h(),U(Sc,{key:1,"data-partial-failed":"",text:u(P)("backend::lang.extension.partial_failed")},null,8,["text"]))],8,jP))}}),At="default";function yn(e){return e.tab?`tab:${e.tab}`:At}function Cl(e,t){return`${e}-tab-${t}`}function Rs(e,t){return`${e}-panel-${t}`}function qs(e,t){const n=e.context;if(n==null)return!0;const a=Array.isArray(n)?n:[n];return a.length===0||a.includes(t)}function Ht(e,t){const n={};for(const a of e){if(a.readOnly||!NM(a.type))continue;const r=t[a.name];r!==void 0&&(n[a.name]=r)}return n}function Tc(e){const t={};for(const n of e)n.default!==void 0?t[n.name]=n.default:n.type==="switch"||n.type==="checkbox"?t[n.name]=!1:n.type==="relation"&&n.multiple&&(t[n.name]=[]);return t}function Ll(e){const t={};for(const[n,a]of Object.entries(e??{})){const r=Array.isArray(a)?a.filter(l=>typeof l=="string"&&l!==""):typeof a=="string"&&a!==""?[a]:[];r.length>0&&(t[n]=r)}return t}function ca(e){return JSON.stringify(Object.keys(e).sort().map(t=>[t,e[t]]))}function jl(e,t){const n=document.getElementById(`${e}-${t}`);return n?(n.matches("input, select, textarea, button, [tabindex]")||n.setAttribute("tabindex","-1"),n.focus(),!0):!1}const zP={role:"tablist",class:"inline-flex gap-1 rounded-inner border border-border bg-subtle p-1"},HP=["id","data-tab","aria-selected","aria-controls","tabindex","onClick","onKeydown"],KP=["aria-label"],Rc=ee({__name:"FormTabs",props:{tabs:{},modelValue:{},idPrefix:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t;function r(l,o){const s=l.key==="ArrowRight"?1:l.key==="ArrowLeft"?-1:0;if(s===0)return;l.preventDefault();const i=(o+s+n.tabs.length)%n.tabs.length,c=n.tabs[i];c&&(a("update:modelValue",c.key),document.getElementById(Cl(n.idPrefix,i))?.focus())}return(l,o)=>(h(),$("div",zP,[(h(!0),$(_e,null,Ne(e.tabs,(s,i)=>(h(),$("button",{id:u(Cl)(e.idPrefix,i),key:s.key,type:"button",role:"tab","data-tab":s.key,"aria-selected":s.key===e.modelValue?"true":"false","aria-controls":u(Rs)(e.idPrefix,i),tabindex:s.key===e.modelValue?0:-1,class:xe([s.key===e.modelValue?"bg-surface text-text shadow-tab":"text-muted hover:text-text","inline-flex h-[34px] items-center gap-2 rounded-tab px-4 font-semibold transition-colors duration-150 ease-out"]),onClick:c=>a("update:modelValue",s.key),onKeydown:c=>r(c,i)},[$e(T(s.label)+" ",1),s.errors>0?(h(),$("span",{key:0,"data-tab-errors":"","aria-label":u(xr)("backend::lang.form.tab_errors",s.errors),class:"inline-flex h-5 min-w-5 items-center justify-center rounded-pill bg-danger px-1.5 text-[11px] font-bold text-white"},T(s.errors),9,KP)):ae("",!0)],42,HP))),128))]))}}),WP={class:"flex items-start gap-3 p-6 pb-4"},GP={key:0,"data-child-loading":"","aria-hidden":"true",class:"grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},YP={key:1,role:"alert","data-child-load-failed":"",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},JP=["id","role","aria-labelledby"],ZP=["disabled"],QP={class:"flex items-center gap-2.5 border-t border-border px-6 py-4"},XP={class:"ml-auto flex gap-2.5"},eO=ee({__name:"RelationChildModal",props:{open:{type:Boolean},source:{},ownerId:{},relation:{},schema:{},mode:{},childId:{},sessionKey:{},canDelete:{type:Boolean}},emits:["update:open","changed","gone","closed"],setup(e,{emit:t}){const n=e,a=t,r=M({}),l=M({}),o=M({}),s=M(!1),i=M(!1),c=M(!1),d=M(""),f=M(At),p=M($l()),v=M(0),m=M(0),{activeUploads:g,beginUpload:_}=Mc(),y=M(null),x=ja();let S=0;const A=w(()=>`child-${n.relation}`),L=w(()=>n.mode==="preview"),J=w(()=>n.mode==="create"?"create":"update"),z=w(()=>{const ue=((L.value?n.schema.viewForm:n.schema.manageForm)??[]).filter(ge=>qs(ge,J.value));return L.value?ue.map(ge=>({...ge,readOnly:!0,attributes:{...ge.attributes??{},readonly:!0}})):ue}),K=w(()=>z.value.map(X=>X.name)),k=w(()=>{if(!z.value.some(ue=>ue.tab))return[];const X=[];for(const ue of z.value){const ge=yn(ue);let b=X.find(C=>C.key===ge);b||(b={key:ge,label:ue.tab||P("backend::lang.form.tab_default"),errors:0},ge===At?X.unshift(b):X.push(b)),o.value[ue.name]&&(b.errors+=1)}return X}),F=w(()=>Math.max(k.value.findIndex(X=>X.key===f.value),0)),G=w(()=>{if(k.value.length===0)return z.value;const X=k.value[F.value]?.key??At;return z.value.filter(ue=>yn(ue)===X)}),D=w(()=>{const X=n.schema.messages;return n.mode==="create"?Ie(X.createTitle):Ie(L.value?X.previewTitle:X.updateTitle)}),V=w(()=>Ie(n.mode==="create"?n.schema.messages.createSubmit:n.schema.messages.updateSubmit)),W=w(()=>!L.value&&!s.value&&!i.value&&(v.value>0||g.value>0||ca(Ht(z.value,r.value))!==d.value));function N(){return{[ya]:n.sessionKey,[Hm]:p.value}}function Q(){return{...n.source,id:n.ownerId,name:n.relation}}Dt(Vl,{get key(){return n.sessionKey},get childKey(){return p.value},get recordId(){return n.childId??0},routes:X=>yA(n.source,n.ownerId,n.relation,n.childId??0,X,n.sessionKey,p.value),markDirty:()=>{v.value++},pendingChanges:dt(v),revision:dt(m),beginUpload:_,activeUploads:dt(g)}),Dt(Pc,w(()=>r.value)),Dt(Oc,ie);function ie(X,ue){if(r.value={...r.value,[X]:ue},o.value[X]){const ge={...o.value};delete ge[X],o.value=ge}}function te(X,ue){r.value={...X},l.value=ue?.labels??{},d.value=ca(Ht(z.value,r.value))}async function oe(){await ze(),y.value?.querySelector('input:not([type="hidden"]):not([tabindex="-1"]), select, textarea, button, [contenteditable="true"], [tabindex="0"]')?.focus()}function le(){a("update:open",!1),Pe(P("backend::lang.relation.child_gone"),"danger"),a("gone")}async function re(){const X=++S;if(o.value={},i.value=!1,c.value=!1,v.value=0,p.value=$l(),f.value=At,n.mode==="create"||n.childId===null){s.value=!1,te(Tc(z.value)),f.value=k.value[0]?.key??At,await oe();return}s.value=!0;try{const ue=await Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}",{params:{path:{...Q(),child:n.childId},header:N()}});if(X!==S)return;if(ue.data)te(ue.data.data,ue.data.meta),f.value=k.value[0]?.key??At;else if(ue.response.status===404){le();return}else i.value=!0}catch{X===S&&(i.value=!0)}finally{X===S&&(s.value=!1)}X===S&&await oe()}Be(()=>n.open,X=>{X?re():S++},{immediate:!0});async function we(X){if(X){a("update:open",!0);return}c.value||W.value&&!await x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function se(X){o.value=Ll(X);const ue=z.value.filter(b=>o.value[b.name]),ge=ue.find(b=>yn(b)===f.value)??ue[0];ge&&(k.value.length>0&&(f.value=yn(ge)),await ze(),jl(A.value,ge.name))}async function Ce(){if(!(c.value||L.value||s.value||i.value||g.value>0)){c.value=!0;try{const X=Ht(z.value,r.value),ue=n.mode==="create"||n.childId===null?await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records",{params:{path:Q(),header:N()},body:X}):await Oe.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}",{params:{path:{...Q(),child:n.childId},header:N()},body:X});if(ue.data){const b=n.mode==="create"?"created":"updated";o.value={},v.value=0,a("update:open",!1),Pe(Ie(b==="created"?n.schema.messages.created:n.schema.messages.updated)),a("changed",b);return}const ge=ue.response.status;ge===422?await se(ue.error?.error.details):ge===404?le():Pe(ue.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}}async function fe(){if(c.value||n.childId===null)return;const X=n.childId;if(await x.ask({message:Ie(n.schema.messages.deleteOneConfirm),confirmLabel:P("backend::lang.form.delete"),danger:!0})){c.value=!0;try{const ge=await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/delete",{params:{path:Q(),header:{[ya]:n.sessionKey}},body:{ids:[X]}});if(ge.data){v.value=0,a("update:open",!1),Pe(Ie(n.schema.messages.deleted,ge.data.data.deleted||1)),a("changed","deleted");return}if(ge.response.status===404){le();return}Pe(ge.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}}function Z(X){X.preventDefault()}function pe(X){X.preventDefault(),a("closed")}return(X,ue)=>(h(),$(_e,null,[H(u(Rl),{open:e.open,"onUpdate:open":we},{default:B(()=>[H(u(Es),null,{default:B(()=>[H(u(Il),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),H(u(ql),{"data-relation-child-modal":"","data-dialog-content":"","data-mode":e.mode,"aria-modal":"true","aria-describedby":void 0,class:"fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100vh-32px)] w-[calc(100%-32px)] max-w-[720px] -translate-x-1/2 -translate-y-1/2 flex-col rounded-modal bg-surface text-text shadow-pop",onOpenAutoFocus:Z,onCloseAutoFocus:pe},{default:B(()=>[O("div",WP,[H(u(Fl),{class:"min-w-0 flex-1 text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[$e(T(D.value),1)]),_:1}),H(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),disabled:c.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(()=>[H(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),O("div",{ref_key:"body",ref:y,"data-child-body":"",class:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 pb-6"},[s.value?(h(),$("div",GP,[(h(),$(_e,null,Ne(6,ge=>O("div",{key:ge,class:"flex flex-col gap-1.5"},[...ue[3]||(ue[3]=[O("span",{class:"block h-3 w-24 rounded-[6px] bg-skel"},null,-1),O("span",{class:"block h-input rounded-control bg-skel"},null,-1)])])),64))])):i.value?(h(),$("p",YP,T(u(P)("backend::lang.relation.child_load_failed")),1)):(h(),$(_e,{key:2},[H(Nl,{errors:o.value,"field-names":K.value},null,8,["errors","field-names"]),k.value.length>0?(h(),U(Rc,{key:0,modelValue:f.value,"onUpdate:modelValue":ue[0]||(ue[0]=ge=>f.value=ge),tabs:k.value,"id-prefix":A.value,class:"self-start"},null,8,["modelValue","tabs","id-prefix"])):ae("",!0),O("form",{id:k.value.length>0?u(Rs)(A.value,F.value):void 0,role:k.value.length>0?"tabpanel":void 0,"aria-labelledby":k.value.length>0?u(Cl)(A.value,F.value):void 0,novalidate:"",onSubmit:pt(Ce,["prevent"])},[O("fieldset",{disabled:c.value||L.value,class:"m-0 min-w-0 border-0 p-0"},[H(Ul,{fields:G.value,values:r.value,errors:o.value,labels:l.value,source:e.source,"record-id":e.childId,"id-prefix":A.value,onUpdate:ie},null,8,["fields","values","errors","labels","source","record-id","id-prefix"])],8,ZP)],40,JP)],64))],512),O("div",QP,[e.mode==="update"&&e.canDelete&&!s.value&&!i.value?(h(),U(et,{key:0,variant:"danger","data-action":"delete-child",icon:u(Ol),disabled:c.value,onClick:fe},{default:B(()=>[$e(T(u(P)("backend::lang.form.delete")),1)]),_:1},8,["icon","disabled"])):ae("",!0),O("div",XP,[L.value?(h(),U(et,{key:0,variant:"outline","data-action":"cancel",onClick:ue[1]||(ue[1]=ge=>we(!1))},{default:B(()=>[$e(T(u(P)("backend::lang.form.close")),1)]),_:1})):(h(),$(_e,{key:1},[H(et,{variant:"ghost","data-action":"cancel",disabled:c.value,onClick:ue[2]||(ue[2]=ge=>we(!1))},{default:B(()=>[$e(T(u(P)("backend::lang.form.cancel")),1)]),_:1},8,["disabled"]),i.value?ae("",!0):(h(),U(et,{key:0,variant:"primary","data-action":"save-child",disabled:c.value||s.value||u(g)>0,onClick:Ce},{default:B(()=>[$e(T(c.value?u(P)("backend::lang.form.saving"):V.value),1)]),_:1},8,["disabled"]))],64))])])]),_:1},8,["data-mode"])]),_:1})]),_:1},8,["open"]),H(La,{open:u(x).request.value!==null,message:u(x).request.value?.message??"","confirm-label":u(x).request.value?.confirmLabel,danger:u(x).request.value?.danger,onConfirm:u(x).confirm,onCancel:u(x).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),tO={class:"flex items-start gap-3"},nO={class:"flex min-w-0 flex-1 flex-col gap-1"},aO=["title"],rO={key:0,class:"truncate text-[13px] text-muted"},lO=["disabled"],oO={class:"relative block"},sO={class:"sr-only"},iO=["value","placeholder"],uO=["aria-multiselectable","aria-label","aria-busy"],cO=["data-candidate","aria-selected","onClick","onKeydown"],dO={class:"flex size-8 shrink-0 items-center justify-center rounded-full bg-subtle text-[12px] font-bold","aria-hidden":"true"},fO={class:"flex min-w-0 flex-1 flex-col leading-tight"},pO={class:"truncate font-semibold"},vO={key:0,class:"truncate text-[13px] text-muted"},hO={key:0,class:"block size-2.5 rounded-full bg-primary"},mO={key:0,role:"presentation",class:"px-1 py-3 text-[13px] text-muted"},yO={key:1,role:"presentation","data-candidates-empty":"",class:"px-1 py-3 text-[13px] text-muted"},gO=["aria-label"],bO={"data-candidates-range":"",class:"flex-1"},_O=["aria-label","disabled"],xO=["aria-label","disabled"],wO={class:"flex gap-2.5"},kO=["disabled"],$O=["disabled"],CO=["disabled","aria-busy"],SO=5,EO=300,np="inline-flex size-[34px] items-center justify-center rounded-tab border border-border text-text hover:bg-hover disabled:cursor-not-allowed disabled:opacity-60",AO=ee({__name:"RelationPickerModal",props:{open:{type:Boolean},source:{},recordId:{},relation:{},schema:{},sessionKey:{}},emits:["update:open","linked","closed"],setup(e,{emit:t}){const n=e,a=t,r=M(""),l=M(1),o=M([]),s=M(null),i=M(!1),c=M(!1),d=M(new Set),f=M(null),p=M(1),v=M(null),m=M({}),g=M({}),_=M(null);let y=0,x=null;const S=w(()=>n.schema.manage.list.columns),A=w(()=>S.value[0]?.key??""),L=w(()=>S.value[1]?.key??""),J=w(()=>d.value.size),z=`relation-${n.relation}-candidates`,K=w(()=>n.schema.pivotForm??[]),k=w(()=>K.value.map(b=>b.name)),F=w(()=>K.value.length>0),G=w(()=>`link-${n.relation}`);function D(){return n.sessionKey?{[ya]:n.sessionKey}:void 0}const V=w(()=>{const b=s.value;if(!b||b.total===0)return"";const C=(b.page-1)*b.per_page+1,E=Math.min(b.page*b.per_page,b.total);return P("backend::lang.relation.candidates_range",{from:C,to:E,total:b.total})}),W=w(()=>Math.max(s.value?.last_page??1,1));function N(b){const C=b.id;return typeof C=="number"&&Number.isInteger(C)?C:typeof C=="string"&&/^\d+$/.test(C)?Number(C):null}function Q(b,C){const E=C===""?void 0:b[C];return typeof E=="string"||typeof E=="number"?String(E):""}function ne(b){return b.split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(C=>C.charAt(0).toUpperCase()).join("")}async function ie(){const b=++y;i.value=!0;try{const C=r.value.trim(),{data:E}=await Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/candidates",{params:{path:{...n.source,id:n.recordId,name:n.relation},query:{search:C===""?void 0:C,page:l.value,per_page:SO},header:D()}});if(b!==y)return;o.value=E?.data??[],s.value=E?.meta??null}catch{b===y&&(o.value=[],s.value=null)}finally{b===y&&(i.value=!1)}}function te(){x!==null&&(clearTimeout(x),x=null),y++,r.value="",l.value=1,o.value=[],s.value=null,i.value=!1,d.value=new Set,p.value=1,v.value=null,m.value={},g.value={}}Be(()=>n.open,b=>{b?(te(),ie()):te()},{immediate:!0});function oe(b){r.value=b.target.value,x!==null&&clearTimeout(x),x=setTimeout(()=>{x=null,l.value=1,ie()},EO)}function le(b){b<1||b>W.value||b===l.value||(l.value=b,ie())}function re(b){const C=N(b);return C!==null&&d.value.has(C)}function we(b){const C=N(b);if(C===null)return;if(F.value){d.value=new Set([C]),v.value=b;return}const E=new Set(d.value);E.has(C)?E.delete(C):E.add(C),d.value=E}async function se(){!F.value||d.value.size===0||!v.value||(p.value=2,m.value=Tc(K.value),g.value={},await ze(),_.value?.querySelector('input, select, textarea, button, [contenteditable="true"]')?.focus())}async function Ce(){if(c.value)return;p.value=1,g.value={},await ze(),(document.querySelector(`#${z} [aria-selected="true"]`)??f.value)?.focus()}function fe(b,C){if(m.value={...m.value,[b]:C},g.value[b]){const E={...g.value};delete E[b],g.value=E}}function Z(b,C,E){switch(b.key){case" ":b.preventDefault(),we(C);break;case"Enter":b.preventDefault(),we(C),F.value&&se();break;case"ArrowDown":case"ArrowUp":{b.preventDefault();const R=b.currentTarget.parentElement?.querySelectorAll('[role="option"]'),q=b.key==="ArrowDown"?1:-1;R?.[Math.min(Math.max(E+q,0),R.length-1)]?.focus();break}}}function pe(b){a("update:open",b)}async function X(){const b=[...d.value];if(c.value||b.length===0)return;const C=F.value;c.value=!0;try{const E=await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/link",{params:{path:{...n.source,id:n.recordId,name:n.relation},header:D()},body:C?{ids:b.slice(0,1),pivot:Ht(K.value,m.value)}:{ids:b}});if(E.data){pe(!1),a("linked",E.data.data.linked??b.length);return}const R=E.response.status;if(C&&R===422){g.value=Ll(E.error?.error.details);const q=K.value.find(Y=>g.value[Y.name]);q&&(await ze(),jl(G.value,q.name));return}if(C&&R===404){Pe(P("backend::lang.relation.child_gone"),"danger"),d.value=new Set,v.value=null,p.value=1,ie();return}if(C){Pe(P("backend::lang.form.error_generic"),"danger");return}Pe(E.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}function ue(b){b.preventDefault(),f.value?.focus()}function ge(b){b.preventDefault(),a("closed")}return qt(()=>{x!==null&&clearTimeout(x)}),(b,C)=>(h(),U(u(Rl),{open:e.open,"onUpdate:open":pe},{default:B(()=>[H(u(Es),null,{default:B(()=>[H(u(Il),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),H(u(ql),{"data-relation-picker":"","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 rounded-modal bg-surface p-6 text-text shadow-pop",onOpenAutoFocus:ue,onCloseAutoFocus:ge},{default:B(()=>[O("div",tO,[O("div",nO,[H(u(Fl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[$e(T(p.value===2?u(Ie)(e.schema.messages.pivotTitle):u(Ie)(e.schema.messages.link)),1)]),_:1}),p.value===1?(h(),U(u(bl),{key:0,class:"text-muted"},{default:B(()=>[$e(T(u(Ie)(e.schema.messages.linkHint)),1)]),_:1})):(h(),U(u(bl),{key:1,class:"flex min-w-0 flex-col","data-chosen-record":""},{default:B(()=>[O("span",{class:"truncate font-semibold text-text",title:Q(v.value??{},A.value)},T(Q(v.value??{},A.value)),9,aO),L.value?(h(),$("span",rO,T(Q(v.value??{},L.value)),1)):ae("",!0)]),_:1}))]),H(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),class:"flex size-[34px] shrink-0 items-center justify-center rounded-tab bg-subtle text-muted hover:bg-hover hover:text-text"},{default:B(()=>[H(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])]),p.value===2?(h(),$("div",{key:0,ref_key:"stepTwo",ref:_,"data-pivot-step":"",class:"flex min-h-0 flex-col gap-4 overflow-y-auto"},[H(Nl,{errors:g.value,"field-names":k.value},null,8,["errors","field-names"]),O("form",{novalidate:"",onSubmit:pt(X,["prevent"])},[O("fieldset",{disabled:c.value,class:"m-0 min-w-0 border-0 p-0"},[H(Ul,{fields:K.value,values:m.value,errors:g.value,source:e.source,"record-id":null,"id-prefix":G.value,onUpdate:fe},null,8,["fields","values","errors","source","id-prefix"])],8,lO)],32)],512)):ae("",!0),Ra(O("label",oO,[O("span",sO,T(u(P)("backend::lang.list.search")),1),H(u(ds),{size:18,class:"pointer-events-none absolute top-1/2 left-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("input",{ref_key:"searchInput",ref:f,type:"search","data-candidate-search":"",value:r.value,placeholder:u(Ie)(e.schema.messages.candidateSearch),"aria-controls":z,class:"h-input w-full rounded-control border border-border-strong bg-surface pr-3.5 pl-10",onInput:oe},null,40,iO)],512),[[Ji,p.value===1]]),Ra(O("ul",{id:z,role:"listbox","aria-multiselectable":F.value?"false":"true","aria-label":u(Ie)(e.schema.messages.link),"aria-busy":i.value?"true":void 0,class:"flex min-h-0 flex-col gap-2 overflow-y-auto"},[(h(!0),$(_e,null,Ne(o.value,(E,R)=>(h(),$("li",{key:N(E)??`row-${R}`,role:"option",tabindex:"0","data-candidate":N(E)??void 0,"aria-selected":re(E)?"true":"false",class:xe([re(E)?"border-[#e0b020] bg-sel":"border-border hover:bg-hover","flex h-[54px] cursor-pointer items-center gap-3 rounded-inner border px-3 transition-colors duration-150 ease-out"]),onClick:q=>we(E),onKeydown:q=>Z(q,E,R)},[O("span",dO,T(ne(Q(E,A.value))),1),O("span",fO,[O("span",pO,T(Q(E,A.value)),1),L.value?(h(),$("span",vO,T(Q(E,L.value)),1)):ae("",!0)]),F.value?(h(),$("span",{key:0,"data-radio":"",class:xe([re(E)?"border-primary":"border-border-strong bg-surface","flex size-[18px] shrink-0 items-center justify-center rounded-full border"]),"aria-hidden":"true"},[re(E)?(h(),$("span",hO)):ae("",!0)],2)):(h(),$("span",{key:1,class:xe([re(E)?"border-primary bg-primary text-on-primary":"border-border-strong bg-surface","flex size-[18px] shrink-0 items-center justify-center rounded-checkbox border"]),"aria-hidden":"true"},[re(E)?(h(),U(u(_r),{key:0,size:14})):ae("",!0)],2))],42,cO))),128)),i.value&&o.value.length===0?(h(),$("li",mO,T(u(P)("backend::lang.list.loading")),1)):!i.value&&o.value.length===0?(h(),$("li",yO,T(u(P)("backend::lang.relation.no_candidates")),1)):ae("",!0)],8,uO),[[Ji,p.value===1]]),p.value===1&&s.value&&s.value.total>0?(h(),$("nav",{key:1,"aria-label":u(P)("backend::lang.list.pagination"),class:"flex items-center gap-2 text-[13px] text-muted"},[O("span",bO,T(V.value),1),O("button",{type:"button","data-page":"prev","aria-label":u(P)("backend::lang.list.prev_page"),class:xe(np),disabled:i.value||l.value<=1,onClick:C[0]||(C[0]=E=>le(l.value-1))},[H(u(cs),{size:16,"aria-hidden":"true"})],8,_O),O("button",{type:"button","data-page":"next","aria-label":u(P)("backend::lang.list.next_page"),class:xe(np),disabled:i.value||l.value>=W.value,onClick:C[1]||(C[1]=E=>le(l.value+1))},[H(u(Pl),{size:16,"aria-hidden":"true"})],8,xO)],8,gO)):ae("",!0),O("div",wO,[p.value===2?(h(),$("button",{key:0,type:"button","data-action":"back",disabled:c.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:Ce},T(u(P)("backend::lang.relation.back")),9,kO)):(h(),U(u(Sr),{key:1,"data-action":"cancel",class:"inline-flex h-button flex-1 items-center justify-center rounded-control border border-border-strong bg-surface font-semibold hover:bg-hover"},{default:B(()=>[$e(T(u(P)("backend::lang.form.cancel")),1)]),_:1})),F.value&&p.value===1?(h(),$("button",{key:2,type:"button","data-action":"next",disabled:J.value===0,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",onClick:se},T(u(P)("backend::lang.relation.next")),9,$O)):(h(),$("button",{key:3,type:"button","data-action":"confirm-link",disabled:c.value||J.value===0,"aria-busy":c.value?"true":void 0,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",onClick:X},[F.value?(h(),$(_e,{key:0},[$e(T(c.value?u(P)("backend::lang.form.saving"):u(Ie)(e.schema.messages.linkSubmit)),1)],64)):(h(),$(_e,{key:1},[$e(T(u(P)("backend::lang.relation.add_count",{count:J.value})),1)],64))],8,CO))])]),_:1})]),_:1})]),_:1},8,["open"]))}}),DO={class:"flex items-start gap-3"},PO={class:"flex min-w-0 flex-1 flex-col gap-1"},OO={key:0,"data-pivot-loading":"","aria-hidden":"true",class:"flex flex-col gap-1.5"},MO={key:1,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},TO=["disabled"],RO={class:"flex gap-2.5"},qO=["disabled"],IO=["disabled"],FO=ee({__name:"RelationPivotModal",props:{open:{type:Boolean},source:{},ownerId:{},relation:{},schema:{},childId:{},childName:{},sessionKey:{}},emits:["update:open","saved","gone","closed"],setup(e,{emit:t}){const n=e,a=t,r=M({}),l=M({}),o=M(!1),s=M(!1),i=M(!1),c=M(""),d=ja();let f=0;const p=w(()=>`pivot-${n.relation}`),v=w(()=>n.schema.pivotForm??[]),m=w(()=>v.value.map(K=>K.name)),g=w(()=>!o.value&&!s.value&&ca(Ht(v.value,r.value))!==c.value);function _(){return{[ya]:n.sessionKey}}function y(K){return{...n.source,id:n.ownerId,name:n.relation,child:K}}function x(K,k){if(r.value={...r.value,[K]:k},l.value[K]){const F={...l.value};delete F[K],l.value=F}}function S(){a("update:open",!1),Pe(P("backend::lang.relation.child_gone"),"danger"),a("gone")}async function A(){const K=++f;if(l.value={},s.value=!1,i.value=!1,r.value={},c.value=ca({}),n.childId!==null){o.value=!0;try{const k=await Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/pivot/{child}",{params:{path:y(n.childId),header:_()}});if(K!==f)return;k.data?(r.value={...k.data.data},c.value=ca(Ht(v.value,r.value))):k.response.status===404?S():s.value=!0}catch{K===f&&(s.value=!0)}finally{K===f&&(o.value=!1)}}}Be(()=>n.open,K=>{K?A():f++},{immediate:!0});async function L(K){if(K){a("update:open",!0);return}i.value||g.value&&!await d.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function J(){if(!(i.value||o.value||s.value||n.childId===null)){i.value=!0;try{const K=await Oe.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/pivot/{child}",{params:{path:y(n.childId),header:_()},body:Ht(v.value,r.value)});if(K.data){l.value={},c.value=ca(Ht(v.value,r.value)),a("update:open",!1),Pe(Ie(n.schema.messages.pivotSaved)),a("saved");return}const k=K.response.status;if(k===422){l.value=Ll(K.error?.error.details);const F=v.value.find(G=>l.value[G.name]);F&&(await ze(),jl(p.value,F.name))}else k===404?S():Pe(P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{i.value=!1}}}function z(K){K.preventDefault(),a("closed")}return(K,k)=>(h(),$(_e,null,[H(u(Rl),{open:e.open,"onUpdate:open":L},{default:B(()=>[H(u(Es),null,{default:B(()=>[H(u(Il),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),H(u(ql),{"data-relation-pivot-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:z},{default:B(()=>[O("div",DO,[O("div",PO,[H(u(Fl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:B(()=>[$e(T(u(Ie)(e.schema.messages.pivotTitle)),1)]),_:1}),H(u(bl),{class:"truncate text-muted",title:e.childName},{default:B(()=>[$e(T(e.childName),1)]),_:1},8,["title"])]),H(u(Sr),{"data-action":"close","aria-label":u(P)("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(()=>[H(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),o.value?(h(),$("div",OO,[...k[1]||(k[1]=[O("span",{class:"block h-3 w-24 rounded-[6px] bg-skel"},null,-1),O("span",{class:"block h-input rounded-control bg-skel"},null,-1)])])):s.value?(h(),$("p",MO,T(u(P)("backend::lang.relation.child_load_failed")),1)):(h(),$("form",{key:2,class:"flex flex-col gap-4",novalidate:"",onSubmit:pt(J,["prevent"])},[H(Nl,{errors:l.value,"field-names":m.value},null,8,["errors","field-names"]),O("fieldset",{disabled:i.value,class:"m-0 min-w-0 border-0 p-0"},[H(Ul,{fields:v.value,values:r.value,errors:l.value,source:e.source,"record-id":null,"id-prefix":p.value,onUpdate:x},null,8,["fields","values","errors","source","id-prefix"])],8,TO)],32)),O("div",RO,[O("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:k[0]||(k[0]=F=>L(!1))},T(u(P)("backend::lang.form.cancel")),9,qO),O("button",{type:"button","data-action":"save-pivot",disabled:i.value||o.value||s.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",onClick:J},T(i.value?u(P)("backend::lang.form.saving"):u(Ie)(e.schema.messages.pivotSubmit)),9,IO)])]),_:1})]),_:1})]),_:1},8,["open"]),H(La,{open:u(d).request.value!==null,message:u(d).request.value?.message??"","confirm-label":u(d).request.value?.confirmLabel,danger:u(d).request.value?.danger,onConfirm:u(d).confirm,onCancel:u(d).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),BO=["id","data-relation-name","data-deferred","aria-labelledby","aria-describedby"],NO={class:"flex flex-col gap-2"},VO={class:"flex flex-wrap items-center gap-3"},LO={class:"flex min-w-0 flex-1 flex-col"},jO=["id"],UO=["id"],zO={key:0,class:"relative block w-[220px] max-w-full"},HO={class:"sr-only"},KO=["value","placeholder"],WO={key:0,"data-relation-pending":"",class:"flex items-center gap-2 text-[13px] text-muted"},GO={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},YO={key:1,class:"overflow-hidden rounded-inner border border-border"},JO={"data-relation-empty":"",class:"text-muted"},ZO=["aria-label","onClick"],QO=300,XO=ee({__name:"RelationManager",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Vl,null),a=w(()=>t.field.relation||t.field.name),r=w(()=>typeof t.recordId=="number"?t.recordId:n&&n.recordId===0&&t.field.deferrable?0:null),l=w(()=>r.value===0),o=w(()=>t.source!=null&&r.value!==null),s=n?.key??$l(),i=M(null),c=M([]),d=M(null),f=M(!0),p=M(!1),v=M(""),m=M(1),g=M(null),_=M([]),y=M(!1),x=M(!1),S=M(!1),A=M("create"),L=M(null),J=M(!1),z=M(null),K=M("");let k=null,F=null,G=null;const D=ja();let V=0,W=null;const N=w(()=>i.value?.view.list.columns??[]),Q=w(()=>i.value?.view.toolbarButtons??[]),ne=w(()=>i.value?.messages),ie=w(()=>`${t.controlId}-heading`),te=w(()=>`${t.controlId}-comment`),oe=w(()=>Q.value.includes("create")&&(i.value?.manageForm?.length??0)>0),le=w(()=>Q.value.includes("update")&&(i.value?.manageForm?.length??0)>0),re=w(()=>i.value?.kind==="belongsToMany"&&(i.value?.pivotForm?.length??0)>0&&(Q.value.includes("link")||Q.value.includes("update"))),we=w(()=>(i.value?.viewForm?.length??0)>0),se=w(()=>le.value?"update":re.value?"pivot":we.value?"preview":null),Ce=w(()=>le.value&&re.value),fe=w(()=>Q.value.includes("unlink")||Q.value.includes("delete"));function Z(){return l.value?{[ya]:s}:void 0}function pe(){return{...t.source,id:r.value,name:a.value}}function X(){l.value&&n?.markDirty()}async function ue(){const{data:De}=await Oe.GET("/{vendor}/{plugin}/{controller}/schema/relation/{name}",{params:{path:{...t.source,name:a.value}}});i.value=De?.data??null}async function ge(){const De=++V;f.value=!0,p.value=!1;try{const Ae=v.value.trim(),qe={page:m.value};Ae!==""&&(qe.search=Ae),g.value&&(qe.sort=g.value.column,qe.dir=g.value.dir);const{data:kt}=await Oe.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}",{params:{path:pe(),query:qe,header:Z()}});if(De!==V)return;c.value=kt?.data??[],d.value=kt?.meta??null,p.value=!kt}catch{De===V&&(c.value=[],d.value=null,p.value=!0)}finally{De===V&&(f.value=!1)}}async function b(){if(o.value){try{await ue()}catch{i.value=null}if(!i.value){f.value=!1,p.value=!0;return}await ge()}}function C(De){v.value=De.target.value,W!==null&&clearTimeout(W),W=setTimeout(()=>{W=null,m.value=1,_.value=[],ge()},QO)}function E(De){m.value=De,_.value=[],ge()}function R(De){const Ae=g.value;Ae?.column!==De?g.value={column:De,dir:"asc"}:Ae.dir==="asc"?g.value={column:De,dir:"desc"}:g.value=null,m.value=1,_.value=[],ge()}function q(){return _.value.map(Number).filter(De=>Number.isInteger(De)&&De>0)}function Y(De){const Ae=De.id;return typeof Ae=="number"&&Number.isInteger(Ae)?Ae:typeof Ae=="string"&&/^\d+$/.test(Ae)?Number(Ae):null}function de(De){const Ae=N.value[0]?.key,qe=Ae?De[Ae]:void 0;return typeof qe=="string"||typeof qe=="number"?String(qe):""}async function ve(){const De=q();if(!(y.value||De.length===0||!i.value||!await D.ask({message:Ie(ne.value?.unlinkConfirm,De.length),confirmLabel:Ie(ne.value?.unlinkSelected),danger:!0}))){y.value=!0;try{const qe=await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/unlink",{params:{path:pe(),header:Z()},body:{ids:De}});if(qe.data){_.value=[],X(),Pe(Ie(ne.value?.unlinked,qe.data.data.removed??De.length)),await ge();return}Pe(qe.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{y.value=!1}}}async function me(De){y.value=!0;try{const Ae=await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/delete",{params:{path:pe(),header:Z()},body:{ids:De}});if(Ae.data){_.value=[],X(),Pe(Ie(ne.value?.deleted,Ae.data.data.deleted||De.length)),await ge();return}Pe(Ae.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{y.value=!1}}async function ce(){const De=q();y.value||De.length===0||!i.value||await D.ask({message:Ie(ne.value?.deleteConfirm,De.length),confirmLabel:Ie(ne.value?.deleteSelected),danger:!0},()=>me(De))}async function Ee(De){X(),Pe(Ie(ne.value?.linked,De)),_.value=[],await ge()}function be(De){k=De.currentTarget??G,A.value="create",L.value=null,S.value=!0}function Se(De,Ae){const qe=Y(De);qe!==null&&(k=Ae,z.value=qe,K.value=de(De),J.value=!0)}function Re(De,Ae){const qe=se.value,kt=Y(De);if(!(qe===null||kt===null)){if(qe==="pivot"){Se(De,Ae);return}k=Ae,A.value=qe,L.value=kt,S.value=!0}}async function je(){X(),_.value=[],await ge()}async function We(){X(),await ge()}async function Ue(){_.value=[],await ge()}function lt(){const De=k&&k.isConnected?k:null;k=null,De?.focus()}function it(){F?.focus()}function wt(De){const Ae=De?.$el;return Ae instanceof HTMLElement?Ae:null}function Pt(De){F=wt(De)}function ln(De){G=wt(De)}return qt(()=>{W!==null&&clearTimeout(W)}),b(),(De,Ae)=>o.value?(h(),$("section",{key:0,id:e.controlId,"data-relation-manager":"","data-relation-name":a.value,"data-deferred":l.value?"true":void 0,"aria-labelledby":ie.value,"aria-describedby":e.field.comment?te.value:void 0,tabindex:"-1",class:"flex flex-col gap-4"},[O("div",NO,[O("header",VO,[O("div",LO,[O("h2",{id:ie.value,class:"text-[17px] font-bold tracking-[-0.01em]"},T(i.value?.label||e.field.label||a.value),9,jO),e.field.comment?(h(),$("p",{key:0,id:te.value,class:"text-[13px] text-muted"},T(e.field.comment),9,UO)):ae("",!0)]),i.value?.view.showSearch?(h(),$("label",zO,[O("span",HO,T(u(P)("backend::lang.list.search")),1),H(u(ds),{size:16,class:"pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("input",{type:"search","data-relation-search":"",value:v.value,placeholder:u(P)("backend::lang.list.search_prompt"),class:"h-[38px] w-full rounded-control border border-transparent bg-subtle pr-3 pl-9",onInput:C,onKeydown:Ae[0]||(Ae[0]=yr(pt(()=>{},["prevent"]),["enter"]))},null,40,KO)])):ae("",!0),(h(!0),$(_e,null,Ne(Q.value,qe=>(h(),$(_e,{key:qe},[qe==="create"&&oe.value?(h(),U(et,{key:0,ref_for:!0,ref:ln,"data-action":"create",size:"sm",variant:"primary",icon:u(Lu),disabled:y.value||!i.value,"aria-haspopup":"dialog",onClick:be},{default:B(()=>[$e(T(u(Ie)(ne.value?.create)),1)]),_:1},8,["icon","disabled"])):qe==="link"?(h(),U(et,{key:1,ref_for:!0,ref:Pt,"data-action":"link",size:"sm",variant:oe.value?"outline":"primary",icon:u(Xv),disabled:y.value||!i.value,"aria-haspopup":"dialog",onClick:Ae[1]||(Ae[1]=kt=>x.value=!0)},{default:B(()=>[$e(T(u(Ie)(ne.value?.link)),1)]),_:1},8,["variant","icon","disabled"])):qe==="delete"?(h(),U(et,{key:2,"data-action":"delete",size:"sm",variant:"danger",icon:u(Ol),disabled:y.value||_.value.length===0,onClick:ce},{default:B(()=>[$e(T(u(Ie)(ne.value?.deleteSelected)),1)]),_:1},8,["icon","disabled"])):qe==="unlink"?(h(),U(et,{key:3,"data-action":"unlink",size:"sm",variant:"danger",icon:u(Qv),disabled:y.value||_.value.length===0,onClick:ve},{default:B(()=>[$e(T(u(Ie)(ne.value?.unlinkSelected)),1)]),_:1},8,["icon","disabled"])):ae("",!0)],64))),128))]),l.value?(h(),$("p",WO,[H(u(C0),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,T(u(P)("backend::lang.relation.pending_note")),1)])):ae("",!0)]),p.value&&!f.value?(h(),$("p",GO,T(u(P)("backend::lang.relation.load_failed")),1)):(h(),$("div",YO,[H(Um,{selected:_.value,"onUpdate:selected":Ae[2]||(Ae[2]=qe=>_.value=qe),variant:"relation",columns:N.value,rows:c.value,loading:f.value,selectable:fe.value,sortable:!0,sort:g.value,openable:se.value!==null,trailing:Ce.value,onSort:R,onOpen:Re},{empty:B(()=>[O("span",JO,T(u(Ie)(ne.value?.empty)),1)]),trailing:B(({row:qe})=>[O("button",{type:"button","data-action":"edit-pivot","aria-label":u(Ie)(ne.value?.editPivot,void 0,{name:de(qe)}),class:"flex size-8 items-center justify-center rounded-pager text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text",onClick:kt=>Se(qe,kt.currentTarget)},[H(u(Y0),{size:16,"aria-hidden":"true"})],8,ZO)]),_:1},8,["selected","columns","rows","loading","selectable","sort","openable","trailing"]),d.value&&d.value.last_page>1?(h(),U(zm,{key:0,meta:d.value,loading:f.value,"per-page-options":[],"per-page":d.value.per_page,onPage:E},null,8,["meta","loading","per-page"])):ae("",!0)])),i.value&&Q.value.includes("link")?(h(),U(AO,{key:2,open:x.value,"onUpdate:open":Ae[3]||(Ae[3]=qe=>x.value=qe),source:e.source,"record-id":r.value,relation:a.value,schema:i.value,"session-key":l.value?u(s):null,onLinked:Ee,onClosed:it},null,8,["open","source","record-id","relation","schema","session-key"])):ae("",!0),i.value&&(oe.value||se.value==="update"||se.value==="preview")?(h(),U(eO,{key:3,open:S.value,"onUpdate:open":Ae[4]||(Ae[4]=qe=>S.value=qe),source:e.source,"owner-id":r.value,relation:a.value,schema:i.value,mode:A.value,"child-id":L.value,"session-key":u(s),"can-delete":Q.value.includes("delete"),onChanged:je,onGone:Ue,onClosed:lt},null,8,["open","source","owner-id","relation","schema","mode","child-id","session-key","can-delete"])):ae("",!0),i.value&&re.value?(h(),U(FO,{key:4,open:J.value,"onUpdate:open":Ae[5]||(Ae[5]=qe=>J.value=qe),source:e.source,"owner-id":r.value,relation:a.value,schema:i.value,"child-id":z.value,"child-name":K.value,"session-key":u(s),onSaved:We,onGone:Ue,onClosed:lt},null,8,["open","source","owner-id","relation","schema","child-id","child-name","session-key"])):ae("",!0),H(La,{open:u(D).request.value!==null,message:u(D).request.value?.message??"","confirm-label":u(D).request.value?.confirmLabel,danger:u(D).request.value?.danger,busy:u(D).busy.value,onConfirm:u(D).confirm,onCancel:u(D).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])],8,BO)):ae("",!0)}}),eM=["id","aria-describedby"],tM=["data-relation"],nM={class:"flex size-[22px] items-center justify-center rounded-full bg-primary text-[10px] font-bold text-on-primary","aria-hidden":"true"},aM={class:"font-semibold"},rM=["aria-label","onClick"],lM=["id","aria-expanded","aria-controls","aria-activedescendant","aria-required","aria-invalid","aria-describedby","value","placeholder"],oM={key:1,class:"relative"},sM=["id","aria-expanded","aria-controls","aria-activedescendant","aria-required","aria-invalid","aria-describedby","value","placeholder"],iM=["id"],uM=["id","data-value","aria-selected","onMousedown"],cM={key:0,role:"presentation",class:"px-3 py-2 text-[13px] text-muted"},dM={key:1,role:"presentation",class:"px-3 py-2 text-[13px] text-muted"},fM={key:2,role:"presentation",class:"p-1"},pM=20,vM=300,hM=ee({__name:"RelationField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.field.readOnly?"readonly":n.field.multiple?"multiple":"single"),l=w(()=>`${n.controlId}-listbox`),o=M({});Be(()=>n.labels,te=>{const oe={...o.value};for(const le of te??[])oe[le.value]=le.label;o.value=oe},{immediate:!0});function s(te){return typeof te=="number"&&Number.isInteger(te)?te:typeof te=="string"&&/^\d+$/.test(te)?Number(te):null}const i=w(()=>s(n.modelValue)),c=w(()=>Array.isArray(n.modelValue)?n.modelValue.map(s).filter(te=>te!==null):[]);function d(te){return o.value[te]??String(te)}function f(te){return te.split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(oe=>oe.charAt(0).toUpperCase()).join("")}const p=w(()=>{const te=n.labels?.[0]?.label;return te||(n.field.emptyOption??"—")}),v=M(!1),m=M(""),g=M([]),_=M(0),y=M(0),x=M(!1),S=M(-1);let A=0,L=null;const J=w(()=>_.value{const te=[];r.value==="single"&&n.field.emptyOption!==void 0&&te.push({key:"empty",label:n.field.emptyOption,value:null,muted:!0});const oe=new Set(c.value);for(const le of g.value)r.value==="multiple"&&oe.has(le.value)||te.push({key:`option-${le.value}`,label:le.label,value:le.value,muted:!1});return te});function k(te){return`${l.value}-${te}`}function F(){v.value||(v.value=!0,S.value=-1,z(1,!1))}function G(){v.value=!1,m.value="",S.value=-1,L!==null&&(clearTimeout(L),L=null)}function D(te){m.value=te.target.value,v.value=!0,S.value=-1,L!==null&&clearTimeout(L),L=setTimeout(()=>{L=null,z(1,!1)},vM)}function V(){J.value&&!x.value&&z(_.value+1,!0)}function W(te){const oe=te.target;oe.scrollTop+oe.clientHeight>=oe.scrollHeight-24&&V()}function N(te){r.value==="multiple"?te.value!==null&&!c.value.includes(te.value)&&a("update:modelValue",[...c.value,te.value]):a("update:modelValue",te.value),G()}function Q(te){a("update:modelValue",c.value.filter(oe=>oe!==te))}function ne(te){switch(te.key){case"ArrowDown":te.preventDefault(),v.value?S.value=Math.min(S.value+1,K.value.length-1):F();break;case"ArrowUp":te.preventDefault(),S.value=Math.max(S.value-1,0);break;case"Enter":if(v.value){te.preventDefault();const oe=K.value[S.value];oe&&N(oe)}break;case"Escape":v.value&&(te.preventDefault(),G());break;case"Backspace":r.value==="multiple"&&m.value===""&&c.value.length>0&&Q(c.value[c.value.length-1]);break}}const ie=w(()=>i.value!==null?d(i.value):n.field.emptyOption??"");return qt(()=>{L!==null&&clearTimeout(L)}),(te,oe)=>r.value==="readonly"?(h(),$("div",{key:0,id:e.controlId,"data-relation-readonly":"","aria-describedby":e.describedBy||void 0,class:xe([e.labels?.[0]?.label?"text-text":"text-muted","flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5"])},T(p.value),11,eM)):(h(),$("div",{key:1,class:"relative","data-relation":r.value},[r.value==="multiple"?(h(),$("div",{key:0,class:xe([e.invalid?"border-danger":"border-border-strong","flex min-h-input flex-wrap items-center gap-1.5 rounded-control border bg-surface p-1.5"])},[(h(!0),$(_e,null,Ne(c.value,le=>(h(),$("span",{key:le,"data-chip":"",class:"inline-flex h-[30px] items-center gap-1.5 rounded-pill bg-subtle pr-1 pl-1"},[O("span",nM,T(f(d(le))),1),O("span",aM,T(d(le)),1),O("button",{type:"button","aria-label":u(P)("backend::lang.form.remove_item",{name:d(le)}),class:"flex size-6 items-center justify-center rounded-full text-muted hover:bg-hover hover:text-text",onClick:re=>Q(le)},[H(u(Wt),{size:14,"aria-hidden":"true"})],8,rM)]))),128)),O("input",{id:e.controlId,type:"text",role:"combobox",autocomplete:"off","aria-expanded":v.value?"true":"false","aria-controls":l.value,"aria-autocomplete":"list","aria-activedescendant":v.value&&S.value>=0?k(S.value):void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,value:m.value,placeholder:u(P)("backend::lang.form.add_item"),class:"h-[30px] min-w-[120px] flex-1 border-0 bg-transparent px-2 focus-visible:shadow-none",onClick:F,onInput:D,onKeydown:ne,onBlur:G},null,40,lM)],2)):(h(),$("div",oM,[O("input",{id:e.controlId,type:"text",role:"combobox",autocomplete:"off","aria-expanded":v.value?"true":"false","aria-controls":l.value,"aria-autocomplete":"list","aria-activedescendant":v.value&&S.value>=0?k(S.value):void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,value:v.value?m.value:ie.value,placeholder:v.value&&ie.value||u(P)("backend::lang.form.select_placeholder"),class:xe([[e.invalid?"border-danger":"border-border-strong",!v.value&&i.value===null?"text-muted":"text-text"],"h-input w-full rounded-control border bg-surface pr-10 pl-3.5"]),onClick:F,onInput:D,onKeydown:ne,onBlur:G},null,42,sM),H(u(Dl),{size:16,class:"pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"})])),Ra(O("ul",{id:l.value,role:"listbox",class:"absolute inset-x-0 top-full z-20 mt-1 max-h-64 overflow-y-auto rounded-inner border border-border bg-surface p-1 shadow-menu",onScroll:W},[(h(!0),$(_e,null,Ne(K.value,(le,re)=>(h(),$("li",{id:k(re),key:le.key,role:"option","data-value":le.value??"empty","aria-selected":r.value==="single"&&le.value===i.value?"true":"false",class:xe([[le.muted?"text-muted":"text-text",re===S.value?"bg-hover":""],"flex h-10 cursor-pointer items-center rounded-control px-3 hover:bg-hover"]),onMousedown:pt(we=>N(le),["prevent"])},T(le.label),43,uM))),128)),x.value?(h(),$("li",cM,T(u(P)("backend::lang.form.loading_options")),1)):K.value.filter(le=>le.value!==null).length===0?(h(),$("li",dM,T(u(P)("backend::lang.form.no_options")),1)):ae("",!0),J.value&&!x.value?(h(),$("li",fM,[O("button",{type:"button","data-action":"more-options",class:"h-8 w-full rounded-control text-[13px] font-semibold text-muted hover:bg-hover hover:text-text",onMousedown:pt(V,["prevent"])},T(u(P)("backend::lang.form.more_options")),33)])):ae("",!0)],40,iM),[[Ji,v.value]])],8,tM))}}),mM={class:"flex min-w-0 flex-col"},yM=["for"],gM={key:0,class:"text-danger","aria-hidden":"true"},bM=["id"],_M=["id","aria-checked","aria-invalid","aria-describedby"],xM=ee({__name:"SwitchField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>Dc(n.modelValue));function l(){a("update:modelValue",Jm(n.modelValue,!r.value))}return(o,s)=>(h(),$("div",{class:xe([e.invalid?"border-danger":"border-border","flex items-center justify-between gap-4 rounded-inner border px-4 py-3.5"]),"data-toggle-card":""},[O("div",mM,[O("label",{for:e.controlId,class:"font-semibold"},[$e(T(e.field.label||e.field.name),1),e.field.required?(h(),$("span",gM," *")):ae("",!0)],8,yM),e.field.comment?(h(),$("p",{key:0,id:`${e.controlId}-comment`,class:"text-[13px] text-muted"},T(e.field.comment),9,bM)):ae("",!0)]),O("button",{id:e.controlId,type:"button",role:"switch","aria-checked":r.value?"true":"false","aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,class:xe([r.value?"bg-primary":"bg-border-strong","relative h-[26px] w-11 shrink-0 rounded-pill transition-colors duration-150 ease-out"]),onClick:l},[O("span",{class:xe([r.value?"translate-x-[18px] bg-on-primary":"translate-x-0 bg-white","absolute top-[3px] left-[3px] size-5 rounded-full shadow-tab transition-transform duration-150 ease-out"]),"aria-hidden":"true"},null,2)],10,_M)],2))}}),wM=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],kM=ee({__name:"TextField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),l=w(()=>Ac(n.field));return(o,s)=>(h(),$("input",Le({id:e.controlId},l.value,{name:e.field.name,type:"text",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(Ba)(e.invalid),"h-input"],onInput:s[0]||(s[0]=i=>a("update:modelValue",i.target.value))}),null,16,wM))}}),$M=["id","name","rows","value","required","aria-required","aria-invalid","aria-describedby"],CM=ee({__name:"TextareaField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r={tiny:2,small:4,large:8,huge:12,giant:18},l=w(()=>r[n.field.size??""]??5),o=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),s=w(()=>Ac(n.field));return(i,c)=>(h(),$("textarea",Le({id:e.controlId},s.value,{name:e.field.name,rows:l.value,value:o.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(Ba)(e.invalid),"min-h-input resize-y py-2.5"],onInput:c[0]||(c[0]=d=>a("update:modelValue",d.target.value))}),null,16,$M))}}),SM=["id","aria-describedby"],EM={key:0},AM={class:"font-mono text-text"},DM={key:1},PM={class:"font-mono text-text"},oo="\0",OM=ee({__name:"UnsupportedField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=w(()=>{const[r="",l=""]=P("backend::lang.form.unsupported_field",{type:oo}).split(oo);return{before:r,after:l}}),a=w(()=>P("backend::lang.form.unsupported_field",{type:oo}).includes(oo));return(r,l)=>(h(),$("div",{id:e.controlId,"data-unsupported-field":"","aria-describedby":e.describedBy||void 0,class:"flex min-h-input items-center gap-2.5 rounded-control border-[1.5px] border-dashed border-border-strong bg-subtle px-3.5 text-[13px] text-muted"},[H(u(Yv),{size:16,"aria-hidden":"true"}),a.value?(h(),$("span",EM,[$e(T(n.value.before),1),O("code",AM,T(t.field.type),1),$e(T(n.value.after),1)])):(h(),$("span",DM,[$e(T(u(P)("backend::lang.form.unsupported_field"))+" ",1),O("code",PM,T(t.field.type),1)]))],8,SM))}}),MM=["id","aria-labelledby","aria-describedby","aria-busy"],TM={key:0,"data-widget-skeleton":"",class:"h-[42px] w-[160px] rounded-control bg-skel","aria-hidden":"true"},RM=ee({__name:"WidgetField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Pc,null),a=st(Oc,()=>{}),r=st(Zm,null),l=st(Qm,()=>Promise.resolve([])),o=M("loading"),s=M(null);let i=null,c=!1,d=!1;function f(){const S=n?.value??{},A={};for(const L of t.field.fill??[])S[L]!==void 0&&(A[L]=S[L]);return A}const p=w(()=>JSON.stringify(f())),v=w(()=>r?.value||hl.value);function m(S){let A;return{promise:new Promise((J,z)=>{A=setTimeout(()=>z(new Error("widget element was not defined in time")),S)}),cancel:()=>clearTimeout(A)}}async function g(S){const A=await l();if(customElements.get(S))return;if(A.length>0)throw new Error(`plugin script failed: ${A.join(", ")}`);const L=m(eD);try{await Promise.race([customElements.whenDefined(S),L.promise])}finally{L.cancel()}}function _(S){Pe(S||P("backend::lang.extension.action_failed"),"danger"),i?.setAttribute("state","error")}async function y(){const S=t.source;if(!(!i||c||!S)){c=!0,i.setAttribute("busy",""),i.removeAttribute("state");try{const A=await Oe.POST("/{vendor}/{plugin}/{controller}/widgets/{field}",{params:{path:{...S,field:t.field.name}},body:{record_id:t.recordId??void 0,values:f()}});if(A.data){const L=A.data.data.fill??{};for(const J of t.field.fill??[])Object.hasOwn(L,J)&&a(J,L[J]);A.data.data.message&&Pe(A.data.data.message)}else _(A.error?.error.message)}catch{_()}finally{c=!1,i?.removeAttribute("busy")}}}function x(){y()}return _t(async()=>{const S=t.field.widget??"";try{if(S===""||!t.source)throw new Error("widget field without a tag or controller");if(await g(S),d||!s.value)return;const A=document.createElement(S);A.setAttribute("record-id",t.recordId==null?"":String(t.recordId)),A.setAttribute("field-name",t.field.name),A.setAttribute("locale",v.value),A.setAttribute("fill-values",p.value),A.setAttribute("label",t.field.actionLabel||t.field.label||t.field.name),A.setAttribute("busy-label",P("backend::lang.extension.busy")),A.addEventListener(tp,x),s.value.append(A),i=A,o.value="ready"}catch{d||(o.value="failed")}}),Be(p,S=>i?.setAttribute("fill-values",S)),Be(v,S=>i?.setAttribute("locale",S)),qt(()=>{d=!0,i?.removeEventListener(tp,x),i=null}),(S,A)=>o.value==="failed"?(h(),U(Sc,{key:0,id:e.controlId,"data-widget-failed":"","aria-describedby":e.describedBy||void 0,text:u(P)("backend::lang.extension.widget_failed")},null,8,["id","aria-describedby","text"])):(h(),$("div",{key:1,id:e.controlId,role:"group","data-widget-host":"","aria-labelledby":e.field.label?`${e.controlId}-label`:void 0,"aria-describedby":e.describedBy||void 0,"aria-busy":o.value==="loading"?"true":void 0,class:"flex min-h-input items-center"},[o.value==="loading"?(h(),$("span",TM)):ae("",!0),O("div",{ref_key:"mountPoint",ref:s,class:"contents"},null,512)],8,MM))}}),Ua="relation-manager",Xm=new Map([[Ua,()=>XO]]),ey=new Map([["text",kM],["textarea",CM],["number",LP],["dropdown",XA],["switch",xM],["checkbox",DA],["relation",hM],["widget",RM],["partial",UP],["fileupload",NP],["datepicker",YA]]),qM=new Set(["switch","checkbox",Ua]),IM=new Set([Ua]),FM=new Set([Ua,"widget","partial","fileupload"]),BM=new Set(["widget","partial","fileupload"]);function ty(e){return ey.get(e)??Xm.get(e)?.()??OM}function NM(e){return(ey.has(e)||Xm.has(e))&&!FM.has(e)}function VM(e){return IM.has(e)}function LM(e){return qM.has(e)}function jM(e){return BM.has(e)}const UM=ee({__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=w(()=>ty(n.field.type));return(l,o)=>(h(),U(bn(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]=s=>a("update:modelValue",s))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]))}}),zM=["data-field"],HM=["id"],KM={key:0,class:"text-danger","aria-hidden":"true"},WM=["for"],GM={key:0,class:"text-danger","aria-hidden":"true"},YM=["id"],JM=["id"],ZM=ee({__name:"FormField",props:{field:{},modelValue:{},errors:{},labels:{},source:{},recordId:{},idPrefix:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>`${n.idPrefix??"field"}-${n.field.name}`),l=w(()=>r.value),o=w(()=>`${r.value}-comment`),s=w(()=>`${r.value}-error`),i=w(()=>(n.errors?.length??0)>0),c=w(()=>LM(n.field.type)),d=w(()=>jM(n.field.type)),f=w(()=>!c.value&&!!n.field.comment),p=w(()=>[f.value||c.value&&n.field.comment?o.value:"",i.value?s.value:""].filter(Boolean).join(" "));return(v,m)=>(h(),$("div",{class:"flex min-w-0 flex-col gap-1.5","data-field":e.field.name},[d.value&&e.field.label?(h(),$("span",{key:0,id:`${l.value}-label`,class:"font-semibold"},[$e(T(e.field.label),1),e.field.required?(h(),$("span",KM," *")):ae("",!0)],8,HM)):!c.value&&!d.value?(h(),$("label",{key:1,for:l.value,class:"font-semibold"},[$e(T(e.field.label||e.field.name),1),e.field.required?(h(),$("span",GM," *")):ae("",!0)],8,WM)):ae("",!0),H(UM,{field:e.field,"model-value":e.modelValue,"control-id":l.value,invalid:i.value,"described-by":p.value,labels:e.labels,source:e.source,"record-id":e.recordId,"onUpdate:modelValue":m[0]||(m[0]=g=>a("update:modelValue",g))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]),f.value?(h(),$("p",{key:2,id:o.value,class:"text-[13px] text-muted"},T(e.field.comment),9,YM)):ae("",!0),i.value?(h(),$("div",{key:3,id:s.value,class:"flex flex-col gap-0.5 text-[13px] text-danger"},[(h(!0),$(_e,null,Ne(e.errors,(g,_)=>(h(),$("p",{key:_,class:"flex items-center gap-1.5"},[H(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,T(g),1)]))),128))],8,JM)):ae("",!0)],8,zM))}}),QM={class:"grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},Ul=ee({__name:"FormGrid",props:{fields:{},values:{},errors:{},labels:{},source:{},recordId:{},idPrefix:{}},emits:["update"],setup(e,{emit:t}){const n=t;function a(r){if(r.type===Ua)return"col-span-full";switch(r.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(r,l)=>(h(),$("div",QM,[(h(!0),$(_e,null,Ne(e.fields,o=>(h(),U(ZM,{key:o.name,class:xe(a(o)),field:o,"model-value":e.values[o.name],errors:e.errors[o.name],labels:e.labels?.[o.name],source:e.source,"record-id":e.recordId,"id-prefix":e.idPrefix,"onUpdate:modelValue":s=>n("update",o.name,s)},null,8,["class","field","model-value","errors","labels","source","record-id","id-prefix","onUpdate:modelValue"]))),128))]))}}),XM={class:"flex w-full flex-col gap-5 pb-24"},e4={class:"flex flex-wrap items-center gap-4"},t4={class:"flex min-w-0 flex-1 flex-col"},n4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},a4={key:0,class:"text-muted"},r4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},l4=["id","role","aria-labelledby"],o4={class:"fixed inset-x-0 bottom-0 z-30 flex items-center gap-2.5 border-t border-border bg-surface px-8 py-3.5"},s4={class:"ml-auto flex items-center gap-2.5"},zr="field",ap=ee({__name:"FormView",setup(e){const t=an(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=t.name==="create"?"create":"update",s=o==="update"?Number(t.params.id):null,i=M(null),c=M({}),d=M({}),f=M({}),p=M(null),v=M(!0),m=M(!1),g=M(!1),_=M(""),y=M(At),x=ja();let S=!1,A=Promise.resolve([]);const L=$l(),J={[ya]:L},z=M(0),K=M(0),{activeUploads:k,beginUpload:F}=Mc(),G=w(()=>(i.value?.fields??[]).filter(R=>qs(R,o)&&(o==="update"||!VM(R.type)||R.type===Ua&&!!R.deferrable))),D=w(()=>G.value.map(R=>R.name)),V=w(()=>{if(!G.value.some(q=>q.tab))return[];const R=[];for(const q of G.value){const Y=yn(q);let de=R.find(ve=>ve.key===Y);de||(de={key:Y,label:q.tab||P("backend::lang.form.tab_default"),errors:0},Y===At?R.unshift(de):R.push(de)),f.value[q.name]&&(de.errors+=1)}return R}),W=w(()=>Math.max(V.value.findIndex(R=>R.key===y.value),0)),N=w(()=>{if(V.value.length===0)return G.value;const R=V.value[W.value]?.key??At;return G.value.filter(q=>yn(q)===R)}),Q=w(()=>{const R=i.value?.fields.find(Y=>Y.type==="text"),q=R?c.value[R.name]:void 0;return typeof q=="string"||typeof q=="number"?String(q).trim():""}),ne=w(()=>{if(o==="update"&&Q.value!=="")return Q.value;const R=o==="create"?i.value?.messages.create:i.value?.messages.update;return Ie(R,void 0,{name:Q.value})}),ie=w(()=>o==="update"?Ie(i.value?.messages.update,void 0,{name:Q.value}):""),te=w(()=>o==="update"&&!!i.value?.preview),oe=w(()=>te.value?`${l}/${s}/preview`:l),le=w(()=>!v.value&&(z.value>0||k.value>0||ca(Ht(G.value,c.value))!==_.value));function re(R){R&&(c.value={...R.data},d.value=R.meta.labels??{}),_.value=ca(Ht(G.value,c.value))}async function we(){v.value=!0,m.value=!1;const R={path:a},[q,Y]=await Promise.all([Oe.GET("/{vendor}/{plugin}/{controller}/schema/form",{params:R}),s!==null?Oe.GET("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s}}}):Promise.resolve(null)]);i.value=q.data?.data??null,m.value=!q.data||Y!==null&&!Y.data,i.value&&(A=Cc(r,i.value.assets)),i.value&&o==="create"&&(c.value=Tc(G.value)),re(Y?.data),y.value=V.value[0]?.key??At,v.value=!1}function se(R,q){if(c.value={...c.value,[R]:q},f.value[R]){const Y={...f.value};delete Y[R],f.value=Y}}Dt(Pc,w(()=>c.value)),Dt(Oc,se),Dt(Zm,w(()=>i.value?.meta.locale||hl.value)),Dt(Qm,()=>A),Dt(Vl,{key:L,recordId:s??0,routes:R=>Ym(a,s??0,R,L),markDirty:()=>{z.value++},pendingChanges:dt(z),revision:dt(K),beginUpload:F,activeUploads:dt(k)});async function Ce(R){f.value=Ll(R?.details);const q=G.value.filter(de=>f.value[de.name]),Y=q.find(de=>yn(de)===y.value)??q[0];Y&&(V.value.length>0&&(y.value=yn(Y)),await ze(),jl(zr,Y.name))}function fe(R,q){const Y=i.value?.redirects,de=(Y?.[o]?.[R]||Y?.default)??"";return jm(de,r,typeof q=="number"||typeof q=="string"?q:null)}async function Z(){if(g.value||!i.value||k.value>0)return null;g.value=!0,p.value=null;try{const R=Ht(G.value,c.value),q=s===null?await Oe.POST("/{vendor}/{plugin}/{controller}",{params:{path:a,header:J},body:R}):await Oe.PUT("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s},header:J},body:R});return q.data?(f.value={},re(q.data),z.value=0,K.value++,Pe(Ie(i.value.messages.saved,void 0,{name:Q.value})),q.data):(q.response.status===422?await Ce(q.error?.error):q.response.status===403?(p.value=q.error?.error.message||P("backend::lang.form.forbidden"),await Ce(q.error?.error)):Pe(q.error?.error.message||P("backend::lang.form.error_generic"),"danger"),null)}catch{return Pe(P("backend::lang.form.error_generic"),"danger"),null}finally{g.value=!1}}async function pe(R){S=!0;try{await n.push(R)}finally{S=!1}}async function X(){const R=await Z();R&&o==="create"&&await pe(fe("redirect",R.data.id))}async function ue(){const R=await Z();R&&await pe(fe("redirectClose",R.data.id))}async function ge(){if(!(s===null||g.value||!i.value||!await x.ask({message:Ie(i.value.messages.deleteConfirm,void 0,{name:Q.value}),confirmLabel:P("backend::lang.form.delete"),danger:!0}))){g.value=!0;try{const q=await Oe.DELETE("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s}}});if(q.data){Pe(Ie(i.value.messages.deleted,void 0,{name:Q.value})),await pe(l);return}const Y=q.response.status===403?"backend::lang.list.action_forbidden":"backend::lang.form.error_generic";Pe(q.error?.error.message||P(Y),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{g.value=!1}}}async function b(){return S||!le.value?!0:x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})}async function C(){le.value&&!await x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||await pe(oe.value)}m1(b),y1(b);function E(R){le.value&&(R.preventDefault(),R.returnValue="")}return _t(()=>window.addEventListener("beforeunload",E)),qt(()=>window.removeEventListener("beforeunload",E)),Xt(()=>ch(v.value?"":ne.value)),qt(dh),we(),(R,q)=>(h(),$("section",XM,[O("header",e4,[H(et,{variant:"outline","data-action":"back","aria-label":u(P)(te.value?"backend::lang.form.return_to_preview":"backend::lang.form.return_to_list"),class:"size-10! px-0!",onClick:C},{default:B(()=>[H(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["aria-label"]),O("div",t4,[O("h1",n4,T(v.value?"":ne.value),1),ie.value?(h(),$("p",a4,T(ie.value),1)):ae("",!0)]),V.value.length>0?(h(),U(Rc,{key:0,modelValue:y.value,"onUpdate:modelValue":q[0]||(q[0]=Y=>y.value=Y),tabs:V.value,"id-prefix":zr},null,8,["modelValue","tabs"])):ae("",!0)]),m.value&&!v.value?(h(),$("p",r4,T(u(P)("backend::lang.form.load_failed")),1)):i.value?(h(),$(_e,{key:1},[H(Nl,{errors:f.value,"field-names":D.value,forbidden:p.value},null,8,["errors","field-names","forbidden"]),O("form",{id:V.value.length>0?u(Rs)(zr,W.value):void 0,role:V.value.length>0?"tabpanel":void 0,"aria-labelledby":V.value.length>0?u(Cl)(zr,W.value):void 0,class:"rounded-card border border-border bg-surface p-7 shadow-card",novalidate:"",onSubmit:pt(X,["prevent"])},[H(Ul,{fields:N.value,values:c.value,errors:f.value,labels:d.value,source:a,"record-id":u(s),"id-prefix":zr,onUpdate:se},null,8,["fields","values","errors","labels","record-id"])],40,l4)],64)):ae("",!0),O("footer",o4,[u(o)==="update"?(h(),U(et,{key:0,variant:"danger","data-action":"delete",icon:u(Ol),disabled:g.value||v.value||!i.value,onClick:ge},{default:B(()=>[$e(T(u(P)("backend::lang.form.delete")),1)]),_:1},8,["icon","disabled"])):ae("",!0),O("div",s4,[H(et,{variant:"ghost","data-action":"cancel",onClick:C},{default:B(()=>[$e(T(u(P)("backend::lang.form.cancel")),1)]),_:1}),H(et,{variant:"outline","data-action":"save-close",disabled:g.value||v.value||!i.value||u(k)>0,onClick:ue},{default:B(()=>[$e(T(u(P)("backend::lang.form.save_and_close")),1)]),_:1},8,["disabled"]),H(et,{variant:"primary","data-action":"save",disabled:g.value||v.value||!i.value||u(k)>0,onClick:X},{default:B(()=>[$e(T(g.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.form.save")),1)]),_:1},8,["disabled"])])]),H(La,{open:u(x).request.value!==null,message:u(x).request.value?.message??"","confirm-label":u(x).request.value?.confirmLabel,danger:u(x).request.value?.danger,onConfirm:u(x).confirm,onCancel:u(x).cancel,"onUpdate:open":q[1]||(q[1]=Y=>{Y||u(x).cancel()})},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])]))}}),i4=["data-preview-field"],u4=["id"],c4={class:"m-0 min-w-0"},d4={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"},f4={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"},p4={class:"flex size-[22px] shrink-0 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-on-primary","aria-hidden":"true"},v4={class:"font-semibold"},h4={key:0,class:"px-2 text-muted","data-empty":""},m4={key:0},y4={key:1,class:"text-muted","data-empty":""},g4={key:0},b4={key:1,class:"text-muted","data-empty":""},qi="flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 [overflow-wrap:anywhere]",_4=ee({__name:"PreviewField",props:{field:{},value:{},labels:{},source:{},recordId:{},idPrefix:{}},setup(e){const t=e,n=new Set(["datepicker","fileupload","partial","permissioneditor"]),a=w(()=>`${t.idPrefix??"preview"}-${t.field.name}`),r=w(()=>`${a.value}-label`),l=w(()=>{const v=t.field.type;return n.has(v)?"control":v==="checkbox"||v==="switch"?"toggle":v==="relation"?t.field.multiple?"chips":"relation":v==="textarea"?"textarea":"text"}),o=w(()=>({...t.field,readOnly:!0})),s=w(()=>ty(t.field.type));function i(v){return v==null||v===""}const c=w(()=>{const v=t.value;if(i(v)||typeof v=="object")return"";if(t.field.type==="dropdown"){const m=(t.field.options??[]).find(g=>String(g.value)===String(v));return m?m.label:String(v)}return String(v)}),d=w(()=>t.labels?.[0]?.label??""),f=w(()=>Array.isArray(t.value)?t.labels??[]:[]);function p(v){return v.trim().split(/\s+/).filter(Boolean).slice(0,2).map(g=>g.charAt(0).toUpperCase()).join("")}return(v,m)=>(h(),$("div",{class:"flex min-w-0 flex-col gap-1.5","data-preview-field":e.field.name},[O("dt",{id:r.value,class:"font-semibold"},T(e.field.label||e.field.name),9,u4),O("dd",c4,[l.value==="control"?(h(),U(bn(s.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"?(h(),$(_e,{key:1},[u(Dc)(e.value)?(h(),$("span",d4,T(u(P)("backend::lang.list.column_switch_true")),1)):(h(),$("span",f4,T(u(P)("backend::lang.list.column_switch_false")),1))],64)):l.value==="chips"?(h(),$("div",{key:2,"data-preview-value":"",class:xe([qi,"flex-wrap gap-1.5 p-1.5"])},[(h(!0),$(_e,null,Ne(f.value,g=>(h(),$("span",{key:String(g.value),"data-chip":"",class:"inline-flex min-h-[30px] items-center gap-1.5 rounded-pill bg-surface pr-3 pl-1"},[O("span",p4,T(p(g.label)),1),O("span",v4,T(g.label),1)]))),128)),f.value.length===0?(h(),$("span",h4,T(u(P)("backend::lang.list.empty_value")),1)):ae("",!0)])):l.value==="relation"?(h(),$("div",{key:3,"data-preview-value":"",class:xe(qi)},[d.value!==""?(h(),$("span",m4,T(d.value),1)):(h(),$("span",y4,T(e.field.emptyOption||u(P)("backend::lang.list.empty_value")),1))])):(h(),$("div",{key:4,"data-preview-value":"",class:xe([qi,l.value==="textarea"?"items-start! py-3 whitespace-pre-wrap":""])},[c.value!==""?(h(),$("span",g4,T(c.value),1)):(h(),$("span",b4,T(u(P)("backend::lang.list.empty_value")),1))],2))])],8,i4))}}),x4=ee({__name:"RecordActions",props:{source:{},recordId:{},actions:{},disabled:{type:Boolean,default:!1}},emits:["busy","done","stale","gone"],setup(e,{emit:t}){const n=e,a=t,r=ja(),l=M(!1);async function o(s){if(l.value||n.disabled)return;let i=0,c=!1,d="";if(await r.ask({message:s.confirm||P("backend::lang.form.action_confirm",{action:s.label}),confirmLabel:s.label,danger:!1},async()=>{l.value=!0,a("busy",!0);try{const p=await Oe.POST("/{vendor}/{plugin}/{controller}/{id}/actions/{action}",{params:{path:{...n.source,id:n.recordId,action:s.name}},body:{}});i=p.response.status,c=!!p.data,d=p.data?.data.message??p.error?.error.message??""}catch{i=0}finally{l.value=!1,a("busy",!1)}})){if(c){a("done",d||P("backend::lang.form.action_done"));return}if(i===409){Pe(P("backend::lang.form.action_stale"),"danger"),a("stale");return}if(i===404){a("gone");return}if(i===403){Pe(d||P("backend::lang.list.action_forbidden"),"danger");return}Pe(d||P("backend::lang.extension.action_failed"),"danger")}}return(s,i)=>e.actions.length>0?(h(),$(_e,{key:0},[(h(!0),$(_e,null,Ne(e.actions,c=>(h(),U(et,{key:c.name,variant:"outline",size:"md","data-record-action":c.name,disabled:e.disabled||l.value,onClick:d=>o(c)},{default:B(()=>[$e(T(c.label),1)]),_:2},1032,["data-record-action","disabled","onClick"]))),128)),H(La,{open:u(r).request.value!==null,message:u(r).request.value?.message??"","confirm-label":u(r).request.value?.confirmLabel,danger:u(r).request.value?.danger,busy:u(r).busy.value,onConfirm:u(r).confirm,onCancel:u(r).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])],64)):ae("",!0)}}),w4={class:"flex w-full flex-col gap-5 pb-24","data-preview":""},k4={class:"flex flex-wrap items-center gap-4"},$4={class:"flex min-w-0 flex-1 flex-col"},C4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},S4={key:0,class:"text-muted"},E4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},A4=["id","role","aria-labelledby"],D4={class:"m-0 grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},P4={class:"fixed inset-x-0 bottom-0 z-30 flex flex-wrap items-center gap-2.5 border-t border-border bg-surface px-8 py-3.5"},O4={class:"ml-auto flex flex-wrap items-center gap-2.5"},so="preview",M4=ee({__name:"PreviewView",setup(e){const t=an(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=Number(t.params.id),s=`${l}/${o}`,i=M(null),c=M({}),d=M({}),f=M([]),p=M(!0),v=M(!1),m=M(!1),g=M(At),_=M(0),y=new Set(["password","widget",Ua]),x=w(()=>(i.value?.fields??[]).filter(te=>qs(te,"preview")&&!y.has(te.type))),S=w(()=>{if(!x.value.some(oe=>oe.tab))return[];const te=[];for(const oe of x.value){const le=yn(oe);if(te.some(we=>we.key===le))continue;const re={key:le,label:oe.tab||P("backend::lang.form.tab_default"),errors:0};le===At?te.unshift(re):te.push(re)}return te}),A=w(()=>Math.max(S.value.findIndex(te=>te.key===g.value),0)),L=w(()=>{if(S.value.length===0)return x.value;const te=S.value[A.value]?.key??At;return x.value.filter(oe=>yn(oe)===te)}),J=w(()=>{const te=i.value?.fields.find(le=>le.type==="text"),oe=te?c.value[te.name]:void 0;return typeof oe=="string"||typeof oe=="number"?String(oe).trim():""}),z=w(()=>Ie(i.value?.messages.preview,void 0,{name:J.value})),K=w(()=>i.value?.preview?.headerPartial??""),k=w(()=>!p.value&&!v.value&&i.value!==null);function F(te){switch(te.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"}}async function G(){try{const te=await Oe.GET("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:o}}});return te.data?(c.value={...te.data.data},d.value=te.data.meta.labels??{},f.value=te.data.meta.actions??[],!0):!1}catch{return!1}}async function D(){p.value=!0,v.value=!1;const[te,oe]=await Promise.all([Oe.GET("/{vendor}/{plugin}/{controller}/schema/form",{params:{path:a}}).catch(()=>null),G()]),le=te?.data?.data??null;if(le&&!le.preview){await n.replace(s);return}i.value=le,v.value=!le||!oe,le&&Cc(r,le.assets),g.value=S.value[0]?.key??At,p.value=!1}async function V(){_.value++,await G()||(v.value=!0)}async function W(te){Pe(te),await V()}function N(){v.value=!0}const{activeUploads:Q,beginUpload:ne}=Mc(),ie=$l();return Dt(Vl,{key:ie,recordId:o,routes:te=>Ym(a,o,te,ie),markDirty:()=>{},pendingChanges:dt(M(0)),revision:dt(M(0)),beginUpload:ne,activeUploads:dt(Q)}),Xt(()=>ch(p.value?"":J.value)),qt(dh),D(),(te,oe)=>(h(),$("section",w4,[O("header",k4,[H(et,{variant:"outline","data-action":"back",to:u(l),"aria-label":u(P)("backend::lang.form.return_to_list"),class:"size-10! px-0!"},{default:B(()=>[H(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["to","aria-label"]),O("div",$4,[O("h1",C4,T(p.value?"":J.value),1),k.value&&z.value?(h(),$("p",S4,T(z.value),1)):ae("",!0)]),k.value&&S.value.length>0?(h(),U(Rc,{key:0,modelValue:g.value,"onUpdate:modelValue":oe[0]||(oe[0]=le=>g.value=le),tabs:S.value,"id-prefix":so},null,8,["modelValue","tabs"])):ae("",!0)]),v.value&&!p.value?(h(),$("p",E4,T(u(P)("backend::lang.form.load_failed")),1)):k.value?(h(),$(_e,{key:1},[K.value!==""?(h(),U(Ec,{key:0,variant:"header",hint:"",source:a,name:K.value,"record-id":u(o),"reload-key":_.value},null,8,["name","record-id","reload-key"])):ae("",!0),O("div",{id:S.value.length>0?u(Rs)(so,A.value):void 0,role:S.value.length>0?"tabpanel":void 0,"aria-labelledby":S.value.length>0?u(Cl)(so,A.value):void 0,class:"rounded-card border border-border bg-surface p-7 shadow-card"},[O("dl",D4,[(h(!0),$(_e,null,Ne(L.value,le=>(h(),U(_4,{key:le.name,class:xe(F(le)),field:le,value:c.value[le.name],labels:d.value?.[le.name],source:a,"record-id":u(o),"id-prefix":so},null,8,["class","field","value","labels","record-id"]))),128))])],8,A4)],64)):ae("",!0),O("footer",P4,[O("div",O4,[k.value?(h(),U(x4,{key:0,source:a,"record-id":u(o),actions:f.value,disabled:m.value,onBusy:oe[1]||(oe[1]=le=>m.value=le),onDone:W,onStale:V,onGone:N},null,8,["record-id","actions","disabled"])):ae("",!0),v.value?ae("",!0):(h(),U(et,{key:1,variant:"primary","data-action":"edit",icon:u(fo),disabled:p.value||m.value,onClick:oe[2]||(oe[2]=le=>u(n).push(s))},{default:B(()=>[$e(T(u(Ie)(i.value?.messages.edit)),1)]),_:1},8,["icon","disabled"]))])])]))}}),T4={class:"flex w-full flex-col gap-5 pb-24"},R4={class:"flex items-center gap-4"},q4={class:"flex min-w-0 flex-col"},I4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},F4={key:0,class:"text-muted"},B4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},N4={class:"fixed inset-x-0 bottom-0 z-30 flex items-center justify-end gap-2.5 border-t border-border bg-surface px-8 py-3.5"},rp="setting",V4=ee({__name:"SettingsFormView",setup(e){const t=an(),n=String(t.params.code??""),a=M(null),r=M({}),l=M({}),o=M(!0),s=M(!1),i=M(!1),c=w(()=>(a.value?.fields??[]).filter(_=>qs(_,"update"))),d=w(()=>c.value.map(_=>_.name)),f=w(()=>nu(n)?.label||a.value?.name||n),p=w(()=>nu(n)?.description??"");async function v(){const _={path:{code:n}},[y,x]=await Promise.all([Oe.GET("/settings/{code}/schema",{params:_}),Oe.GET("/settings/{code}",{params:_})]);a.value=y.data?.data??null,r.value={...x.data?.data.data??{}},s.value=!y.data||!x.data,o.value=!1}function m(_,y){if(r.value={...r.value,[_]:y},l.value[_]){const x={...l.value};delete x[_],l.value=x}}async function g(){if(!(i.value||!a.value)){i.value=!0;try{const _=await Oe.PUT("/settings/{code}",{params:{path:{code:n}},body:Ht(c.value,r.value)});if(_.data){l.value={},r.value={..._.data.data.data},Pe(P("backend::lang.settings.saved"));return}if(_.response.status===422){l.value=Ll(_.error?.error.details);const y=c.value.find(x=>l.value[x.name]);await ze(),y&&jl(rp,y.name);return}Pe(_.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Pe(P("backend::lang.form.error_generic"),"danger")}finally{i.value=!1}}}return v(),(_,y)=>(h(),$("section",T4,[O("header",R4,[H(et,{variant:"outline","data-action":"back",to:"/settings","aria-label":u(P)("backend::lang.settings.back"),class:"size-10! px-0!"},{default:B(()=>[H(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["aria-label"]),O("div",q4,[O("h1",I4,T(f.value),1),p.value?(h(),$("p",F4,T(p.value),1)):ae("",!0)])]),s.value&&!o.value?(h(),$("p",B4,T(u(P)("backend::lang.form.load_failed")),1)):a.value?(h(),$(_e,{key:1},[H(Nl,{errors:l.value,"field-names":d.value},null,8,["errors","field-names"]),O("form",{class:"rounded-card border border-border bg-surface p-7 shadow-card",novalidate:"",onSubmit:pt(g,["prevent"])},[H(Ul,{fields:c.value,values:r.value,errors:l.value,source:null,"id-prefix":rp,onUpdate:m},null,8,["fields","values","errors"])],32)],64)):ae("",!0),O("footer",N4,[H(et,{variant:"ghost",to:"/settings"},{default:B(()=>[$e(T(u(P)("backend::lang.form.cancel")),1)]),_:1}),H(et,{variant:"primary","data-action":"save",disabled:i.value||o.value||!a.value,onClick:g},{default:B(()=>[$e(T(i.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.form.save")),1)]),_:1},8,["disabled"])])]))}}),L4={class:"flex flex-col gap-5"},j4={class:"text-[26px] font-bold tracking-[-0.02em]"},U4={key:0,class:"text-muted"},z4={key:0,class:"text-[13px] font-semibold tracking-[0.02em] text-muted uppercase"},H4={class:"grid grid-cols-1 gap-3 min-[900px]:grid-cols-2"},K4={class:"flex size-10 shrink-0 items-center justify-center rounded-inner bg-subtle text-muted"},W4={class:"flex min-w-0 flex-col"},G4={class:"font-semibold"},Y4={key:0,class:"text-[13px] text-muted"},J4=ee({__name:"SettingsIndexView",setup(e){return(t,n)=>(h(),$("section",L4,[O("header",null,[O("h1",j4,T(u(P)("backend::lang.settings.title")),1)]),u(nf).length===0?(h(),$("p",U4,T(u(P)("backend::lang.settings.empty")),1)):ae("",!0),(h(!0),$(_e,null,Ne(u(nf),a=>(h(),$("section",{key:a.category,"data-settings-group":"",class:"flex flex-col gap-3"},[a.category?(h(),$("h2",z4,T(a.category),1)):ae("",!0),O("div",H4,[(h(!0),$(_e,null,Ne(a.entries,r=>(h(),U(u(_n),{key:r.code,to:`/settings/${encodeURIComponent(r.code)}`,"data-settings":r.code,class:"flex items-start gap-3.5 rounded-card border border-border bg-surface p-5 text-text no-underline shadow-card hover:bg-hover"},{default:B(()=>[O("span",K4,[(h(),U(bn(u(vs)(r.icon)),{size:20,"aria-hidden":"true"}))]),O("span",W4,[O("span",G4,T(r.label),1),r.description?(h(),$("span",Y4,T(r.description),1)):ae("",!0)])]),_:2},1032,["to","data-settings"]))),128))])]))),128))]))}}),Z4={class:"flex flex-col items-center gap-2 py-20 text-center"},Q4={class:"text-[17px] font-bold"},lp=ee({__name:"NotFoundView",props:{home:{type:Boolean}},setup(e){return(t,n)=>(h(),$("section",Z4,[O("h1",Q4,T(e.home?u(P)("backend::lang.nav.empty"):u(P)("backend::lang.page.not_found")),1)]))}});function ny(e){return typeof e!="string"||e.length===0||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")?null:e}const X4=new Set(["list","create","record","preview"]);function eT(e){if(typeof e.name!="string"||!X4.has(e.name))return"";const{vendor:t,plugin:n,controller:a}=e.params;return typeof t!="string"||typeof n!="string"||typeof a!="string"?"":ms({vendor:t,plugin:n,controller:a})}function tT(e=w1(ps.base)){const t=L1({history:e,routes:[{path:"/login",name:"login",component:b3,meta:{public:!0}},{path:"/",name:"home",component:lp,props:{home:!0},meta:{shell:!0},beforeEnter:()=>M_()??!0},{path:"/settings",name:"settings",component:J4,meta:{shell:!0}},{path:"/settings/:code",name:"settings-form",component:V4,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller",name:"list",component:fA,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/create",name:"create",component:ap,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/:id(\\d+)",name:"record",component:ap,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/:id(\\d+)/preview",name:"preview",component:M4,meta:{shell:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:lp,meta:{shell:!0}}]});return t.beforeEach(n=>{const a=rr.value!==null;return n.meta.public?a&&n.name==="login"?ny(n.query.redirect)??"/":!0:a?!0:{name:"login",query:{redirect:n.fullPath}}}),t.afterEach((n,a,r)=>{r||o3(eT(n))}),t}const nT="(prefers-color-scheme: dark)";function aT(e=window){const t=e.document.documentElement;if(typeof e.matchMedia!="function")return t.classList.remove("dark"),()=>{};const n=e.matchMedia(nT),a=l=>{t.classList.toggle("dark",l)};a(n.matches);const r=l=>a(l.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}async function rT(){aT(),await E_().catch(()=>{}),await Im().catch(()=>null)&&await Promise.all([rh().catch(()=>[]),lh().catch(()=>[])]);const t=tT();x_(()=>{Fm();const a=t.currentRoute.value;a.name!=="login"&&t.push({name:"login",query:{redirect:a.fullPath}})});const n=Fb(n3);n.use(t),await t.isReady(),n.mount("#app")}rT(); diff --git a/modules/boardwalk/dist/assets/index-DEO3TzjB.js b/modules/boardwalk/dist/assets/index-DEO3TzjB.js new file mode 100644 index 0000000..3ae8712 --- /dev/null +++ b/modules/boardwalk/dist/assets/index-DEO3TzjB.js @@ -0,0 +1,9 @@ +(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 Cu(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const nt={},lr=[],bn=()=>{},op=()=>!1,Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zo=e=>e.startsWith("onUpdate:"),ut=Object.assign,Su=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oy=Object.prototype.hasOwnProperty,Xe=(e,t)=>oy.call(e,t),Te=Array.isArray,or=e=>El(e)==="[object Map]",sp=e=>El(e)==="[object Set]",Bc=e=>El(e)==="[object Date]",Be=e=>typeof e=="function",rt=e=>typeof e=="string",Vt=e=>typeof e=="symbol",Ze=e=>e!==null&&typeof e=="object",ip=e=>(Ze(e)||Be(e))&&Be(e.then)&&Be(e.catch),up=Object.prototype.toString,El=e=>up.call(e),sy=e=>El(e).slice(8,-1),cp=e=>El(e)==="[object Object]",Ho=e=>rt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zr=Cu(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ko=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},iy=/-\w/g,ht=Ko(e=>e.replace(iy,t=>t.slice(1).toUpperCase())),uy=/\B([A-Z])/g,ba=Ko(e=>e.replace(uy,"-$1").toLowerCase()),Wo=Ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),Qr=Ko(e=>e?`on${Wo(e)}`:""),vn=(e,t)=>!Object.is(e,t),io=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},Eu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},cy=e=>{const t=rt(e)?Number(e):NaN;return isNaN(t)?e:t};let Nc;const Go=()=>Nc||(Nc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fn(e){if(Te(e)){const t={};for(let n=0;n{if(n){const a=n.split(fy);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function xe(e){let t="";if(rt(e))t=e;else if(Te(e))for(let n=0;n!!(e&&e.__v_isRef===!0),R=e=>rt(e)?e:e==null?"":Te(e)||Ze(e)&&(e.toString===up||!Be(e.toString))?pp(e)?R(e.value):JSON.stringify(e,vp,2):String(e),vp=(e,t)=>pp(t)?vp(e,t.value):or(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,r],l)=>(n[Us(a,l)+" =>"]=r,n),{})}:sp(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Us(n))}:Vt(t)?Us(t):Ze(t)&&!Te(t)&&!cp(t)?String(t):t,Us=(e,t="")=>{var n;return Vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let ct;class hp{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&&ct&&(ct.active?(this.parent=ct,this.index=(ct.scopes||(ct.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(ct===this)ct=this.prevScope;else{let t=ct;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(el){let t=el;for(el=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Xr;){let t=Xr;for(Xr=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 xp(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function wp(e){let t,n=e.depsTail,a=n;for(;a;){const r=a.prevDep;a.version===-1?(a===n&&(n=r),Mu(a),gy(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=r}e.deps=t,e.depsTail=n}function Fi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(kp(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function kp(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ul)||(e.globalVersion=ul,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Fi(e))))return;e.flags|=2;const t=e.dep,n=at,a=Jt;at=e,Jt=!0;try{xp(e);const r=e.fn(e._value);(t.version===0||vn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{at=n,Jt=a,wp(e),e.flags&=-3}}function Mu(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)Mu(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function gy(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Jt=!0;const $p=[];function Vn(){$p.push(Jt),Jt=!1}function Ln(){const e=$p.pop();Jt=e===void 0?!0:e}function Vc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=at;at=void 0;try{t()}finally{at=n}}}let ul=0;class by{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 Yo{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(!at||!Jt||at===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==at)n=this.activeLink=new by(at,this),at.deps?(n.prevDep=at.depsTail,at.depsTail.nextDep=n,at.depsTail=n):at.deps=at.depsTail=n,Cp(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=at.depsTail,n.nextDep=void 0,at.depsTail.nextDep=n,at.depsTail=n,at.deps===n&&(at.deps=a)}return n}trigger(t){this.version++,ul++,this.notify(t)}notify(t){Pu();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ou()}}}function Cp(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)Cp(a)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const mo=new WeakMap,Ta=Symbol(""),Bi=Symbol(""),cl=Symbol("");function yt(e,t,n){if(Jt&&at){let a=mo.get(e);a||mo.set(e,a=new Map);let r=a.get(n);r||(a.set(n,r=new Yo),r.map=a,r.key=n),r.track()}}function On(e,t,n,a,r,l){const o=mo.get(e);if(!o){ul++;return}const s=i=>{i&&i.trigger()};if(Pu(),t==="clear")o.forEach(s);else{const i=Te(e),c=i&&Ho(n);if(i&&n==="length"){const d=Number(a);o.forEach((f,p)=>{(p==="length"||p===cl||!Vt(p)&&p>=d)&&s(f)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),c&&s(o.get(cl)),t){case"add":i?c&&s(o.get("length")):(s(o.get(Ta)),or(e)&&s(o.get(Bi)));break;case"delete":i||(s(o.get(Ta)),or(e)&&s(o.get(Bi)));break;case"set":or(e)&&s(o.get(Ta));break}}Ou()}function _y(e,t){const n=mo.get(e);return n&&n.get(t)}function Ha(e){const t=Je(e);return t===e?t:(yt(t,"iterate",cl),Nt(e)?t:t.map(Qt))}function Jo(e){return yt(e=Je(e),"iterate",cl),e}function fn(e,t){return jn(e)?hr(Ra(e)?Qt(t):t):Qt(t)}const xy={__proto__:null,[Symbol.iterator](){return Hs(this,Symbol.iterator,e=>fn(this,e))},concat(...e){return Ha(this).concat(...e.map(t=>Te(t)?Ha(t):t))},entries(){return Hs(this,"entries",e=>(e[1]=fn(this,e[1]),e))},every(e,t){return Sn(this,"every",e,t,void 0,arguments)},filter(e,t){return Sn(this,"filter",e,t,n=>n.map(a=>fn(this,a)),arguments)},find(e,t){return Sn(this,"find",e,t,n=>fn(this,n),arguments)},findIndex(e,t){return Sn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Sn(this,"findLast",e,t,n=>fn(this,n),arguments)},findLastIndex(e,t){return Sn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Sn(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ks(this,"includes",e)},indexOf(...e){return Ks(this,"indexOf",e)},join(e){return Ha(this).join(e)},lastIndexOf(...e){return Ks(this,"lastIndexOf",e)},map(e,t){return Sn(this,"map",e,t,void 0,arguments)},pop(){return Ir(this,"pop")},push(...e){return Ir(this,"push",e)},reduce(e,...t){return Lc(this,"reduce",e,t)},reduceRight(e,...t){return Lc(this,"reduceRight",e,t)},shift(){return Ir(this,"shift")},some(e,t){return Sn(this,"some",e,t,void 0,arguments)},splice(...e){return Ir(this,"splice",e)},toReversed(){return Ha(this).toReversed()},toSorted(e){return Ha(this).toSorted(e)},toSpliced(...e){return Ha(this).toSpliced(...e)},unshift(...e){return Ir(this,"unshift",e)},values(){return Hs(this,"values",e=>fn(this,e))}};function Hs(e,t,n){const a=Jo(e),r=a[t]();return a!==e&&!Nt(e)&&(r._next=r.next,r.next=()=>{const l=r._next();return l.done||(l.value=n(l.value)),l}),r}const wy=Array.prototype;function Sn(e,t,n,a,r,l){const o=Jo(e),s=o!==e&&!Nt(e),i=o[t];if(i!==wy[t]){const f=i.apply(e,l);return s?Qt(f):f}let c=n;o!==e&&(s?c=function(f,p){return n.call(this,fn(e,f),p,e)}:n.length>2&&(c=function(f,p){return n.call(this,f,p,e)}));const d=i.call(o,c,a);return s&&r?r(d):d}function Lc(e,t,n,a){const r=Jo(e),l=r!==e&&!Nt(e);let o=n,s=!1;r!==e&&(l?(s=a.length===0,o=function(c,d,f){return s&&(s=!1,c=fn(e,c)),n.call(this,c,fn(e,d),f,e)}):n.length>3&&(o=function(c,d,f){return n.call(this,c,d,f,e)}));const i=r[t](o,...a);return s?fn(e,i):i}function Ks(e,t,n){const a=Je(e);yt(a,"iterate",cl);const r=a[t](...n);return(r===-1||r===!1)&&Xo(n[0])?(n[0]=Je(n[0]),a[t](...n)):r}function Ir(e,t,n=[]){Vn(),Pu();const a=Je(e)[t].apply(e,n);return Ou(),Ln(),a}const ky=Cu("__proto__,__v_isRef,__isVue"),Sp=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vt));function $y(e){Vt(e)||(e=String(e));const t=Je(this);return yt(t,"has",e),t.hasOwnProperty(e)}class Ep{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?Tp:Mp:l?Op:Pp).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const o=Te(t);if(!r){let i;if(o&&(i=xy[n]))return i;if(n==="hasOwnProperty")return $y}const s=Reflect.get(t,n,ot(t)?t:a);if((Vt(n)?Sp.has(n):ky(n))||(r||yt(t,"get",n),l))return s;if(ot(s)){const i=o&&Ho(n)?s:s.value;return r&&Ze(i)?dt(i):i}return Ze(s)?r?dt(s):Zt(s):s}}class Ap extends Ep{constructor(t=!1){super(!1,t)}set(t,n,a,r){let l=t[n];const o=Te(t)&&Ho(n);if(!this._isShallow){const c=jn(l);if(!Nt(a)&&!jn(a)&&(l=Je(l),a=Je(a)),!o&&ot(l)&&!ot(a))return c||(l.value=a),!0}const s=o?Number(n)e,Hl=e=>Reflect.getPrototypeOf(e);function Dy(e,t,n){return function(...a){const r=this.__v_raw,l=Je(r),o=or(l),s=e==="entries"||e===Symbol.iterator&&o,i=e==="keys"&&o,c=r[e](...a),d=n?Ni:t?hr:Qt;return!t&&yt(l,"iterate",i?Bi:Ta),ut(Object.create(c),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[d(f[0]),d(f[1])]:d(f),done:p}}})}}function Kl(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Py(e,t){const n={get(r){const l=this.__v_raw,o=Je(l),s=Je(r);e||(vn(r,s)&&yt(o,"get",r),yt(o,"get",s));const{has:i}=Hl(o),c=t?Ni:e?hr:Qt;if(i.call(o,r))return c(l.get(r));if(i.call(o,s))return c(l.get(s));l!==o&&l.get(r)},get size(){const r=this.__v_raw;return!e&&yt(Je(r),"iterate",Ta),r.size},has(r){const l=this.__v_raw,o=Je(l),s=Je(r);return e||(vn(r,s)&&yt(o,"has",r),yt(o,"has",s)),r===s?l.has(r):l.has(r)||l.has(s)},forEach(r,l){const o=this,s=o.__v_raw,i=Je(s),c=t?Ni:e?hr:Qt;return!e&&yt(i,"iterate",Ta),s.forEach((d,f)=>r.call(l,c(d),c(f),o))}};return ut(n,e?{add:Kl("add"),set:Kl("set"),delete:Kl("delete"),clear:Kl("clear")}:{add(r){const l=Je(this),o=Hl(l),s=Je(r),i=!t&&!Nt(r)&&!jn(r)?s:r;return o.has.call(l,i)||vn(r,i)&&o.has.call(l,r)||vn(s,i)&&o.has.call(l,s)||(l.add(i),On(l,"add",i,i)),this},set(r,l){!t&&!Nt(l)&&!jn(l)&&(l=Je(l));const o=Je(this),{has:s,get:i}=Hl(o);let c=s.call(o,r);c||(r=Je(r),c=s.call(o,r));const d=i.call(o,r);return o.set(r,l),c?vn(l,d)&&On(o,"set",r,l):On(o,"add",r,l),this},delete(r){const l=Je(this),{has:o,get:s}=Hl(l);let i=o.call(l,r);i||(r=Je(r),i=o.call(l,r)),s&&s.call(l,r);const c=l.delete(r);return i&&On(l,"delete",r,void 0),c},clear(){const r=Je(this),l=r.size!==0,o=r.clear();return l&&On(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Dy(r,e,t)}),n}function Zo(e,t){const n=Py(e,t);return(a,r,l)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?a:Reflect.get(Xe(n,r)&&r in a?n:a,r,l)}const Oy={get:Zo(!1,!1)},My={get:Zo(!1,!0)},Ty={get:Zo(!0,!1)},Ry={get:Zo(!0,!0)},Pp=new WeakMap,Op=new WeakMap,Mp=new WeakMap,Tp=new WeakMap;function qy(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Zt(e){return jn(e)?e:Qo(e,!1,Cy,Oy,Pp)}function Rp(e){return Qo(e,!1,Ey,My,Op)}function dt(e){return Qo(e,!0,Sy,Ty,Mp)}function Ka(e){return Qo(e,!0,Ay,Ry,Tp)}function Qo(e,t,n,a,r){if(!Ze(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=qy(sy(e));if(o===0)return e;const s=new Proxy(e,o===2?a:n);return r.set(e,s),s}function Ra(e){return jn(e)?Ra(e.__v_raw):!!(e&&e.__v_isReactive)}function jn(e){return!!(e&&e.__v_isReadonly)}function Nt(e){return!!(e&&e.__v_isShallow)}function Xo(e){return e?!!e.__v_raw:!1}function Je(e){const t=e&&e.__v_raw;return t?Je(t):e}function yo(e){return!Xe(e,"__v_skip")&&Object.isExtensible(e)&&dp(e,"__v_skip",!0),e}const Qt=e=>Ze(e)?Zt(e):e,hr=e=>Ze(e)?dt(e):e;function ot(e){return e?e.__v_isRef===!0:!1}function T(e){return qp(e,!1)}function es(e){return qp(e,!0)}function qp(e,t){return ot(e)?e:new Iy(e,t)}class Iy{constructor(t,n){this.dep=new Yo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Je(t),this._value=n?t:Qt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,a=this.__v_isShallow||Nt(t)||jn(t);t=a?t:Je(t),vn(t,n)&&(this._rawValue=t,this._value=a?t:Qt(t),this.dep.trigger())}}function Fy(e){e.dep&&e.dep.trigger()}function u(e){return ot(e)?e.value:e}function Tt(e){return Be(e)?e():u(e)}const By={get:(e,t,n)=>t==="__v_raw"?e:u(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const r=e[t];return ot(r)&&!ot(n)?(r.value=n,!0):Reflect.set(e,t,n,a)}};function Ip(e){return Ra(e)?e:new Proxy(e,By)}class Ny{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Yo,{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 Vy(e){return new Ny(e)}function Lt(e){const t=Te(e)?new Array(e.length):{};for(const n in e)t[n]=Fp(e,n);return t}class Ly{constructor(t,n,a){this._object=t,this._defaultValue=a,this.__v_isRef=!0,this._value=void 0,this._key=Vt(n)?n:String(n),this._raw=Je(t);let r=!0,l=t;if(!Te(t)||Vt(this._key)||!Ho(this._key))do r=!Xo(l)||Nt(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&&ot(this._raw[this._key])){const n=this._object[this._key];if(ot(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return _y(this._raw,this._key)}}class jy{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 Uy(e,t,n){return ot(e)?e:Be(e)?new jy(e):Ze(e)&&arguments.length>1?Fp(e,t,n):T(e)}function Fp(e,t,n){return new Ly(e,t,n)}class zy{constructor(t,n,a){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Yo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ul-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=a}notify(){if(this.flags|=16,!(this.flags&8)&&at!==this)return _p(this,!0),!0}get value(){const t=this.dep.track();return kp(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hy(e,t,n=!1){let a,r;return Be(e)?a=e:(a=e.get,r=e.set),new zy(a,r,n)}const Wl={},go=new WeakMap;let Aa;function Ky(e,t=!1,n=Aa){if(n){let a=go.get(n);a||go.set(n,a=[]),a.push(e)}}function Wy(e,t,n=nt){const{immediate:a,deep:r,once:l,scheduler:o,augmentJob:s,call:i}=n,c=A=>r?A:Nt(A)||r===!1||r===0?Mn(A,1):Mn(A);let d,f,p,v,m=!1,g=!1;if(ot(e)?(f=()=>e.value,m=Nt(e)):Ra(e)?(f=()=>c(e),m=!0):Te(e)?(g=!0,m=e.some(A=>Ra(A)||Nt(A)),f=()=>e.map(A=>{if(ot(A))return A.value;if(Ra(A))return c(A);if(Be(A))return i?i(A,2):A()})):Be(e)?t?f=i?()=>i(e,2):e:f=()=>{if(p){Vn();try{p()}finally{Ln()}}const A=Aa;Aa=d;try{return i?i(e,3,[v]):e(v)}finally{Aa=A}}:f=bn,t&&r){const A=f,V=r===!0?1/0:r;f=()=>Mn(A(),V)}const _=Du(),y=()=>{d.stop(),_&&_.active&&Su(_.effects,d)};if(l&&t){const A=t;t=(...V)=>{A(...V),y()}}let x=g?new Array(e.length).fill(Wl):Wl;const S=A=>{if(!(!(d.flags&1)||!d.dirty&&!A))if(t){const V=d.run();if(r||m||(g?V.some((J,U)=>vn(J,x[U])):vn(V,x))){p&&p();const J=Aa;Aa=d;try{const U=[V,x===Wl?void 0:g&&x[0]===Wl?[]:x,v];x=V,i?i(t,3,U):t(...U)}finally{Aa=J}}}else d.run()};return s&&s(S),d=new gp(f),d.scheduler=o?()=>o(S,!1):S,v=A=>Ky(A,!1,d),p=d.onStop=()=>{const A=go.get(d);if(A){if(i)i(A,4);else for(const V of A)V();go.delete(d)}},t?a?S(!0):x=d.run():o?o(S.bind(null,!0),!0):d.run(),y.pause=d.pause.bind(d),y.resume=d.resume.bind(d),y.stop=y,y}function Mn(e,t=1/0,n){if(t<=0||!Ze(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ot(e))Mn(e.value,t,n);else if(Te(e))for(let a=0;a{Mn(a,t,n)});else if(cp(e)){for(const a in e)Mn(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&Mn(e[a],t,n)}return e}function Al(e,t,n,a){try{return a?e(...a):e()}catch(r){ts(r,t,n)}}function Gt(e,t,n,a){if(Be(e)){const r=Al(e,t,n,a);return r&&ip(r)&&r.catch(l=>{ts(l,t,n)}),r}if(Te(e)){const r=[];for(let l=0;l>>1,r=Et[a],l=dl(r);l=dl(n)?Et.push(e):Et.splice(Yy(t),0,e),e.flags|=1,Np()}}function Np(){bo||(bo=Bp.then(Lp))}function Jy(e){Te(e)?sr.push(...e):ra&&e.id===-1?ra.splice(Xa+1,0,e):e.flags&1||(sr.push(e),e.flags|=1),Np()}function jc(e,t,n=cn+1){for(;ndl(n)-dl(a));if(sr.length=0,ra){ra.push(...t);return}for(ra=t,Xa=0;Xae.id==null?e.flags&2?-1:1/0:e.id;function Lp(e){try{for(cn=0;cn{a._d&&ko(-1);const l=_o(t);let o;try{o=e(...r)}finally{_o(l),a._d&&ko(1)}return o};return a._n=!0,a._c=!0,a._d=!0,a}function qa(e,t){if(vt===null)return e;const n=os(vt),a=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&Be(t)?t.call(a&&a.proxy):t}}const Zy=Symbol.for("v-scx"),Qy=()=>st(Zy);function Xt(e,t){return ns(e,null,t)}function Up(e,t){return ns(e,null,{flush:"post"})}function Fe(e,t,n){return ns(e,t,n)}function ns(e,t,n=nt){const{immediate:a,deep:r,flush:l,once:o}=n,s=ut({},n),i=t&&a||!t&&l!=="post";let c;if(hl){if(l==="sync"){const v=Qy();c=v.__watcherHandles||(v.__watcherHandles=[])}else if(!i){const v=()=>{};return v.stop=bn,v.resume=bn,v.pause=bn,v}}const d=gt;s.call=(v,m,g)=>Gt(v,d,m,g);let f=!1;l==="post"?s.scheduler=v=>{St(v,d&&d.suspense)}:l!=="sync"&&(f=!0,s.scheduler=(v,m)=>{m?v():Tu(v)}),s.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,d&&(v.id=d.uid,v.i=d))};const p=Wy(e,t,s);return hl&&(c?c.push(p):i&&p()),p}function Xy(e,t,n){const a=this.proxy,r=rt(e)?e.includes(".")?zp(a,e):()=>a[e]:e.bind(a,a);let l;Be(t)?l=t:(l=t.handler,n=t);const o=Dl(this),s=ns(r,l.bind(a),n);return o(),s}function zp(e,t){const n=t.split(".");return()=>{let a=e;for(let r=0;re.__isTeleport,Pa=e=>e&&(e.disabled||e.disabled===""),tg=e=>e&&(e.defer||e.defer===""),Uc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,zc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Vi=(e,t)=>{const n=e&&e.to;return rt(n)?t?t(n):null:n},ng={name:"Teleport",__isTeleport:!0,process(e,t,n,a,r,l,o,s,i,c){const{mc:d,pc:f,pbc:p,o:{insert:v,querySelector:m,createText:g,createComment:_,parentNode:y}}=c,x=Pa(t.props);let{dynamicChildren:S}=t;const A=(U,H,k)=>{U.shapeFlag&16&&d(U.children,H,k,r,l,o,s,i)},V=(U=t)=>{const H=Pa(U.props),k=U.target=Vi(U.props,m),I=Li(k,U,g,v);k&&(o!=="svg"&&Uc(k)?o="svg":o!=="mathml"&&zc(k)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(k),H||(A(U,k,I),Kr(U,!1)))},J=U=>{const H=()=>{if(ta.get(U)===H){if(ta.delete(U),Pa(U.props)){const k=y(U.el)||n;A(U,k,U.anchor),Kr(U,!0)}V(U)}};ta.set(U,H),St(H,l)};if(e==null){const U=t.el=g(""),H=t.anchor=g("");if(v(U,n,a),v(H,n,a),tg(t.props)||l&&l.pendingBranch){J(t);return}x&&(A(t,n,H),Kr(t,!0)),V()}else{t.el=e.el;const U=t.anchor=e.anchor,H=ta.get(e);if(H){H.flags|=8,ta.delete(e),J(t);return}t.targetStart=e.targetStart;const k=t.target=e.target,I=t.targetAnchor=e.targetAnchor,G=Pa(e.props),D=G?n:k,N=G?U:I;if(o==="svg"||Uc(k)?o="svg":(o==="mathml"||zc(k))&&(o="mathml"),S?(p(e.dynamicChildren,S,D,r,l,o,s),Fu(e,t,!0)):i||f(e,t,D,N,r,l,o,s,!1),x)G?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Gl(t,n,U,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=t.target=Vi(t.props,m);W&&Gl(t,W,null,c,0)}else G&&Gl(t,k,I,c,1);Kr(t,x)}},remove(e,t,n,{um:a,o:{remove:r}},l){const{shapeFlag:o,children:s,anchor:i,targetStart:c,targetAnchor:d,target:f,props:p}=e,v=l||!Pa(p),m=ta.get(e);if(m&&(m.flags|=8,ta.delete(e)),f&&(r(c),r(d)),l&&r(i),!m&&o&16)for(let g=0;g{e.isMounted=!0}),qt(()=>{e.isUnmounting=!0}),e}const jt=[Function,Array],og={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:jt,onEnter:jt,onAfterEnter:jt,onEnterCancelled:jt,onBeforeLeave:jt,onLeave:jt,onAfterLeave:jt,onLeaveCancelled:jt,onBeforeAppear:jt,onAppear:jt,onAfterAppear:jt,onAppearCancelled:jt};function sg(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 ji(e,t,n,a,r){const{appear:l,mode:o,persisted:s=!1,onBeforeEnter:i,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:p,onLeave:v,onAfterLeave:m,onLeaveCancelled:g,onBeforeAppear:_,onAppear:y,onAfterAppear:x,onAppearCancelled:S}=t,A=String(e.key),V=sg(n,e),J=(k,I)=>{k&&Gt(k,a,9,I)},U=(k,I)=>{const G=I[1];J(k,I),Te(k)?k.every(D=>D.length<=1)&&G():k.length<=1&&G()},H={mode:o,persisted:s,beforeEnter(k){let I=i;if(!n.isMounted)if(l)I=_||i;else return;k[dn]&&k[dn](!0);const G=V[A];G&&er(e,G)&&G.el[dn]&&G.el[dn](),J(I,[k])},enter(k){if(V[A]===e)return;let I=c,G=d,D=f;if(!n.isMounted)if(l)I=y||c,G=x||d,D=S||f;else return;let N=!1;k[Fr]=B=>{N||(N=!0,B?J(D,[k]):J(G,[k]),H.delayedLeave&&H.delayedLeave(),k[Fr]=void 0)};const W=k[Fr].bind(null,!1);I?U(I,[k,W]):W()},leave(k,I){const G=String(e.key);if(k[Fr]&&k[Fr](!0),n.isUnmounting)return I();J(p,[k]);let D=!1;k[dn]=W=>{D||(D=!0,I(),W?J(g,[k]):J(m,[k]),k[dn]=void 0,V[G]===e&&delete V[G])};const N=k[dn].bind(null,!1);V[G]=e,v?U(v,[k,N]):N()},clone(k){return ji(k,t,n,a)}};return H}function fl(e,t){e.shapeFlag&6&&e.component?(e.transition=t,fl(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 Kp(e,t=!1,n){let a=[],r=0;for(let l=0;l1)for(let l=0;ltl(g,t&&(Te(t)?t[_]:t),n,a,r));return}if(ir(a)&&!r){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&tl(e,t,n,a.component.subTree);return}const l=a.shapeFlag&4?os(a.component):a.el,o=r?null:l,{i:s,r:i}=e,c=t&&t.r,d=s.refs===nt?s.refs={}:s.refs,f=s.setupState,p=Je(f),v=f===nt?op:g=>Hc(d,g)?!1:Xe(p,g),m=(g,_)=>!(_&&Hc(d,_));if(c!=null&&c!==i){if(Kc(t),rt(c))d[c]=null,v(c)&&(f[c]=null);else if(ot(c)){const g=t;m(c,g.k)&&(c.value=null),g.k&&(d[g.k]=null)}}if(Be(i))Al(i,s,12,[o,d]);else{const g=rt(i),_=ot(i);if(g||_){const y=()=>{if(e.f){const x=g?v(i)?f[i]:d[i]:m()||!e.k?i.value:d[e.k];if(r)Te(x)&&Su(x,l);else if(Te(x))x.includes(l)||x.push(l);else if(g)d[i]=[l],v(i)&&(f[i]=d[i]);else{const S=[l];m(i,e.k)&&(i.value=S),e.k&&(d[e.k]=S)}}else g?(d[i]=o,v(i)&&(f[i]=o)):_&&(m(i,e.k)&&(i.value=o),e.k&&(d[e.k]=o))};if(o){const x=()=>{y(),xo.delete(e)};x.id=-1,xo.set(e,x),St(x,n)}else Kc(e),y()}}}function Kc(e){const t=xo.get(e);t&&(t.flags|=8,xo.delete(e))}Go().requestIdleCallback;Go().cancelIdleCallback;const ir=e=>!!e.type.__asyncLoader,Gp=e=>e.type.__isKeepAlive;function Yp(e,t){Zp(e,"a",t)}function Jp(e,t){Zp(e,"da",t)}function Zp(e,t,n=gt){const a=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(as(t,a,n),n){let r=n.parent;for(;r&&r.parent;)Gp(r.parent.vnode)&&ug(a,t,n,r),r=r.parent}}function ug(e,t,n,a){const r=as(t,e,a,!0);Er(()=>{Su(a[t],r)},n)}function as(e,t,n=gt,a=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...o)=>{Vn();const s=Dl(n),i=Gt(t,n,e,o);return s(),Ln(),i});return a?r.unshift(l):r.push(l),l}}const Kn=e=>(t,n=gt)=>{(!hl||e==="sp")&&as(e,(...a)=>t(...a),n)},cg=Kn("bm"),_t=Kn("m"),dg=Kn("bu"),Ru=Kn("u"),qt=Kn("bum"),Er=Kn("um"),fg=Kn("sp"),pg=Kn("rtg"),vg=Kn("rtc");function hg(e,t=gt){as("ec",e,t)}const mg="components",Qp=Symbol.for("v-ndc");function en(e){return rt(e)?yg(mg,e,!1)||e:e||Qp}function yg(e,t,n=!0,a=!1){const r=vt||gt;if(r){const l=r.type;{const s=Xg(l,!1);if(s&&(s===t||s===ht(t)||s===Wo(ht(t))))return l}const o=Wc(r[e]||l[e],t)||Wc(r.appContext[e],t);return!o&&a?l:o}}function Wc(e,t){return e&&(e[t]||e[ht(t)]||e[Wo(ht(t))])}function Ne(e,t,n,a){let r;const l=n,o=Te(e);if(o||rt(e)){const s=o&&Ra(e);let i=!1,c=!1;s&&(i=!Nt(e),c=jn(e),e=Jo(e)),r=new Array(e.length);for(let d=0,f=e.length;dt(s,i,void 0,l));else{const s=Object.keys(e);r=new Array(s.length);for(let i=0,c=s.length;i0;return t!=="default"&&(n.name=t),h(),j(_e,null,[z("slot",n,a&&a())],c?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),h();const o=l&&Xp(l(n)),s=n.key||o&&o.key,i=j(_e,{key:(s&&!Vt(s)?s:`_${t}`)+(!o&&a?"_fb":"")},o||(a?a():[]),o&&e._===1?64:-2);return i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),l&&l._c&&(l._d=!0),i}function Xp(e){return e.some(t=>vl(t)?!(t.type===tn||t.type===_e&&!Xp(t.children)):!0)?e:null}function ev(e,t){const n={};for(const a in e)n[Qr(a)]=e[a];return n}const Ui=e=>e?_v(e)?os(e):Ui(e.parent):null,nl=ut(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=>Ui(e.parent),$root:e=>Ui(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>av(e),$forceUpdate:e=>e.f||(e.f=()=>{Tu(e.update)}),$nextTick:e=>e.n||(e.n=ze.bind(e.proxy)),$watch:e=>Xy.bind(e)}),Ws=(e,t)=>e!==nt&&!e.__isScriptSetup&&Xe(e,t),gg={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:r,props:l,accessCache:o,type:s,appContext:i}=e;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return a[t];case 2:return r[t];case 4:return n[t];case 3:return l[t]}else{if(Ws(a,t))return o[t]=1,a[t];if(r!==nt&&Xe(r,t))return o[t]=2,r[t];if(Xe(l,t))return o[t]=3,l[t];if(n!==nt&&Xe(n,t))return o[t]=4,n[t];Hi&&(o[t]=0)}}const c=nl[t];let d,f;if(c)return t==="$attrs"&&yt(e.attrs,"get",""),c(e);if((d=s.__cssModules)&&(d=d[t]))return d;if(n!==nt&&Xe(n,t))return o[t]=4,n[t];if(f=i.config.globalProperties,Xe(f,t))return f[t]},set({_:e},t,n){const{data:a,setupState:r,ctx:l}=e;return Ws(r,t)?(r[t]=n,!0):a!==nt&&Xe(a,t)?(a[t]=n,!0):Xe(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}},s){let i;return!!(n[s]||e!==nt&&s[0]!=="$"&&Xe(e,s)||Ws(t,s)||Xe(l,s)||Xe(a,s)||Xe(nl,s)||Xe(r.config.globalProperties,s)||(i=o.__cssModules)&&i[s])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Xe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function zi(e){return Te(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function tv(e,t){const n=zi(e);for(const a in t){if(a.startsWith("__skip"))continue;let r=n[a];r?Te(r)||Be(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 Hi=!0;function bg(e){const t=av(e),n=e.proxy,a=e.ctx;Hi=!1,t.beforeCreate&&Gc(t.beforeCreate,e,"bc");const{data:r,computed:l,methods:o,watch:s,provide:i,inject:c,created:d,beforeMount:f,mounted:p,beforeUpdate:v,updated:m,activated:g,deactivated:_,beforeDestroy:y,beforeUnmount:x,destroyed:S,unmounted:A,render:V,renderTracked:J,renderTriggered:U,errorCaptured:H,serverPrefetch:k,expose:I,inheritAttrs:G,components:D,directives:N,filters:W}=t;if(c&&_g(c,a,null),o)for(const ne in o){const ce=o[ne];Be(ce)&&(a[ne]=ce.bind(n))}if(r){const ne=r.call(n,n);Ze(ne)&&(e.data=Zt(ne))}if(Hi=!0,l)for(const ne in l){const ce=l[ne],te=Be(ce)?ce.bind(n,n):Be(ce.get)?ce.get.bind(n,n):bn,ie=!Be(ce)&&Be(ce.set)?ce.set.bind(n):bn,le=w({get:te,set:ie});Object.defineProperty(a,ne,{enumerable:!0,configurable:!0,get:()=>le.value,set:re=>le.value=re})}if(s)for(const ne in s)nv(s[ne],a,n,ne);if(i){const ne=Be(i)?i.call(n):i;Reflect.ownKeys(ne).forEach(ce=>{Dt(ce,ne[ce])})}d&&Gc(d,e,"c");function Q(ne,ce){Te(ce)?ce.forEach(te=>ne(te.bind(n))):ce&&ne(ce.bind(n))}if(Q(cg,f),Q(_t,p),Q(dg,v),Q(Ru,m),Q(Yp,g),Q(Jp,_),Q(hg,H),Q(vg,J),Q(pg,U),Q(qt,x),Q(Er,A),Q(fg,k),Te(I))if(I.length){const ne=e.exposed||(e.exposed={});I.forEach(ce=>{Object.defineProperty(ne,ce,{get:()=>n[ce],set:te=>n[ce]=te,enumerable:!0})})}else e.exposed||(e.exposed={});V&&e.render===bn&&(e.render=V),G!=null&&(e.inheritAttrs=G),D&&(e.components=D),N&&(e.directives=N),k&&Wp(e)}function _g(e,t,n=bn){Te(e)&&(e=Ki(e));for(const a in e){const r=e[a];let l;Ze(r)?"default"in r?l=st(r.from||a,r.default,!0):l=st(r.from||a):l=st(r),ot(l)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>l.value,set:o=>l.value=o}):t[a]=l}}function Gc(e,t,n){Gt(Te(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function nv(e,t,n,a){let r=a.includes(".")?zp(n,a):()=>n[a];if(rt(e)){const l=t[e];Be(l)&&Fe(r,l)}else if(Be(e))Fe(r,e.bind(n));else if(Ze(e))if(Te(e))e.forEach(l=>nv(l,t,n,a));else{const l=Be(e.handler)?e.handler.bind(n):t[e.handler];Be(l)&&Fe(r,l,e)}}function av(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:o}}=e.appContext,s=l.get(t);let i;return s?i=s:!r.length&&!n&&!a?i=t:(i={},r.length&&r.forEach(c=>wo(i,c,o,!0)),wo(i,t,o)),Ze(t)&&l.set(t,i),i}function wo(e,t,n,a=!1){const{mixins:r,extends:l}=t;l&&wo(e,l,n,!0),r&&r.forEach(o=>wo(e,o,n,!0));for(const o in t)if(!(a&&o==="expose")){const s=xg[o]||n&&n[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const xg={data:Yc,props:Jc,emits:Jc,methods:Wr,computed:Wr,beforeCreate:Ct,created:Ct,beforeMount:Ct,mounted:Ct,beforeUpdate:Ct,updated:Ct,beforeDestroy:Ct,beforeUnmount:Ct,destroyed:Ct,unmounted:Ct,activated:Ct,deactivated:Ct,errorCaptured:Ct,serverPrefetch:Ct,components:Wr,directives:Wr,watch:kg,provide:Yc,inject:wg};function Yc(e,t){return t?e?function(){return ut(Be(e)?e.call(this,this):e,Be(t)?t.call(this,this):t)}:t:e}function wg(e,t){return Wr(Ki(e),Ki(t))}function Ki(e){if(Te(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${ba(t)}Modifiers`];function Eg(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||nt;let r=n;const l=t.startsWith("update:"),o=l&&Sg(a,t.slice(7));o&&(o.trim&&(r=n.map(d=>rt(d)?d.trim():d)),o.number&&(r=n.map(Eu)));let s,i=a[s=Qr(t)]||a[s=Qr(ht(t))];!i&&l&&(i=a[s=Qr(ba(t))]),i&&Gt(i,e,6,r);const c=a[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Gt(c,e,6,r)}}const Ag=new WeakMap;function lv(e,t,n=!1){const a=n?Ag:t.emitsCache,r=a.get(e);if(r!==void 0)return r;const l=e.emits;let o={},s=!1;if(!Be(e)){const i=c=>{const d=lv(c,t,!0);d&&(s=!0,ut(o,d))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!l&&!s?(Ze(e)&&a.set(e,null),null):(Te(l)?l.forEach(i=>o[i]=null):ut(o,l),Ze(e)&&a.set(e,o),o)}function rs(e,t){return!e||!Uo(t)?!1:(t=t.slice(2).replace(/Once$/,""),Xe(e,t[0].toLowerCase()+t.slice(1))||Xe(e,ba(t))||Xe(e,t))}function Zc(e){const{type:t,vnode:n,proxy:a,withProxy:r,propsOptions:[l],slots:o,attrs:s,emit:i,render:c,renderCache:d,props:f,data:p,setupState:v,ctx:m,inheritAttrs:g}=e,_=_o(e);let y,x;try{if(n.shapeFlag&4){const A=r||a,V=A;y=pn(c.call(V,A,d,f,v,p,m)),x=s}else{const A=t;y=pn(A.length>1?A(f,{attrs:s,slots:o,emit:i}):A(f,null)),x=t.props?s:Dg(s)}}catch(A){al.length=0,ts(A,e,1),y=z(tn)}let S=y;if(x&&g!==!1){const A=Object.keys(x),{shapeFlag:V}=S;A.length&&V&7&&(l&&A.some(zo)&&(x=Pg(x,l)),S=fa(S,x,!1,!0))}return n.dirs&&(S=fa(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&fl(S,n.transition),y=S,_o(_),y}const Dg=e=>{let t;for(const n in e)(n==="class"||n==="style"||Uo(n))&&((t||(t={}))[n]=e[n]);return t},Pg=(e,t)=>{const n={};for(const a in e)(!zo(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function Og(e,t,n){const{props:a,children:r,component:l}=e,{props:o,children:s,patchFlag:i}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return a?Qc(a,o,c):!!o;if(i&8){const d=t.dynamicProps;for(let f=0;fObject.create(sv),uv=e=>Object.getPrototypeOf(e)===sv;function Tg(e,t,n,a=!1){const r={},l=iv();e.propsDefaults=Object.create(null),cv(e,t,r,l);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=a?r:Rp(r):e.type.props?e.props=r:e.props=l,e.attrs=l}function Rg(e,t,n,a){const{props:r,attrs:l,vnode:{patchFlag:o}}=e,s=Je(r),[i]=e.propsOptions;let c=!1;if((a||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let f=0;f{i=!0;const[p,v]=dv(f,t,!0);ut(o,p),v&&s.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!i)return Ze(e)&&a.set(e,lr),lr;if(Te(l))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",Iu=e=>Te(e)?e.map(pn):[pn(e)],Ig=(e,t,n)=>{if(t._n)return t;const a=F((...r)=>Iu(t(...r)),n);return a._c=!1,a},fv=(e,t,n)=>{const a=e._ctx;for(const r in e){if(qu(r))continue;const l=e[r];if(Be(l))t[r]=Ig(r,l,a);else if(l!=null){const o=Iu(l);t[r]=()=>o}}},pv=(e,t)=>{const n=Iu(t);e.slots.default=()=>n},vv=(e,t,n)=>{for(const a in t)(n||!qu(a))&&(e[a]=t[a])},Fg=(e,t,n)=>{const a=e.slots=iv();if(e.vnode.shapeFlag&32){const r=t._;r?(vv(a,t,n),n&&dp(a,"_",r,!0)):fv(t,a)}else t&&pv(e,t)},Bg=(e,t,n)=>{const{vnode:a,slots:r}=e;let l=!0,o=nt;if(a.shapeFlag&32){const s=t._;s?n&&s===1?l=!1:vv(r,t,n):(l=!t.$stable,fv(t,r)),o=t}else t&&(pv(e,t),o={default:1});if(l)for(const s in r)!qu(s)&&o[s]==null&&delete r[s]},St=Ug;function Ng(e){return Vg(e)}function Vg(e,t){const n=Go();n.__VUE__=!0;const{insert:a,remove:r,patchProp:l,createElement:o,createText:s,createComment:i,setText:c,setElementText:d,parentNode:f,nextSibling:p,setScopeId:v=bn,insertStaticContent:m}=e,g=(b,C,E,Y=null,M=null,K=null,oe=void 0,se=null,me=!!C.dynamicChildren)=>{if(b===C)return;b&&!er(b,C)&&(Y=Z(b),re(b,M,K,!0),b=null),C.patchFlag===-2&&(me=!1,C.dynamicChildren=null);const{type:fe,ref:Ee,shapeFlag:be}=C;switch(fe){case ls:_(b,C,E,Y);break;case tn:y(b,C,E,Y);break;case Ys:b==null&&x(C,E,Y,oe);break;case _e:D(b,C,E,Y,M,K,oe,se,me);break;default:be&1?V(b,C,E,Y,M,K,oe,se,me):be&6?N(b,C,E,Y,M,K,oe,se,me):(be&64||be&128)&&fe.process(b,C,E,Y,M,K,oe,se,me,de)}Ee!=null&&M?tl(Ee,b&&b.ref,K,C||b,!C):Ee==null&&b&&b.ref!=null&&tl(b.ref,null,K,b,!0)},_=(b,C,E,Y)=>{if(b==null)a(C.el=s(C.children),E,Y);else{const M=C.el=b.el;C.children!==b.children&&c(M,C.children)}},y=(b,C,E,Y)=>{b==null?a(C.el=i(C.children||""),E,Y):C.el=b.el},x=(b,C,E,Y)=>{[b.el,b.anchor]=m(b.children,C,E,Y,b.el,b.anchor)},S=({el:b,anchor:C},E,Y)=>{let M;for(;b&&b!==C;)M=p(b),a(b,E,Y),b=M;a(C,E,Y)},A=({el:b,anchor:C})=>{let E;for(;b&&b!==C;)E=p(b),r(b),b=E;r(C)},V=(b,C,E,Y,M,K,oe,se,me)=>{if(C.type==="svg"?oe="svg":C.type==="math"&&(oe="mathml"),b==null)J(C,E,Y,M,K,oe,se,me);else{const fe=b.el&&b.el._isVueCE?b.el:null;try{fe&&fe._beginPatch(),k(b,C,M,K,oe,se,me)}finally{fe&&fe._endPatch()}}},J=(b,C,E,Y,M,K,oe,se)=>{let me,fe;const{props:Ee,shapeFlag:be,transition:Se,dirs:Re}=b;if(me=b.el=o(b.type,K,Ee&&Ee.is,Ee),be&8?d(me,b.children):be&16&&H(b.children,me,null,Y,M,Gs(b,K),oe,se),Re&&ka(b,null,Y,"created"),U(me,b,b.scopeId,oe,Y),Ee){for(const We in Ee)We!=="value"&&!Zr(We)&&l(me,We,null,Ee[We],K,Y);"value"in Ee&&l(me,"value",null,Ee.value,K),(fe=Ee.onVnodeBeforeMount)&&sn(fe,Y,b)}Re&&ka(b,null,Y,"beforeMount");const je=Lg(M,Se);je&&Se.beforeEnter(me),a(me,C,E),((fe=Ee&&Ee.onVnodeMounted)||je||Re)&&St(()=>{fe&&sn(fe,Y,b),je&&Se.enter(me),Re&&ka(b,null,Y,"mounted")},M)},U=(b,C,E,Y,M)=>{if(E&&v(b,E),Y)for(let K=0;K{for(let fe=me;fe{const se=C.el=b.el;let{patchFlag:me,dynamicChildren:fe,dirs:Ee}=C;me|=b.patchFlag&16;const be=b.props||nt,Se=C.props||nt;let Re;if(E&&$a(E,!1),(Re=Se.onVnodeBeforeUpdate)&&sn(Re,E,C,b),Ee&&ka(C,b,E,"beforeUpdate"),E&&$a(E,!0),(be.innerHTML&&Se.innerHTML==null||be.textContent&&Se.textContent==null)&&d(se,""),fe?I(b.dynamicChildren,fe,se,E,Y,Gs(C,M),K):oe||ce(b,C,se,null,E,Y,Gs(C,M),K,!1),me>0){if(me&16)G(se,be,Se,E,M);else if(me&2&&be.class!==Se.class&&l(se,"class",null,Se.class,M),me&4&&l(se,"style",be.style,Se.style,M),me&8){const je=C.dynamicProps;for(let We=0;We{Re&&sn(Re,E,C,b),Ee&&ka(C,b,E,"updated")},Y)},I=(b,C,E,Y,M,K,oe)=>{for(let se=0;se{if(C!==E){if(C!==nt)for(const K in C)!Zr(K)&&!(K in E)&&l(b,K,C[K],null,M,Y);for(const K in E){if(Zr(K))continue;const oe=E[K],se=C[K];oe!==se&&K!=="value"&&l(b,K,se,oe,M,Y)}"value"in E&&l(b,"value",C.value,E.value,M)}},D=(b,C,E,Y,M,K,oe,se,me)=>{const fe=C.el=b?b.el:s(""),Ee=C.anchor=b?b.anchor:s("");let{patchFlag:be,dynamicChildren:Se,slotScopeIds:Re}=C;Re&&(se=se?se.concat(Re):Re),b==null?(a(fe,E,Y),a(Ee,E,Y),H(C.children||[],E,Ee,M,K,oe,se,me)):be>0&&be&64&&Se&&b.dynamicChildren&&b.dynamicChildren.length===Se.length?(I(b.dynamicChildren,Se,E,M,K,oe,se),(C.key!=null||M&&C===M.subTree)&&Fu(b,C,!0)):ce(b,C,E,Ee,M,K,oe,se,me)},N=(b,C,E,Y,M,K,oe,se,me)=>{C.slotScopeIds=se,b==null?C.shapeFlag&512?M.ctx.activate(C,E,Y,oe,me):W(C,E,Y,M,K,oe,me):B(b,C,me)},W=(b,C,E,Y,M,K,oe)=>{const se=b.component=Gg(b,Y,M);if(Gp(b)&&(se.ctx.renderer=de),Yg(se,!1,oe),se.asyncDep){if(M&&M.registerDep(se,Q,oe),!b.el){const me=se.subTree=z(tn);y(null,me,C,E),b.placeholder=me.el}}else Q(se,b,C,E,M,K,oe)},B=(b,C,E)=>{const Y=C.component=b.component;if(Og(b,C,E))if(Y.asyncDep&&!Y.asyncResolved){ne(Y,C,E);return}else Y.next=C,Y.update();else C.el=b.el,Y.vnode=C},Q=(b,C,E,Y,M,K,oe)=>{const se=()=>{if(b.isMounted){let{next:be,bu:Se,u:Re,parent:je,vnode:We}=b;{const Pt=hv(b);if(Pt){be&&(be.el=We.el,ne(b,be,oe)),Pt.asyncDep.then(()=>{St(()=>{b.isUnmounted||fe()},M)});return}}let Ue=be,lt;$a(b,!1),be?(be.el=We.el,ne(b,be,oe)):be=We,Se&&io(Se),(lt=be.props&&be.props.onVnodeBeforeUpdate)&&sn(lt,je,be,We),$a(b,!0);const it=Zc(b),wt=b.subTree;b.subTree=it,g(wt,it,f(wt.el),Z(wt),b,M,K),be.el=it.el,Ue===null&&Mg(b,it.el),Re&&St(Re,M),(lt=be.props&&be.props.onVnodeUpdated)&&St(()=>sn(lt,je,be,We),M)}else{let be;const{el:Se,props:Re}=C,{bm:je,m:We,parent:Ue,root:lt,type:it}=b,wt=ir(C);$a(b,!1),je&&io(je),!wt&&(be=Re&&Re.onVnodeBeforeMount)&&sn(be,Ue,C),$a(b,!0);{lt.ce&<.ce._hasShadowRoot()&<.ce._injectChildStyle(it,b.parent?b.parent.type:void 0);const Pt=b.subTree=Zc(b);g(null,Pt,E,Y,b,M,K),C.el=Pt.el}if(We&&St(We,M),!wt&&(be=Re&&Re.onVnodeMounted)){const Pt=C;St(()=>sn(be,Ue,Pt),M)}(C.shapeFlag&256||Ue&&ir(Ue.vnode)&&Ue.vnode.shapeFlag&256)&&b.a&&St(b.a,M),b.isMounted=!0,C=E=Y=null}};b.scope.on();const me=b.effect=new gp(se);b.scope.off();const fe=b.update=me.run.bind(me),Ee=b.job=me.runIfDirty.bind(me);Ee.i=b,Ee.id=b.uid,me.scheduler=()=>Tu(Ee),$a(b,!0),fe()},ne=(b,C,E)=>{C.component=b;const Y=b.vnode.props;b.vnode=C,b.next=null,Rg(b,C.props,Y,E),Bg(b,C.children,E),Vn(),jc(b),Ln()},ce=(b,C,E,Y,M,K,oe,se,me=!1)=>{const fe=b&&b.children,Ee=b?b.shapeFlag:0,be=C.children,{patchFlag:Se,shapeFlag:Re}=C;if(Se>0){if(Se&128){ie(fe,be,E,Y,M,K,oe,se,me);return}else if(Se&256){te(fe,be,E,Y,M,K,oe,se,me);return}}Re&8?(Ee&16&&pe(fe,M,K),be!==fe&&d(E,be)):Ee&16?Re&16?ie(fe,be,E,Y,M,K,oe,se,me):pe(fe,M,K,!0):(Ee&8&&d(E,""),Re&16&&H(be,E,Y,M,K,oe,se,me))},te=(b,C,E,Y,M,K,oe,se,me)=>{b=b||lr,C=C||lr;const fe=b.length,Ee=C.length,be=Math.min(fe,Ee);let Se;for(Se=0;SeEe?pe(b,M,K,!0,!1,be):H(C,E,Y,M,K,oe,se,me,be)},ie=(b,C,E,Y,M,K,oe,se,me)=>{let fe=0;const Ee=C.length;let be=b.length-1,Se=Ee-1;for(;fe<=be&&fe<=Se;){const Re=b[fe],je=C[fe]=me?Pn(C[fe]):pn(C[fe]);if(er(Re,je))g(Re,je,E,null,M,K,oe,se,me);else break;fe++}for(;fe<=be&&fe<=Se;){const Re=b[be],je=C[Se]=me?Pn(C[Se]):pn(C[Se]);if(er(Re,je))g(Re,je,E,null,M,K,oe,se,me);else break;be--,Se--}if(fe>be){if(fe<=Se){const Re=Se+1,je=ReSe)for(;fe<=be;)re(b[fe],M,K,!0),fe++;else{const Re=fe,je=fe,We=new Map;for(fe=je;fe<=Se;fe++){const Ae=C[fe]=me?Pn(C[fe]):pn(C[fe]);Ae.key!=null&&We.set(Ae.key,fe)}let Ue,lt=0;const it=Se-je+1;let wt=!1,Pt=0;const on=new Array(it);for(fe=0;fe=it){re(Ae,M,K,!0);continue}let qe;if(Ae.key!=null)qe=We.get(Ae.key);else for(Ue=je;Ue<=Se;Ue++)if(on[Ue-je]===0&&er(Ae,C[Ue])){qe=Ue;break}qe===void 0?re(Ae,M,K,!0):(on[qe-je]=fe+1,qe>=Pt?Pt=qe:wt=!0,g(Ae,C[qe],E,null,M,K,oe,se,me),lt++)}const De=wt?jg(on):lr;for(Ue=De.length-1,fe=it-1;fe>=0;fe--){const Ae=je+fe,qe=C[Ae],kt=C[Ae+1],qr=Ae+1{const{el:K,type:oe,transition:se,children:me,shapeFlag:fe}=b;if(fe&6){le(b.component.subTree,C,E,Y);return}if(fe&128){b.suspense.move(C,E,Y);return}if(fe&64){oe.move(b,C,E,de);return}if(oe===_e){a(K,C,E);for(let be=0;bese.enter(K),M));else{const{leave:be,delayLeave:Se,afterLeave:Re}=se,je=()=>{b.ctx.isUnmounted?r(K):a(K,C,E)},We=()=>{const Ue=K._isLeaving||!!K[dn];K._isLeaving&&K[dn](!0),se.persisted&&!Ue?je():be(K,()=>{je(),Re&&Re()})};Se?Se(K,je,We):We()}else a(K,C,E)},re=(b,C,E,Y=!1,M=!1)=>{const{type:K,props:oe,ref:se,children:me,dynamicChildren:fe,shapeFlag:Ee,patchFlag:be,dirs:Se,cacheIndex:Re,memo:je}=b;if(be===-2&&(M=!1),se!=null&&(Vn(),tl(se,null,E,b,!0),Ln()),Re!=null&&(C.renderCache[Re]=void 0),Ee&256){C.ctx.deactivate(b);return}const We=Ee&1&&Se,Ue=!ir(b);let lt;if(Ue&&(lt=oe&&oe.onVnodeBeforeUnmount)&&sn(lt,C,b),Ee&6)Ce(b.component,E,Y);else{if(Ee&128){b.suspense.unmount(E,Y);return}We&&ka(b,null,C,"beforeUnmount"),Ee&64?b.type.remove(b,C,E,de,Y):fe&&!fe.hasOnce&&(K!==_e||be>0&&be&64)?pe(fe,C,E,!1,!0):(K===_e&&be&384||!M&&Ee&16)&&pe(me,C,E),Y&&we(b)}const it=je!=null&&Re==null;(Ue&&(lt=oe&&oe.onVnodeUnmounted)||We||it)&&St(()=>{lt&&sn(lt,C,b),We&&ka(b,null,C,"unmounted"),it&&(b.el=null)},E)},we=b=>{const{type:C,el:E,anchor:Y,transition:M}=b;if(C===_e){ue(E,Y);return}if(C===Ys){A(b);return}const K=()=>{r(E),M&&!M.persisted&&M.afterLeave&&M.afterLeave()};if(b.shapeFlag&1&&M&&!M.persisted){const{leave:oe,delayLeave:se}=M,me=()=>oe(E,K);se?se(b.el,K,me):me()}else K()},ue=(b,C)=>{let E;for(;b!==C;)E=p(b),r(b),b=E;r(C)},Ce=(b,C,E)=>{const{bum:Y,scope:M,job:K,subTree:oe,um:se,m:me,a:fe}=b;ed(me),ed(fe),Y&&io(Y),M.stop(),K&&(K.flags|=8,re(oe,b,C,E)),se&&St(se,C),St(()=>{b.isUnmounted=!0},C)},pe=(b,C,E,Y=!1,M=!1,K=0)=>{for(let oe=K;oe{if(b.shapeFlag&6)return Z(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const C=p(b.anchor||b.el),E=C&&C[Hp];return E?p(E):C};let ve=!1;const X=(b,C,E)=>{let Y;b==null?C._vnode&&(re(C._vnode,null,null,!0),Y=C._vnode.component):g(C._vnode||null,b,C,null,null,null,E),C._vnode=b,ve||(ve=!0,jc(Y),Vp(),ve=!1)},de={p:g,um:re,m:le,r:we,mt:W,mc:H,pc:ce,pbc:I,n:Z,o:e};return{render:X,hydrate:void 0,createApp:Cg(X)}}function Gs({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 $a({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Lg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Fu(e,t,n=!1){const a=e.children,r=t.children;if(Te(a)&&Te(r))for(let l=0;l>1,e[n[s]]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 hv(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:hv(t)}function ed(e){if(e)for(let t=0;te.__isSuspense;function Ug(e,t){t&&t.pendingBranch?Te(e)?t.effects.push(...e):t.effects.push(e):Jy(e)}const _e=Symbol.for("v-fgt"),ls=Symbol.for("v-txt"),tn=Symbol.for("v-cmt"),Ys=Symbol.for("v-stc"),al=[];let Ft=null;function h(e=!1){al.push(Ft=e?null:[])}function zg(){al.pop(),Ft=al[al.length-1]||null}let pl=1;function ko(e,t=!1){pl+=e,e<0&&Ft&&t&&(Ft.hasOnce=!0)}function gv(e){return e.dynamicChildren=pl>0?Ft||lr:null,zg(),pl>0&&Ft&&Ft.push(e),e}function $(e,t,n,a,r,l){return gv(O(e,t,n,a,r,l,!0))}function j(e,t,n,a,r){return gv(z(e,t,n,a,r,!0))}function vl(e){return e?e.__v_isVNode===!0:!1}function er(e,t){return e.type===t.type&&e.key===t.key}const bv=({key:e})=>e??null,uo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?rt(e)||ot(e)||Be(e)?{i:vt,r:e,k:t,f:!!n}:e:null);function O(e,t=null,n=null,a=0,r=null,l=e===_e?0:1,o=!1,s=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&bv(t),ref:t&&uo(t),scopeId:jp,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:vt};return s?(Bu(i,n),l&128&&e.normalize(i)):n&&(i.shapeFlag|=rt(n)?8:16),pl>0&&!o&&Ft&&(i.patchFlag>0||l&6)&&i.patchFlag!==32&&Ft.push(i),i}const z=Hg;function Hg(e,t=null,n=null,a=0,r=null,l=!1){if((!e||e===Qp)&&(e=tn),vl(e)){const s=fa(e,t,!0);return n&&Bu(s,n),pl>0&&!l&&Ft&&(s.shapeFlag&6?Ft[Ft.indexOf(e)]=s:Ft.push(s)),s.patchFlag=-2,s}if(eb(e)&&(e=e.__vccOpts),t){t=Ge(t);let{class:s,style:i}=t;s&&!rt(s)&&(t.class=xe(s)),Ze(i)&&(Xo(i)&&!Te(i)&&(i=ut({},i)),t.style=Fn(i))}const o=rt(e)?1:yv(e)?128:eg(e)?64:Ze(e)?4:Be(e)?2:0;return O(e,t,n,a,r,o,l,!0)}function Ge(e){return e?Xo(e)||uv(e)?ut({},e):e:null}function fa(e,t,n=!1,a=!1){const{props:r,ref:l,patchFlag:o,children:s,transition:i}=e,c=t?Ve(r||{},t):r,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&bv(c),ref:t&&t.ref?n&&l?Te(l)?l.concat(uo(t)):[l,uo(t)]:uo(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&fa(e.ssContent),ssFallback:e.ssFallback&&fa(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&a&&fl(d,i.clone(d)),d}function $e(e=" ",t=0){return z(ls,null,e,t)}function ae(e="",t=!1){return t?(h(),j(tn,null,e)):z(tn,null,e)}function pn(e){return e==null||typeof e=="boolean"?z(tn):Te(e)?z(_e,null,e.slice()):vl(e)?Pn(e):z(ls,null,String(e))}function Pn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:fa(e)}function Bu(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(Te(t))n=16;else if(typeof t=="object")if(a&65){const r=t.default;r&&(r._c&&(r._d=!1),Bu(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!uv(t)?t._ctx=vt:r===3&&vt&&(vt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Be(t)?(t={default:t,_ctx:vt},n=32):(t=String(t),a&64?(n=16,t=[$e(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ve(...e){const t={};for(let n=0;ngt||vt;let $o,Gi;{const e=Go(),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)}};$o=t("__VUE_INSTANCE_SETTERS__",n=>gt=n),Gi=t("__VUE_SSR_SETTERS__",n=>hl=n)}const Dl=e=>{const t=gt;return $o(e),e.scope.on(),()=>{e.scope.off(),$o(t)}},td=()=>{gt&>.scope.off(),$o(null)};function _v(e){return e.vnode.shapeFlag&4}let hl=!1;function Yg(e,t=!1,n=!1){t&&Gi(t);const{props:a,children:r}=e.vnode,l=_v(e);Tg(e,a,l,t),Fg(e,r,n||t);const o=l?Jg(e,t):void 0;return t&&Gi(!1),o}function Jg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,gg);const{setup:a}=n;if(a){Vn();const r=e.setupContext=a.length>1?Qg(e):null,l=Dl(e),o=Al(a,e,0,[e.props,r]),s=ip(o);if(Ln(),l(),(s||e.sp)&&!ir(e)&&Wp(e),s){if(o.then(td,td),t)return o.then(i=>{nd(e,i)}).catch(i=>{ts(i,e,0)});e.asyncDep=o}else nd(e,o)}else xv(e)}function nd(e,t,n){Be(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ze(t)&&(e.setupState=Ip(t)),xv(e)}function xv(e,t,n){const a=e.type;e.render||(e.render=a.render||bn);{const r=Dl(e);Vn();try{bg(e)}finally{Ln(),r()}}}const Zg={get(e,t){return yt(e,"get",""),e[t]}};function Qg(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Zg),slots:e.slots,emit:e.emit,expose:t}}function os(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ip(yo(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in nl)return nl[n](e)},has(t,n){return n in t||n in nl}})):e.proxy}function Xg(e,t=!0){return Be(e)?e.displayName||e.name:e.name||t&&e.__name}function eb(e){return Be(e)&&"__vccOpts"in e}const w=(e,t)=>Hy(e,t,hl);function Kt(e,t,n){try{ko(-1);const a=arguments.length;return a===2?Ze(t)&&!Te(t)?vl(t)?z(e,null,[t]):z(e,t):z(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&vl(n)&&(n=[n]),z(e,t,n))}finally{ko(1)}}const tb="3.5.35";let Yi;const ad=typeof window<"u"&&window.trustedTypes;if(ad)try{Yi=ad.createPolicy("vue",{createHTML:e=>e})}catch{}const wv=Yi?e=>Yi.createHTML(e):e=>e,nb="http://www.w3.org/2000/svg",ab="http://www.w3.org/1998/Math/MathML",An=typeof document<"u"?document:null,rd=An&&An.createElement("template"),rb={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"?An.createElementNS(nb,e):t==="mathml"?An.createElementNS(ab,e):n?An.createElement(e,{is:n}):An.createElement(e);return e==="select"&&a&&a.multiple!=null&&r.setAttribute("multiple",a.multiple),r},createText:e=>An.createTextNode(e),createComment:e=>An.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>An.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{rd.innerHTML=wv(a==="svg"?`${e}`:a==="mathml"?`${e}`:e);const s=rd.content;if(a==="svg"||a==="mathml"){const i=s.firstChild;for(;i.firstChild;)s.appendChild(i.firstChild);s.removeChild(i)}t.insertBefore(s,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Qn="transition",Br="animation",mr=Symbol("_vtc"),kv={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},lb=ut({},og,kv),Ca=(e,t=[])=>{Te(e)?e.forEach(n=>n(...t)):e&&e(...t)},ld=e=>e?Te(e)?e.some(t=>t.length>1):e.length>1:!1;function ob(e){const t={};for(const D in e)D in kv||(t[D]=e[D]);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:s=`${n}-enter-to`,appearFromClass:i=l,appearActiveClass:c=o,appearToClass:d=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,m=sb(r),g=m&&m[0],_=m&&m[1],{onBeforeEnter:y,onEnter:x,onEnterCancelled:S,onLeave:A,onLeaveCancelled:V,onBeforeAppear:J=y,onAppear:U=x,onAppearCancelled:H=S}=t,k=(D,N,W,B)=>{D._enterCancelled=B,na(D,N?d:s),na(D,N?c:o),W&&W()},I=(D,N)=>{D._isLeaving=!1,na(D,f),na(D,v),na(D,p),N&&N()},G=D=>(N,W)=>{const B=D?U:x,Q=()=>k(N,D,W);Ca(B,[N,Q]),od(()=>{na(N,D?i:l),un(N,D?d:s),ld(B)||sd(N,a,g,Q)})};return ut(t,{onBeforeEnter(D){Ca(y,[D]),un(D,l),un(D,o)},onBeforeAppear(D){Ca(J,[D]),un(D,i),un(D,c)},onEnter:G(!1),onAppear:G(!0),onLeave(D,N){D._isLeaving=!0;const W=()=>I(D,N);un(D,f),D._enterCancelled?(un(D,p),Ji(D)):(Ji(D),un(D,p)),od(()=>{D._isLeaving&&(na(D,f),un(D,v),ld(A)||sd(D,a,_,W))}),Ca(A,[D,W])},onEnterCancelled(D){k(D,!1,void 0,!0),Ca(S,[D])},onAppearCancelled(D){k(D,!0,void 0,!0),Ca(H,[D])},onLeaveCancelled(D){I(D),Ca(V,[D])}})}function sb(e){if(e==null)return null;if(Ze(e))return[Js(e.enter),Js(e.leave)];{const t=Js(e);return[t,t]}}function Js(e){return cy(e)}function un(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[mr]||(e[mr]=new Set)).add(t)}function na(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[mr];n&&(n.delete(t),n.size||(e[mr]=void 0))}function od(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ib=0;function sd(e,t,n,a){const r=e._endId=++ib,l=()=>{r===e._endId&&a()};if(n!=null)return setTimeout(l,n);const{type:o,timeout:s,propCount:i}=$v(e,t);if(!o)return a();const c=o+"end";let d=0;const f=()=>{e.removeEventListener(c,p),l()},p=v=>{v.target===e&&++d>=i&&f()};setTimeout(()=>{d(n[m]||"").split(", "),r=a(`${Qn}Delay`),l=a(`${Qn}Duration`),o=id(r,l),s=a(`${Br}Delay`),i=a(`${Br}Duration`),c=id(s,i);let d=null,f=0,p=0;t===Qn?o>0&&(d=Qn,f=o,p=l.length):t===Br?c>0&&(d=Br,f=c,p=i.length):(f=Math.max(o,c),d=f>0?o>c?Qn:Br:null,p=d?d===Qn?l.length:i.length:0);const v=d===Qn&&/\b(?:transform|all)(?:,|$)/.test(a(`${Qn}Property`).toString());return{type:d,timeout:f,propCount:p,hasTransform:v}}function id(e,t){for(;e.lengthud(n)+ud(e[a])))}function ud(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ji(e){return(e?e.ownerDocument:document).body.offsetHeight}function ub(e,t,n){const a=e[mr];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Co=Symbol("_vod"),Cv=Symbol("_vsh"),Zi={name:"show",beforeMount(e,{value:t},{transition:n}){e[Co]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Nr(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),Nr(e,!0),a.enter(e)):a.leave(e,()=>{Nr(e,!1)}):Nr(e,t))},beforeUnmount(e,{value:t}){Nr(e,t)}};function Nr(e,t){e.style.display=t?e[Co]:"none",e[Cv]=!t}const cb=Symbol(""),db=/(?:^|;)\s*display\s*:/;function fb(e,t,n){const a=e.style,r=rt(n);let l=!1;if(n&&!r){if(t)if(rt(t))for(const o of t.split(";")){const s=o.slice(0,o.indexOf(":")).trim();n[s]==null&&Gr(a,s,"")}else for(const o in t)n[o]==null&&Gr(a,o,"");for(const o in n){o==="display"&&(l=!0);const s=n[o];s!=null?vb(e,o,!rt(t)&&t?t[o]:void 0,s)||Gr(a,o,s):Gr(a,o,"")}}else if(r){if(t!==n){const o=a[cb];o&&(n+=";"+o),a.cssText=n,l=db.test(n)}}else t&&e.removeAttribute("style");Co in e&&(e[Co]=l?a.display:"",e[Cv]&&(a.display="none"))}const cd=/\s*!important$/;function Gr(e,t,n){if(Te(n))n.forEach(a=>Gr(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=pb(e,t);cd.test(n)?e.setProperty(ba(a),n.replace(cd,""),"important"):e[a]=n}}const dd=["Webkit","Moz","ms"],Zs={};function pb(e,t){const n=Zs[t];if(n)return n;let a=ht(t);if(a!=="filter"&&a in e)return Zs[t]=a;a=Wo(a);for(let r=0;rQs||(gb.then(()=>Qs=0),Qs=Date.now());function _b(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;const r=n.value;if(Te(r)){const l=a.stopImmediatePropagation;a.stopImmediatePropagation=()=>{l.call(a),a._stopped=!0};const o=r.slice(),s=[a];for(let i=0;ie.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xb=(e,t,n,a,r,l)=>{const o=r==="svg";t==="class"?ub(e,a,o):t==="style"?fb(e,n,a):Uo(t)?zo(t)||mb(e,t,n,a,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wb(e,t,a,o))?(vd(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pd(e,t,a,o,l,t!=="value")):e._isVueCE&&(kb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!rt(a)))?vd(e,ht(t),a,l,t):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),pd(e,t,a,o))};function wb(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&yd(t)&&Be(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 yd(t)&&rt(n)?!1:t in e}function kb(e,t){const n=e._def.props;if(!n)return!1;const a=ht(t);return Array.isArray(n)?n.some(r=>ht(r)===a):Object.keys(n).some(r=>ht(r)===a)}const Sv=new WeakMap,Ev=new WeakMap,So=Symbol("_moveCb"),gd=Symbol("_enterCb"),$b=e=>(delete e.props.mode,e),Cb=$b({name:"TransitionGroup",props:ut({},lb,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=$n(),a=lg();let r,l;return Ru(()=>{if(!r.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!Pb(r[0].el,n.vnode.el,o)){r=[];return}r.forEach(Eb),r.forEach(Ab);const s=r.filter(Db);Ji(n.vnode.el),s.forEach(i=>{const c=i.el,d=c.style;un(c,o),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[So]=p=>{p&&p.target!==c||(!p||p.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[So]=null,na(c,o))};c.addEventListener("transitionend",f)}),r=[]}),()=>{const o=Je(e),s=ob(o);let i=o.tag||_e;if(r=[],l)for(let c=0;c{s.split(/\s+/).forEach(i=>i&&a.classList.remove(i))}),n.split(/\s+/).forEach(s=>s&&a.classList.add(s)),a.style.display="none";const l=t.nodeType===1?t:t.parentNode;l.appendChild(a);const{hasTransform:o}=$v(a);return l.removeChild(a),o}const bd=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Te(t)?n=>io(t,n):t};function Ob(e){e.target.composing=!0}function _d(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Xs=Symbol("_assign");function xd(e,t,n){return t&&(e=e.trim()),n&&(e=Eu(e)),e}const Eo={created(e,{modifiers:{lazy:t,trim:n,number:a}},r){e[Xs]=bd(r);const l=a||r.props&&r.props.type==="number";tr(e,t?"change":"input",o=>{o.target.composing||e[Xs](xd(e.value,n,l))}),(n||l)&&tr(e,"change",()=>{e.value=xd(e.value,n,l)}),t||(tr(e,"compositionstart",Ob),tr(e,"compositionend",_d),tr(e,"change",_d))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:a,trim:r,number:l}},o){if(e[Xs]=bd(o),e.composing)return;const s=(l||e.type==="number")&&!/^0\d/.test(e.value)?Eu(e.value):e.value,i=t??"";if(s===i)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(a&&t===n||r&&e.value.trim()===i)||(e.value=i)}},Mb=["ctrl","shift","alt","meta"],Tb={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)=>Mb.some(n=>e[`${n}Key`]&&!t.includes(n))},pt=(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=ba(r.key);if(t.some(o=>o===l||Rb[o]===l))return e(r)}))},qb=ut({patchProp:xb},rb);let wd;function Ib(){return wd||(wd=Ng(qb))}const Fb=((...e)=>{const t=Ib().createApp(...e),{mount:n}=t;return t.mount=a=>{const r=Nb(a);if(!r)return;const l=t._component;!Be(l)&&!l.render&&!l.template&&(l.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Bb(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Bb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Nb(e){return rt(e)?document.querySelector(e):e}const nr=typeof document<"u";function Dv(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Vb(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Dv(e.default)}const Qe=Object.assign;function ei(e,t){const n={};for(const a in t){const r=t[a];n[a]=nn(r)?r.map(e):e(r)}return n}const rl=()=>{},nn=Array.isArray;function kd(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}const Pv=Symbol("");function gr(e,t){return Qe(new Error,{type:e,[Pv]:!0},t)}function En(e,t){return e instanceof Error&&Pv in e&&(t==null||!!(e.type&t))}const Nu=Symbol(""),$d=Symbol(""),ss=Symbol(""),Vu=Symbol(""),Qi=Symbol("");function Ar(){return st(ss)}function rn(e){return st(Vu)}const Ov=/#/g,Lb=/&/g,jb=/\//g,Ub=/=/g,zb=/\?/g,Mv=/\+/g,Hb=/%5B/g,Kb=/%5D/g,Tv=/%5E/g,Wb=/%60/g,Rv=/%7B/g,Gb=/%7C/g,qv=/%7D/g,Yb=/%20/g;function Lu(e){return e==null?"":encodeURI(""+e).replace(Gb,"|").replace(Hb,"[").replace(Kb,"]")}function Jb(e){return Lu(e).replace(Rv,"{").replace(qv,"}").replace(Tv,"^")}function Xi(e){return Lu(e).replace(Mv,"%2B").replace(Yb,"+").replace(Ov,"%23").replace(Lb,"%26").replace(Wb,"`").replace(Rv,"{").replace(qv,"}").replace(Tv,"^")}function Zb(e){return Xi(e).replace(Ub,"%3D")}function Qb(e){return Lu(e).replace(Ov,"%23").replace(zb,"%3F")}function Xb(e){return Qb(e).replace(jb,"%2F")}function Ao(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const e1=/\/$/,t1=e=>e.replace(e1,"");function ti(e,t,n="/"){let a,r={},l="",o="";const s=t.indexOf("#");let i=t.indexOf("?");return i=s>=0&&i>s?-1:i,i>=0&&(a=t.slice(0,i),l=t.slice(i,s>0?s:t.length),r=e(l.slice(1))),s>=0&&(a=a||t.slice(0,s),o=t.slice(s,t.length)),a=l1(a??t,n),{fullPath:a+l+o,path:a,query:r,hash:Ao(o)}}function n1(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Cd(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function a1(e,t,n){const a=t.matched.length-1,r=n.matched.length-1;return a>-1&&a===r&&br(t.matched[a],n.matched[r])&&Iv(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function br(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Iv(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!r1(e[n],t[n]))return!1;return!0}function r1(e,t){return nn(e)?Sd(e,t):nn(t)?Sd(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Sd(e,t){return nn(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function l1(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,s;for(o=0;o1&&l--;else break;return n.slice(0,l).join("/")+"/"+a.slice(o).join("/")}const Xn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function o1(e){if(!e)if(nr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),t1(e)}const s1=/^[^#]+#/;function i1(e,t){return e.replace(s1,"#")+t}function u1(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 is=()=>({left:window.scrollX,top:window.scrollY});function c1(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=u1(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 Ed(e,t){return(history.state?history.state.position-t:-1)+e}const eu=new Map;function d1(e,t){eu.set(e,t)}function f1(e){const t=eu.get(e);return eu.delete(e),t}function p1(e){return typeof e=="string"||e&&typeof e=="object"}function Fv(e){return typeof e=="string"||typeof e=="symbol"}function v1(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;ar&&Xi(r)):[a&&Xi(a)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function h1(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=nn(a)?a.map(r=>r==null?null:""+r):a==null?a:""+a)}return t}function Vr(){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 Bv(e,t,n){const a=e.value;if(!a)return;let r=a;const l=()=>{r[t].delete(n)};Er(l),Jp(l),Yp(()=>{const o=e.value;o&&(r=o),r[t].add(n)}),r[t].add(n)}function m1(e){Bv(st(Nu,{}),"leaveGuards",e)}function y1(e){Bv(st(Nu,{}),"updateGuards",e)}function la(e,t,n,a,r,l=o=>o()){const o=a&&(a.enterCallbacks[r]=a.enterCallbacks[r]||[]);return()=>new Promise((s,i)=>{const c=p=>{p===!1?i(gr(4,{from:n,to:t})):p instanceof Error?i(p):p1(p)?i(gr(2,{from:t,to:p})):(o&&a.enterCallbacks[r]===o&&typeof p=="function"&&o.push(p),s())},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(p=>i(p))})}function ni(e,t,n,a,r=l=>l()){const l=[];for(const o of e)for(const s in o.components){let i=o.components[s];if(!(t!=="beforeRouteEnter"&&!o.instances[s]))if(Dv(i)){const c=(i.__vccOpts||i)[t];c&&l.push(la(c,n,a,o,s,r))}else{let c=i();l.push(()=>c.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${s}" at "${o.path}"`);const f=Vb(d)?d.default:d;o.mods[s]=d,o.components[s]=f;const p=(f.__vccOpts||f)[t];return p&&la(p,n,a,o,s,r)()}))}}return l}function g1(e,t){const n=[],a=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let o=0;obr(c,s))?a.push(s):n.push(s));const i=e.matched[o];i&&(t.matched.find(c=>br(c,i))||r.push(i))}return[n,a,r]}let b1=()=>location.protocol+"//"+location.host;function Nv(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,s=r.slice(o);return s[0]!=="/"&&(s="/"+s),Cd(s,"")}return Cd(n,e)+a+r}function _1(e,t,n,a){let r=[],l=[],o=null;const s=({state:p})=>{const v=Nv(e,location),m=n.value,g=t.value;let _=0;if(p){if(n.value=v,t.value=p,o&&o===m){o=null;return}_=g?p.position-g.position:0}else a(v);r.forEach(y=>{y(n.value,m,{delta:_,type:"pop",direction:_?_>0?"forward":"back":""})})};function i(){o=n.value}function c(p){r.push(p);const v=()=>{const m=r.indexOf(p);m>-1&&r.splice(m,1)};return l.push(v),v}function d(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(Qe({},p.state,{scroll:is()}),"")}}function f(){for(const p of l)p();l=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:i,listen:c,destroy:f}}function Dd(e,t,n,a=!1,r=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:r?is():null}}function x1(e){const{history:t,location:n}=window,a={value:Nv(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(i,c,d){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+i:b1()+e+i;try{t[d?"replaceState":"pushState"](c,"",p),r.value=c}catch(v){console.error(v),n[d?"replace":"assign"](p)}}function o(i,c){l(i,Qe({},t.state,Dd(r.value.back,i,r.value.forward,!0),c,{position:r.value.position}),!0),a.value=i}function s(i,c){const d=Qe({},r.value,t.state,{forward:i,scroll:is()});l(d.current,d,!0),l(i,Qe({},Dd(a.value,i,null),{position:d.position+1},c),!1),a.value=i}return{location:a,state:r,push:s,replace:o}}function w1(e){e=o1(e);const t=x1(e),n=_1(e,t.state,t.location,t.replace);function a(l,o=!0){o||n.pauseListeners(),history.go(l)}const r=Qe({location:"",base:e,go:a,createHref:i1.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 k1={type:0,value:""},$1=/[a-zA-Z0-9_]/;function C1(e){if(!e)return[[]];if(e==="/")return[[k1]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${n})/"${c}": ${v}`)}let n=0,a=n;const r=[];let l;function o(){l&&r.push(l),l=[]}let s=0,i,c="",d="";function f(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:d,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=i}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function Vv(e,t){let n=0;const a=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const P1={strict:!1,end:!0,sensitive:!1};function O1(e,t,n){const a=A1(C1(e.path),n),r=Qe(a,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function M1(e,t){const n=[],a=new Map;t=kd(P1,t);function r(f){return a.get(f)}function l(f,p,v){const m=!v,g=Td(f);g.aliasOf=v&&v.record;const _=kd(t,f),y=[g];if("alias"in f){const A=typeof f.alias=="string"?[f.alias]:f.alias;for(const V of A)y.push(Td(Qe({},g,{components:v?v.record.components:g.components,path:V,aliasOf:v?v.record:g})))}let x,S;for(const A of y){const{path:V}=A;if(p&&V[0]!=="/"){const J=p.record.path,U=J[J.length-1]==="/"?"":"/";A.path=p.record.path+(V&&U+V)}if(x=O1(A,p,_),v?v.alias.push(x):(S=S||x,S!==x&&S.alias.push(x),m&&f.name&&!Rd(x)&&o(f.name)),Lv(x)&&i(x),g.children){const J=g.children;for(let U=0;U{o(S)}:rl}function o(f){if(Fv(f)){const p=a.get(f);p&&(a.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&a.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function s(){return n}function i(f){const p=q1(f,n);n.splice(p,0,f),f.record.name&&!Rd(f)&&a.set(f.record.name,f)}function c(f,p){let v,m={},g,_;if("name"in f&&f.name){if(v=a.get(f.name),!v)throw gr(1,{location:f});_=v.record.name,m=Qe(Md(p.params,v.keys.filter(S=>!S.optional).concat(v.parent?v.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),f.params&&Md(f.params,v.keys.map(S=>S.name))),g=v.stringify(m)}else if(f.path!=null)g=f.path,v=n.find(S=>S.re.test(g)),v&&(m=v.parse(g),_=v.record.name,v.keys.forEach(S=>{S.optional&&!m[S.name]&&delete m[S.name]}));else{if(v=p.name?a.get(p.name):n.find(S=>S.re.test(p.path)),!v)throw gr(1,{location:f,currentLocation:p});_=v.record.name,m=Qe({},p.params,f.params),g=v.stringify(m)}const y=[];let x=v;for(;x;)y.unshift(x.record),x=x.parent;return{name:_,path:g,params:m,matched:y,meta:R1(y)}}e.forEach(f=>l(f));function d(){n.length=0,a.clear()}return{addRoute:l,resolve:c,removeRoute:o,clearRoutes:d,getRoutes:s,getRecordMatcher:r}}function Md(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function Td(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:T1(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 T1(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 Rd(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function R1(e){return e.reduce((t,n)=>Qe(t,n.meta),{})}function q1(e,t){let n=0,a=t.length;for(;n!==a;){const l=n+a>>1;Vv(e,t[l])<0?a=l:n=l+1}const r=I1(e);return r&&(a=t.lastIndexOf(r,a-1)),a}function I1(e){let t=e;for(;t=t.parent;)if(Lv(t)&&Vv(e,t)===0)return t}function Lv({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qd(e){const t=st(ss),n=st(Vu),a=w(()=>{const i=u(e.to);return t.resolve(i)}),r=w(()=>{const{matched:i}=a.value,{length:c}=i,d=i[c-1],f=n.matched;if(!d||!f.length)return-1;const p=f.findIndex(br.bind(null,d));if(p>-1)return p;const v=Id(i[c-2]);return c>1&&Id(d)===v&&f[f.length-1].path!==v?f.findIndex(br.bind(null,i[c-2])):p}),l=w(()=>r.value>-1&&N1(n.params,a.value.params)),o=w(()=>r.value>-1&&r.value===n.matched.length-1&&Iv(n.params,a.value.params));function s(i={}){if(B1(i)){const c=t[u(e.replace)?"replace":"push"](u(e.to)).catch(rl);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:a,href:w(()=>a.value.href),isActive:l,isExactActive:o,navigate:s}}function F1(e){return e.length===1?e[0]:e}const _n=ee({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:qd,setup(e,{slots:t}){const n=Zt(qd(e)),{options:a}=st(ss),r=w(()=>({[Fd(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Fd(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&F1(t.default(n));return e.custom?l:Kt("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},l)}}});function B1(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 N1(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(!nn(r)||r.length!==a.length||a.some((l,o)=>l.valueOf()!==r[o].valueOf()))return!1}return!0}function Id(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Fd=(e,t,n)=>e??t??n,V1=ee({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=st(Qi),r=w(()=>e.route||a.value),l=st($d,0),o=w(()=>{let c=u(l);const{matched:d}=r.value;let f;for(;(f=d[c])&&!f.components;)c++;return c}),s=w(()=>r.value.matched[o.value]);Dt($d,w(()=>o.value+1)),Dt(Nu,s),Dt(Qi,r);const i=T();return Fe(()=>[i.value,s.value,e.name],([c,d,f],[p,v,m])=>{d&&(d.instances[f]=c,v&&v!==d&&c&&c===p&&(d.leaveGuards.size||(d.leaveGuards=v.leaveGuards),d.updateGuards.size||(d.updateGuards=v.updateGuards))),c&&d&&(!v||!br(d,v)||!p)&&(d.enterCallbacks[f]||[]).forEach(g=>g(c))},{flush:"post"}),()=>{const c=r.value,d=e.name,f=s.value,p=f&&f.components[d];if(!p)return Bd(n.default,{Component:p,route:c});const v=f.props[d],m=v?v===!0?c.params:typeof v=="function"?v(c):v:null,_=Kt(p,Qe({},m,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(f.instances[d]=null)},ref:i}));return Bd(n.default,{Component:_,route:c})||_}}});function Bd(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const tu=V1;function L1(e){const t=M1(e.routes,e),n=e.parseQuery||v1,a=e.stringifyQuery||Ad,r=e.history,l=Vr(),o=Vr(),s=Vr(),i=es(Xn);let c=Xn;nr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=ei.bind(null,Z=>""+Z),f=ei.bind(null,Xb),p=ei.bind(null,Ao);function v(Z,ve){let X,de;return Fv(Z)?(X=t.getRecordMatcher(Z),de=ve):de=Z,t.addRoute(de,X)}function m(Z){const ve=t.getRecordMatcher(Z);ve&&t.removeRoute(ve)}function g(){return t.getRoutes().map(Z=>Z.record)}function _(Z){return!!t.getRecordMatcher(Z)}function y(Z,ve){if(ve=Qe({},ve||i.value),typeof Z=="string"){const E=ti(n,Z,ve.path),Y=t.resolve({path:E.path},ve),M=r.createHref(E.fullPath);return Qe(E,Y,{params:p(Y.params),redirectedFrom:void 0,href:M})}let X;if(Z.path!=null)X=Qe({},Z,{path:ti(n,Z.path,ve.path).path});else{const E=Qe({},Z.params);for(const Y in E)E[Y]==null&&delete E[Y];X=Qe({},Z,{params:f(E)}),ve.params=f(ve.params)}const de=t.resolve(X,ve),ge=Z.hash||"";de.params=d(p(de.params));const b=n1(a,Qe({},Z,{hash:Jb(ge),path:de.path})),C=r.createHref(b);return Qe({fullPath:b,hash:ge,query:a===Ad?h1(Z.query):Z.query||{}},de,{redirectedFrom:void 0,href:C})}function x(Z){return typeof Z=="string"?ti(n,Z,i.value.path):Qe({},Z)}function S(Z,ve){if(c!==Z)return gr(8,{from:ve,to:Z})}function A(Z){return U(Z)}function V(Z){return A(Qe(x(Z),{replace:!0}))}function J(Z,ve){const X=Z.matched[Z.matched.length-1];if(X&&X.redirect){const{redirect:de}=X;let ge=typeof de=="function"?de(Z,ve):de;return typeof ge=="string"&&(ge=ge.includes("?")||ge.includes("#")?ge=x(ge):{path:ge},ge.params={}),Qe({query:Z.query,hash:Z.hash,params:ge.path!=null?{}:Z.params},ge)}}function U(Z,ve){const X=c=y(Z),de=i.value,ge=Z.state,b=Z.force,C=Z.replace===!0,E=J(X,de);if(E)return U(Qe(x(E),{state:typeof E=="object"?Qe({},ge,E.state):ge,force:b,replace:C}),ve||X);const Y=X;Y.redirectedFrom=ve;let M;return!b&&a1(a,de,X)&&(M=gr(16,{to:Y,from:de}),le(de,de,!0,!1)),(M?Promise.resolve(M):I(Y,de)).catch(K=>En(K)?En(K,2)?K:ie(K):ce(K,Y,de)).then(K=>{if(K){if(En(K,2))return U(Qe({replace:C},x(K.to),{state:typeof K.to=="object"?Qe({},ge,K.to.state):ge,force:b}),ve||Y)}else K=D(Y,de,!0,C,ge);return G(Y,de,K),K})}function H(Z,ve){const X=S(Z,ve);return X?Promise.reject(X):Promise.resolve()}function k(Z){const ve=ue.values().next().value;return ve&&typeof ve.runWithContext=="function"?ve.runWithContext(Z):Z()}function I(Z,ve){let X;const[de,ge,b]=g1(Z,ve);X=ni(de.reverse(),"beforeRouteLeave",Z,ve);for(const E of de)E.leaveGuards.forEach(Y=>{X.push(la(Y,Z,ve))});const C=H.bind(null,Z,ve);return X.push(C),pe(X).then(()=>{X=[];for(const E of l.list())X.push(la(E,Z,ve));return X.push(C),pe(X)}).then(()=>{X=ni(ge,"beforeRouteUpdate",Z,ve);for(const E of ge)E.updateGuards.forEach(Y=>{X.push(la(Y,Z,ve))});return X.push(C),pe(X)}).then(()=>{X=[];for(const E of b)if(E.beforeEnter)if(nn(E.beforeEnter))for(const Y of E.beforeEnter)X.push(la(Y,Z,ve));else X.push(la(E.beforeEnter,Z,ve));return X.push(C),pe(X)}).then(()=>(Z.matched.forEach(E=>E.enterCallbacks={}),X=ni(b,"beforeRouteEnter",Z,ve,k),X.push(C),pe(X))).then(()=>{X=[];for(const E of o.list())X.push(la(E,Z,ve));return X.push(C),pe(X)}).catch(E=>En(E,8)?E:Promise.reject(E))}function G(Z,ve,X){s.list().forEach(de=>k(()=>de(Z,ve,X)))}function D(Z,ve,X,de,ge){const b=S(Z,ve);if(b)return b;const C=ve===Xn,E=nr?history.state:{};X&&(de||C?r.replace(Z.fullPath,Qe({scroll:C&&E&&E.scroll},ge)):r.push(Z.fullPath,ge)),i.value=Z,le(Z,ve,X,C),ie()}let N;function W(){N||(N=r.listen((Z,ve,X)=>{if(!Ce.listening)return;const de=y(Z),ge=J(de,Ce.currentRoute.value);if(ge){U(Qe(ge,{replace:!0,force:!0}),de).catch(rl);return}c=de;const b=i.value;nr&&d1(Ed(b.fullPath,X.delta),is()),I(de,b).catch(C=>En(C,12)?C:En(C,2)?(U(Qe(x(C.to),{force:!0}),de).then(E=>{En(E,20)&&!X.delta&&X.type==="pop"&&r.go(-1,!1)}).catch(rl),Promise.reject()):(X.delta&&r.go(-X.delta,!1),ce(C,de,b))).then(C=>{C=C||D(de,b,!1),C&&(X.delta&&!En(C,8)?r.go(-X.delta,!1):X.type==="pop"&&En(C,20)&&r.go(-1,!1)),G(de,b,C)}).catch(rl)}))}let B=Vr(),Q=Vr(),ne;function ce(Z,ve,X){ie(Z);const de=Q.list();return de.length?de.forEach(ge=>ge(Z,ve,X)):console.error(Z),Promise.reject(Z)}function te(){return ne&&i.value!==Xn?Promise.resolve():new Promise((Z,ve)=>{B.add([Z,ve])})}function ie(Z){return ne||(ne=!Z,W(),B.list().forEach(([ve,X])=>Z?X(Z):ve()),B.reset()),Z}function le(Z,ve,X,de){const{scrollBehavior:ge}=e;if(!nr||!ge)return Promise.resolve();const b=!X&&f1(Ed(Z.fullPath,0))||(de||!X)&&history.state&&history.state.scroll||null;return ze().then(()=>ge(Z,ve,b)).then(C=>C&&c1(C)).catch(C=>ce(C,Z,ve))}const re=Z=>r.go(Z);let we;const ue=new Set,Ce={currentRoute:i,listening:!0,addRoute:v,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:y,options:e,push:A,replace:V,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:l.add,beforeResolve:o.add,afterEach:s.add,onError:Q.add,isReady:te,install(Z){Z.component("RouterLink",_n),Z.component("RouterView",tu),Z.config.globalProperties.$router=Ce,Object.defineProperty(Z.config.globalProperties,"$route",{enumerable:!0,get:()=>u(i)}),nr&&!we&&i.value===Xn&&(we=!0,A(r.location).catch(de=>{}));const ve={};for(const de in Xn)Object.defineProperty(ve,de,{get:()=>i.value[de],enumerable:!0});Z.provide(ss,Ce),Z.provide(Vu,Rp(ve)),Z.provide(Qi,i);const X=Z.unmount;ue.add(Z),Z.unmount=function(){ue.delete(Z),ue.size<1&&(c=Xn,N&&N(),N=null,i.value=Xn,we=!1,ne=!1),X()}}};function pe(Z){return Z.reduce((ve,X)=>ve.then(()=>k(X)),Promise.resolve())}return Ce}const Nd=e=>e==="";const j1=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();const Vd=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const U1=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,a)=>a?a.toUpperCase():n.toLowerCase());const z1=e=>{const t=U1(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Wa={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 H1=Symbol("lucide-icons");function K1(){return st(H1,{})}const W1=({name:e,iconNode:t,absoluteStrokeWidth:n,"absolute-stroke-width":a,strokeWidth:r,"stroke-width":l,size:o,color:s,...i},{slots:c})=>{const{size:d,color:f,strokeWidth:p=2,absoluteStrokeWidth:v=!1,class:m=""}=K1(),g=w(()=>{const _=Nd(n)||Nd(a)||n===!0||a===!0||v===!0,y=r||l||p||Wa["stroke-width"];return _?Number(y)*24/Number(o??d??Wa.width):y});return Kt("svg",{...Wa,...i,width:o??d??Wa.width,height:o??d??Wa.height,stroke:s??f??Wa.stroke,"stroke-width":g.value,class:j1("lucide",m,...e?[`lucide-${Vd(z1(e))}-icon`,`lucide-${Vd(e)}`]:["lucide-icon"])},[...t.map(_=>Kt(..._)),...c.default?[c.default()]:[]])};const Pe=(e,t)=>(n,{slots:a,attrs:r})=>Kt(W1,{...r,...n,iconNode:t,name:e},a.default?{default:a.default}:void 0);const G1=[["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"}]],Y1=Pe("archive",G1);const J1=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],jv=Pe("arrow-down",J1);const Z1=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],us=Pe("arrow-left",Z1);const Q1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],X1=Pe("arrow-right",Q1);const e0=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],Uv=Pe("arrow-up-right",e0);const t0=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],zv=Pe("arrow-up",t0);const n0=[["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"}]],a0=Pe("calendar",n0);const r0=[["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"}]],l0=Pe("cassette-tape",r0);const o0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],_r=Pe("check",o0);const s0=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Pl=Pe("chevron-down",s0);const i0=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],cs=Pe("chevron-left",i0);const u0=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Ol=Pe("chevron-right",u0);const c0=[["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"}]],Bt=Pe("circle-alert",c0);const d0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],f0=Pe("circle",d0);const p0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],Ld=Pe("clock",p0);const v0=[["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"}]],h0=Pe("disc-3",v0);const m0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],y0=Pe("disc",m0);const g0=[["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"}]],jd=Pe("download",g0);const b0=[["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"}]],_0=Pe("eye-off",b0);const x0=[["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"}]],w0=Pe("eye",x0);const k0=[["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"}]],Yr=Pe("file-text",k0);const $0=[["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"}]],Ud=Pe("grip-vertical",$0);const C0=[["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"}]],zd=Pe("image-off",C0);const S0=[["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"}]],E0=Pe("image",S0);const A0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],D0=Pe("info",A0);const P0=[["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"}]],O0=Pe("library",P0);const M0=[["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"}]],T0=Pe("list",M0);const R0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],co=Pe("loader-circle",R0);const q0=[["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"}]],Hv=Pe("log-out",q0);const I0=[["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"}]],F0=Pe("mic-vocal",I0);const B0=[["path",{d:"M5 12h14",key:"1ays0h"}]],Kv=Pe("minus",B0);const N0=[["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"}]],V0=Pe("palette",N0);const L0=[["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"}]],Wv=Pe("panel-left-close",L0);const j0=[["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"}]],Gv=Pe("panel-left-open",j0);const U0=[["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"}]],fo=Pe("pencil",U0);const z0=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ju=Pe("plus",z0);const H0=[["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"}]],Yv=Pe("puzzle",H0);const K0=[["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"}]],ai=Pe("rotate-ccw",K0);const W0=[["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"}]],Jv=Pe("search-x",W0);const G0=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ds=Pe("search",G0);const Y0=[["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"}]],Zv=Pe("settings",Y0);const J0=[["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"}]],Z0=Pe("shield-check",J0);const Q0=[["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"}]],X0=Pe("sliders-horizontal",Q0);const e_=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],t_=Pe("square",e_);const n_=[["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"}]],Uu=Pe("sun",n_);const a_=[["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"}]],r_=Pe("tags",a_);const l_=[["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"}]],Ml=Pe("trash-2",l_);const o_=[["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"}]],ri=Pe("upload",o_);const s_=[["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"}]],Qv=Pe("user-minus",s_);const i_=[["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"}]],Xv=Pe("user-plus",i_);const u_=[["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"}]],c_=Pe("user",u_);const d_=[["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"}]],f_=Pe("users-round",d_);const p_=[["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"}]],v_=Pe("users",p_);const h_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wt=Pe("x",h_),m_=/\{[^{}]+\}/g,y_=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function g_(){return Math.random().toString(36).slice(2,11)}function b_(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:a=globalThis.fetch,querySerializer:r,bodySerializer:l,pathSerializer:o,headers:s,requestInitExt:i=void 0,...c}={...e};i=y_()?i:void 0,t=Wd(t);const d=[];async function f(p,v){const{baseUrl:m,fetch:g=a,Request:_=n,headers:y,params:x={},parseAs:S="json",querySerializer:A,bodySerializer:V=l??x_,pathSerializer:J,body:U,middleware:H=[],...k}=v||{};let I=t;m&&(I=Wd(m)??t);let G=typeof r=="function"?r:Hd(r);A&&(G=typeof A=="function"?A:Hd({...typeof r=="object"?r:{},...A}));const D=J||o||__,N=U===void 0?void 0:V(U,Kd(s,y,x.header)),W=Kd(N===void 0||N instanceof FormData?{}:{"Content-Type":"application/json"},s,y,x.header),B=[...d,...H],Q={redirect:"follow",...c,...k,body:N,headers:W};let ne,ce,te=new _(w_(p,{baseUrl:I,params:x,querySerializer:G,pathSerializer:D}),Q),ie;for(const we in k)we in te||(te[we]=k[we]);if(B.length){ne=g_(),ce=Object.freeze({baseUrl:I,fetch:g,parseAs:S,querySerializer:G,bodySerializer:V,pathSerializer:D});for(const we of B)if(we&&typeof we=="object"&&typeof we.onRequest=="function"){const ue=await we.onRequest({request:te,schemaPath:p,params:x,options:ce,id:ne});if(ue)if(ue instanceof _)te=ue;else if(ue instanceof Response){ie=ue;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!ie){try{ie=await g(te,i)}catch(we){let ue=we;if(B.length)for(let Ce=B.length-1;Ce>=0;Ce--){const pe=B[Ce];if(pe&&typeof pe=="object"&&typeof pe.onError=="function"){const Z=await pe.onError({request:te,error:ue,schemaPath:p,params:x,options:ce,id:ne});if(Z){if(Z instanceof Response){ue=void 0,ie=Z;break}if(Z instanceof Error){ue=Z;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(ue)throw ue}if(B.length)for(let we=B.length-1;we>=0;we--){const ue=B[we];if(ue&&typeof ue=="object"&&typeof ue.onResponse=="function"){const Ce=await ue.onResponse({request:te,response:ie,schemaPath:p,params:x,options:ce,id:ne});if(Ce){if(!(Ce instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");ie=Ce}}}}const le=ie.headers.get("Content-Length");if(ie.status===204||te.method==="HEAD"||le==="0"&&!ie.headers.get("Transfer-Encoding")?.includes("chunked"))return ie.ok?{data:void 0,response:ie}:{error:void 0,response:ie};if(ie.ok)return{data:await(async()=>{if(S==="stream")return ie.body;if(S==="json"&&!le){const ue=await ie.text();return ue?JSON.parse(ue):void 0}return await ie[S]()})(),response:ie};let re=await ie.text();try{re=JSON.parse(re)}catch{}return{error:re,response:ie}}return{request(p,v,m){return f(v,{...m,method:p.toUpperCase()})},GET(p,v){return f(p,{...v,method:"GET"})},PUT(p,v){return f(p,{...v,method:"PUT"})},POST(p,v){return f(p,{...v,method:"POST"})},DELETE(p,v){return f(p,{...v,method:"DELETE"})},OPTIONS(p,v){return f(p,{...v,method:"OPTIONS"})},HEAD(p,v){return f(p,{...v,method:"HEAD"})},PATCH(p,v){return f(p,{...v,method:"PATCH"})},TRACE(p,v){return f(p,{...v,method:"TRACE"})},use(...p){for(const v of p)if(v){if(typeof v!="object"||!("onRequest"in v||"onResponse"in v||"onError"in v))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");d.push(v)}},eject(...p){for(const v of p){const m=d.indexOf(v);m!==-1&&d.splice(m,1)}}}}function fs(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 eh(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 s in t)a.push(s,n.allowReserved===!0?t[s]:encodeURIComponent(t[s]));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 s=n.style==="deepObject"?`${e}[${o}]`:o;a.push(fs(s,t[o],n))}const l=a.join(r);return n.style==="label"||n.style==="matrix"?`${r}${l}`:l}function th(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(s=>encodeURIComponent(s))).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(fs(e,l,n));return n.style==="label"||n.style==="matrix"?`${a}${r.join(a)}`:r.join(a)}function Hd(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(th(r,l,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}));continue}if(typeof l=="object"){a.push(eh(r,l,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}));continue}a.push(fs(r,l,e))}}return a.join("&")}}function __(e,t){let n=e;for(const a of e.match(m_)??[]){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 s=t[r];if(Array.isArray(s)){n=n.replace(a,th(r,s,{style:o,explode:l}));continue}if(typeof s=="object"){n=n.replace(a,eh(r,s,{style:o,explode:l}));continue}if(o==="matrix"){n=n.replace(a,`;${fs(r,s)}`);continue}n=n.replace(a,o==="label"?`.${encodeURIComponent(s)}`:encodeURIComponent(s))}return n}function x_(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 w_(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 Kd(...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 Wd(e){return e.endsWith("/")?e.substring(0,e.length-1):e}const Gd="/backend",k_="__SUMMER_ADMIN_BASE__";function $_(e=document){const t=e.querySelector('meta[name="summer-admin-base"]')?.content.trim()??"";if(t===""||t===k_||!t.startsWith("/"))return Gd;const n=t.replace(/\/+$/,"");return n===""?Gd:n}const Yd=$_(),ps={base:Yd,api:`${Yd}/api/v1`},nh="XMLHttpRequest";let Do=null,ah=null,Lr=null;const li=new WeakMap;function C_(e){Do=e}function S_(){Do?.()}function E_(e){ah=e}function A_(e){return new URL(e.url,"http://local").pathname}function Jd(e){const t=A_(e);return t.endsWith("/auth/login")||t.endsWith("/auth/refresh")}function zu(){return Lr||(Lr=(async()=>{try{const{data:e,response:t}=await Me.POST("/auth/refresh");if(!t.ok||!e)return!1;const n=e.data.expires_in;return ah?.(typeof n=="number"?n:null),!0}catch{return!1}finally{Lr=null}})(),Lr)}const D_={onRequest({request:e}){return e.headers.set("X-Requested-With",nh),Jd(e)||li.set(e,e.clone()),e},async onResponse({request:e,response:t}){if(t.status!==401||Jd(e))return t;const n=li.get(e);if(li.delete(e),!n||!await zu())return Do?.(),t;const a=await globalThis.fetch(n);return a.status===401&&Do?.(),a}},Me=b_({baseUrl:ps.api,credentials:"same-origin",fetch:e=>globalThis.fetch(e)});Me.use(D_);const Hu=T({}),Ku=T(typeof document>"u"?"pl":document.documentElement.lang||"pl"),ml=dt(Ku);function P_(e,t){Hu.value=e,t&&(Ku.value=t,typeof document<"u"&&(document.documentElement.lang=t))}async function O_(){const{data:e,response:t}=await Me.GET("/lang");!t.ok||!e||P_(e.data,e.meta.locale)}function Zd(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 nu(e,t={}){if(e==="")return e;const n=[];for(const[r,l]of Object.entries(t)){const o=r.replace(/^:/,"");if(o==="")continue;const s=String(l);n.push([`:${Zd(o)}`,Zd(s)]),n.push([`:${o.toUpperCase()}`,s.toUpperCase()]),n.push([`:${o}`,s])}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 Qd=new Map;function M_(e,t=Ku.value){let n=Qd.get(t);if(n===void 0){try{n=new Intl.PluralRules(t)}catch{n=null}Qd.set(t,n)}return n?n.select(e):"other"}function Ie(e,t,n={}){if(!e)return"";if(t===void 0)return nu(e.other??"",n);const a=e[M_(t)]??e.other??"";return nu(a,{count:t,...n})}function P(e,t={}){const n=Hu.value[e]?.other;return n===void 0?e:nu(n,t)}function xr(e,t,n={}){const a=Hu.value[e];return a?Ie(a,t,n):e}const Xd={archive:Y1,"arrow-down":jv,"arrow-left":us,"arrow-right":X1,"arrow-up":zv,"arrow-up-right":Uv,"cassette-tape":l0,check:_r,"chevron-down":Pl,"chevron-left":cs,"chevron-right":Ol,circle:f0,"circle-alert":Bt,disc:y0,"disc-3":h0,image:E0,library:O0,list:T0,"log-out":Hv,"mic-vocal":F0,minus:Kv,palette:V0,"panel-left-close":Wv,"panel-left-open":Gv,plus:ju,puzzle:Yv,search:ds,"search-x":Jv,settings:Zv,"shield-check":Z0,sun:Uu,tags:r_,"trash-2":Ml,user:c_,"user-minus":Qv,"user-plus":Xv,users:v_,"users-round":f_,x:Wt},T_={"icon-archive":"archive","icon-circle":"circle","icon-list-ul":"list","icon-tags":"tags","icon-user":"user","icon-search":"search","icon-cog":"settings","icon-users":"users"},ef=t_;function oi(e,t){return Object.hasOwn(e,t)?e[t]:void 0}function vs(e){if(!e)return ef;const t=e.trim();return oi(Xd,t)??oi(Xd,oi(T_,t)??"")??ef}const R_=/^[A-Za-z0-9_-]+$/;function hs(e){const t=e.split(".");if(t.length!==3||!t.every(l=>R_.test(l)))return null;const[n,a,r]=t;return{vendor:n,plugin:a,controller:r}}function Un(e){const t=hs(e);return t?`/${t.vendor}/${t.plugin}/${t.controller}`:null}function ms(e){return`${e.vendor}.${e.plugin}.${e.controller}`}function Wu(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 tf(e){const t=hs(e);return t?`${t.vendor}.${t.plugin}`:null}const Po=T([]);async function rh(){const{data:e,response:t}=await Me.GET("/navigation");return Po.value=t.ok&&e?e.data:[],Po.value}function q_(e){Po.value=e}const Oo=w(()=>Po.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 Gu(e){for(const t of e.sideMenu){const n=Un(t.controller);if(n)return n}return Un(e.controller)}function ys(e,t){const n=`${e}.${t}`;return Oo.value.find(a=>tf(a.controller)===n||a.sideMenu.some(r=>tf(r.controller)===n))??null}function I_(){for(const e of Oo.value){const t=Gu(e);if(t)return t}return null}const wr=T([]),F_=w(()=>wr.value.length>0);async function lh(){const{data:e,response:t}=await Me.GET("/settings");return wr.value=t.ok&&e?e.data:[],wr.value}function B_(e){wr.value=e}function au(e){return wr.value.find(t=>t.code===e)??null}const nf=w(()=>{const e=wr.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}),oh="summer-admin.sidebar",N_="(max-width: 1099px)",gs=T(!1),ll=T(!1),V_=w(()=>ll.value||gs.value);function sh(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function L_(){try{return sh()?.getItem(oh)==="true"}catch{return!1}}function ih(e){gs.value=e;try{sh()?.setItem(oh,e?"true":"false")}catch{}}function j_(){if(gs.value=L_(),typeof window>"u"||typeof window.matchMedia!="function")return ll.value=!1,()=>{};const e=window.matchMedia(N_);ll.value=e.matches;const t=n=>{ll.value=n.matches};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}function uh(){return{collapsed:V_,narrow:dt(ll),manual:dt(gs),setCollapsed:ih,watchViewport:j_}}const U_=["id","aria-label"],z_={class:"px-2.5 pt-1 pb-2 text-[14px] font-bold","aria-hidden":"true"},H_=ee({__name:"SectionFlyout",props:{entry:{},id:{}},emits:["escape","leave","navigate"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=rn(),o=T(null),s=w(()=>Wu(l.path)),i=w(()=>a.entry.sideMenu.flatMap(v=>{const m=Un(v.controller);return m?[{item:v,to:m,icon:vs(v.icon),current:s.value===v.controller}]:[]}));function c(){return[...o.value?.querySelectorAll('[role="menuitem"]')??[]]}async function d(){await ze(),c()[0]?.focus()}function f(v){return!!v&&!!o.value?.contains(v)}function p(v){const m=c(),g=m.indexOf(document.activeElement);switch(v.key){case"ArrowDown":v.preventDefault(),m[(g+1)%m.length]?.focus();break;case"ArrowUp":v.preventDefault(),m[(g-1+m.length)%m.length]?.focus();break;case"Home":v.preventDefault(),m[0]?.focus();break;case"End":v.preventDefault(),m[m.length-1]?.focus();break;case"Escape":v.preventDefault(),r("escape");break;case"Tab":r("leave");break}}return t({focusFirst:d,contains:f}),(v,m)=>(h(),$("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:p},[O("span",z_,R(e.entry.label),1),(h(!0),$(_e,null,Ne(i.value,g=>(h(),j(u(_n),{key:g.item.code,to:g.to,role:"menuitem",tabindex:"-1","aria-current":g.current?"page":void 0,class:xe([g.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:m[0]||(m[0]=_=>r("navigate"))},{default:F(()=>[(h(),j(en(g.icon),{size:18,"aria-hidden":"true"})),O("span",null,R(g.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],40,U_))}}),K_=["aria-label"],W_={class:"mb-3.5 flex size-10 items-center justify-center rounded-inner bg-accent-soft",title:"SummerCMS"},G_=["aria-label","title"],Y_=200,J_=ee({__name:"PluginRail",setup(e){const t=rn(),{collapsed:n,narrow:a,setCollapsed:r}=uh(),l=w(()=>ys(String(t.params.vendor??""),String(t.params.plugin??""))),o=w(()=>t.path==="/settings"||t.path.startsWith("/settings/")),s=w(()=>Oo.value.map(H=>({entry:H,to:Gu(H)??"/",icon:vs(H.icon),current:l.value?.code===H.code}))),i=T(null),c=T(null),d=w(()=>Oo.value.find(H=>H.code===i.value)??null),f=new Map;let p=null,v=!1;function m(H){return`section-flyout-${H}`}function g(H,k){const I=k?.$el;I instanceof HTMLElement?f.set(H,I):f.delete(H)}function _(){p!==null&&(clearTimeout(p),p=null)}function y(){_(),i.value=null}function x(){_(),p=setTimeout(()=>{p=null;const H=document.activeElement,k=i.value;k!==null&&(f.get(k)===H||c.value?.contains(H))||(i.value=null)},Y_)}function S(H){n.value&&(_(),i.value=H)}function A(H){v||S(H)}async function V(H,k){n.value&&(H.key==="Enter"||H.key==="ArrowDown"?(H.preventDefault(),S(k),await ze(),await c.value?.focusFirst()):H.key==="Escape"&&i.value!==null&&(H.preventDefault(),y()))}function J(){const H=i.value;y(),H!==null&&(v=!0,f.get(H)?.focus(),v=!1)}function U(){r(!1),ze(()=>document.querySelector("[data-sidebar-collapse]")?.focus())}return Fe(n,H=>{H||y()}),qt(_),(H,k)=>(h(),$("nav",{"aria-label":u(P)("backend::lang.nav.plugins"),class:"flex w-rail shrink-0 flex-col items-center gap-1.5 border-r border-side-border bg-side pt-3.5 pb-3"},[O("span",W_,[z(u(Uu),{size:22,class:"text-accent","aria-hidden":"true"})]),(h(!0),$(_e,null,Ne(s.value,I=>(h(),j(u(_n),{key:I.entry.code,ref_for:!0,ref:G=>g(I.entry.code,G),to:I.to,"data-rail-item":I.entry.code,"aria-current":I.current?"page":void 0,"aria-haspopup":u(n)?"menu":void 0,"aria-expanded":u(n)?i.value===I.entry.code?"true":"false":void 0,"aria-controls":u(n)&&i.value===I.entry.code?m(I.entry.code):void 0,class:xe([I.current?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[68px] flex-col items-center gap-1 rounded-inner px-1.5 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"]),onMouseenter:G=>S(I.entry.code),onMouseleave:x,onFocus:G=>A(I.entry.code),onBlur:x,onKeydown:G=>V(G,I.entry.code)},{default:F(()=>[(h(),j(en(I.icon),{size:20,"aria-hidden":"true"})),O("span",null,R(I.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?(h(),j(H_,{key:0,id:m(d.value.code),ref_key:"flyout",ref:c,entry:d.value,onMouseenter:_,onMouseleave:x,onFocusin:_,onFocusout:x,onEscape:J,onLeave:x,onNavigate:y},null,8,["id","entry"])):ae("",!0),k[0]||(k[0]=O("span",{class:"flex-1","aria-hidden":"true"},null,-1)),u(n)&&!u(a)?(h(),$("button",{key:1,type:"button","data-sidebar-expand":"","aria-label":u(P)("backend::lang.nav.expand"),title:u(P)("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:U},[z(u(Gv),{size:20,"aria-hidden":"true"})],8,G_)):ae("",!0),u(F_)?(h(),j(u(_n),{key:2,to:"/settings","data-rail-settings":"","aria-current":o.value?"page":void 0,class:xe([o.value?"bg-accent-soft font-bold text-accent":"text-side-text hover:bg-side-hover hover:text-white","flex w-[68px] flex-col items-center gap-1 rounded-inner px-1.5 py-2 text-center text-[11px] leading-[1.2] tracking-[-0.01em] no-underline transition-colors duration-150 ease-out"])},{default:F(()=>[z(u(Zv),{size:20,"aria-hidden":"true"}),O("span",null,R(u(P)("backend::lang.nav.settings")),1)]),_:1},8,["aria-current","class"])):ae("",!0)],8,K_))}}),Z_=["aria-label"],Q_={class:"mb-3.5 flex h-10 items-center justify-between gap-2 pl-2"},X_={class:"truncate text-[16px] font-bold"},ex=["aria-label","title"],tx=ee({__name:"SectionPanel",props:{entry:{}},setup(e){const t=e,n=rn(),a=w(()=>Wu(n.path)),r=w(()=>t.entry.sideMenu.flatMap(o=>{const s=Un(o.controller);return s?[{item:o,to:s,icon:vs(o.icon),current:a.value===o.controller}]:[]}));function l(){ih(!0),ze(()=>document.querySelector("[data-sidebar-expand]")?.focus())}return(o,s)=>(h(),$("aside",{"aria-label":u(P)("backend::lang.nav.sections"),class:"flex w-panel shrink-0 flex-col gap-0.5 border-r border-border bg-surface px-3 py-3.5"},[O("div",Q_,[O("span",X_,R(e.entry.label),1),O("button",{type:"button","data-sidebar-collapse":"","aria-label":u(P)("backend::lang.nav.collapse"),title:u(P)("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},[z(u(Wv),{size:18,"aria-hidden":"true"})],8,ex)]),(h(!0),$(_e,null,Ne(r.value,i=>(h(),j(u(_n),{key:i.item.code,to:i.to,"aria-current":i.current?"page":void 0,class:xe([i.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:F(()=>[(h(),j(en(i.icon),{size:18,"aria-hidden":"true"})),O("span",null,R(i.item.label),1)]),_:2},1032,["to","aria-current","class"]))),128))],8,Z_))}}),Yu=T(""),af=dt(Yu);function ch(e){Yu.value=e}function dh(){Yu.value=""}const nx=["aria-label"],ax={class:"flex min-w-0 items-center gap-2"},rx=["aria-current"],lx=ee({__name:"Breadcrumbs",setup(e){const t=rn(),n=w(()=>{if(t.name==="settings"||t.name==="settings-form"){const s=[{label:P("backend::lang.nav.settings"),to:"/settings"}],i=t.name==="settings-form"?au(String(t.params.code??"")):null;return i&&s.push({label:i.label}),s}const a=ys(String(t.params.vendor??""),String(t.params.plugin??""));if(!a)return[];const r=[{label:a.label,to:Gu(a)??void 0}],l=Wu(t.path),o=a.sideMenu.find(s=>s.controller===l)??null;return o&&r.push({label:o.label,to:Un(o.controller)??void 0}),(t.name==="record"||t.name==="create")&&af.value!==""&&r.push({label:af.value}),r});return(a,r)=>(h(),$("nav",{"aria-label":u(P)("backend::lang.nav.breadcrumbs"),class:"min-w-0"},[O("ol",ax,[(h(!0),$(_e,null,Ne(n.value,(l,o)=>(h(),$("li",{key:o,"data-crumb":"",class:"flex min-w-0 items-center gap-2"},[o>0?(h(),j(u(Ol),{key:0,size:14,class:"shrink-0 text-muted","aria-hidden":"true"})):ae("",!0),o===n.value.length-1||!l.to?(h(),$("span",{key:1,"aria-current":o===n.value.length-1?"page":void 0,class:xe([o===n.value.length-1?"font-semibold text-text":"text-muted","truncate"])},R(l.label),11,rx)):(h(),j(u(_n),{key:2,to:l.to,class:"truncate text-muted no-underline transition-colors duration-150 ease-out hover:text-text"},{default:F(()=>[$e(R(l.label),1)]),_:2},1032,["to"]))]))),128))])],8,nx))}});function Yl(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 si(e,t,n,a){t=Number(t),n=Number(n);const r=(e-(Number.isNaN(t)?0:t))%a;let l=Yl(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(Yl(n/a,a))*a):ln&&(l=t+Math.floor(Yl((n-t)/a,a))*a),l=Yl(l,a),l}function xt(e,t){const n=typeof e=="string"&&!t?`${e}Context`:t,a=Symbol(n);return[o=>{const s=st(a,o);if(s||s===null)return s;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=>(Dt(a,o),o)]}function ft(){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 fh(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 hn(e){return e==null}function ox(e,t){var n;const a=es();return Xt(()=>{a.value=e()},{...t,flush:(n=t?.flush)!==null&&n!==void 0?n:"sync"}),dt(a)}function ph(e,t){return Du()?(yp(e,t),!0):!1}function sx(e){let t=!1,n;const a=mp(!0);return((...r)=>(t||(n=a.run(()=>e(...r)),t=!0),n))}const Wn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ix=e=>typeof e<"u",ux=Object.prototype.toString,cx=e=>ux.call(e)==="[object Object]",rf=dx();function dx(){var e,t,n;return Wn&&!!(!((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 ii(e){return Array.isArray(e)?e:[e]}function fx(e){return $n()}function vh(e){if(!Wn)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=mp(!0),n=a.run(()=>e(...l))),ph(r),n))}function px(e){return Zt(ot(e)?new Proxy({},{get(t,n,a){return u(Reflect.get(e.value,n,a))},set(t,n,a){return ot(e.value[n])&&!ot(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 vx(e){return px(w(e))}function hx(e,...t){const n=t.flat(),a=n[0];return vx(()=>Object.fromEntries(typeof a=="function"?Object.entries(Lt(e)).filter(([r,l])=>!a(Tt(l),r)):Object.entries(Lt(e)).filter(r=>!n.includes(r[0]))))}function mx(e,t=1e4){return Vy((n,a)=>{let r=Tt(e),l;const o=()=>setTimeout(()=>{r=Tt(e),a()},Tt(t));return ph(()=>{clearTimeout(l)}),{get(){return n(),r},set(s){r=s,a(),clearTimeout(l),l=o()}}})}function yx(e,t){fx()&&qt(e,t)}function gx(e,t,n){return Fe(e,t,{...n,immediate:!0})}const Ju=Wn?window:void 0;function Dr(e){var t;const n=Tt(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Mo(...e){const t=(a,r,l,o)=>(a.addEventListener(r,l,o),()=>a.removeEventListener(r,l,o)),n=w(()=>{const a=ii(Tt(e[0])).filter(r=>r!=null);return a.every(r=>typeof r!="string")?a:void 0});return gx(()=>{var a,r;return[(a=(r=n.value)===null||r===void 0?void 0:r.map(l=>Dr(l)))!==null&&a!==void 0?a:[Ju].filter(l=>l!=null),ii(Tt(n.value?e[1]:e[0])),ii(u(n.value?e[2]:e[1])),Tt(n.value?e[3]:e[2])]},([a,r,l,o],s,i)=>{if(!a?.length||!r?.length||!l?.length)return;const c=cx(o)?{...o}:o,d=a.flatMap(f=>r.flatMap(p=>l.map(v=>t(f,p,v,c))));i(()=>{d.forEach(f=>f())})},{flush:"post"})}function bx(){const e=es(!1),t=$n();return t&&_t(()=>{e.value=!0},t),e}function _x(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function xx(...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=Ju,eventName:l="keydown",passive:o=!1,dedupe:s=!1}=a,i=_x(t);return Mo(r,l,d=>{d.repeat&&Tt(s)||i(d)&&n(d)},o)}function wx(e){return JSON.parse(JSON.stringify(e))}function bt(e,t,n,a={}){var r,l;const{clone:o=!1,passive:s=!1,eventName:i,deep:c=!1,defaultValue:d,shouldEmit:f}=a,p=$n(),v=n||p?.emit||(p==null||(r=p.$emit)===null||r===void 0?void 0:r.bind(p))||(p==null||(l=p.proxy)===null||l===void 0||(l=l.$emit)===null||l===void 0?void 0:l.bind(p?.proxy));let m=i;t||(t="modelValue"),m=m||`update:${t.toString()}`;const g=x=>o?typeof o=="function"?o(x):wx(x):x,_=()=>ix(e[t])?g(e[t]):d,y=x=>{f?f(x)&&v(m,x):v(m,x)};if(s){const x=T(_());let S=!1;return Fe(()=>e[t],A=>{S||(S=!0,x.value=g(A),ze(()=>S=!1))}),Fe(x,A=>{!S&&(A!==e[t]||c)&&y(A)},{deep:c}),x}else return w({get(){return _()},set(x){y(x)}})}function Zu(e){return e?e.flatMap(t=>t.type===_e?Zu(t.children):[t]):[]}const kx=["INPUT","TEXTAREA"];function lf(e,t,n,a={}){if(!t||a.enableIgnoredElement&&kx.includes(t.nodeName))return null;const{arrowKeyOptions:r="both",attributeName:l="[data-reka-collection-item]",itemsArray:o=[],loop:s=!0,dir:i="ltr",preventScroll:c=!0,focus:d=!1}=a,[f,p,v,m,g,_]=[e.key==="ArrowRight",e.key==="ArrowLeft",e.key==="ArrowUp",e.key==="ArrowDown",e.key==="Home",e.key==="End"],y=v||m,x=f||p;if(!g&&!_&&(!y&&!x||r==="vertical"&&x||r==="horizontal"&&y))return null;const S=n?Array.from(n.querySelectorAll(l)):o;if(!S.length)return null;c&&e.preventDefault();let A=null;return x||y?A=hh(S,t,{goForward:y?m:i==="ltr"?f:p,loop:s}):g?A=S.at(0)||null:_&&(A=S.at(-1)||null),d&&A?.focus(),A}function hh(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,s=e[o];return s?s.hasAttribute("disabled")&&s.getAttribute("disabled")!=="false"?hh(e,s,n,a):s:null}const[bs]=xt("ConfigProvider");function ui(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 ru(e,t,n=".",a){if(!ui(t))return ru(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]]:ui(o)&&ui(r[l])?r[l]=ru(o,r[l],(n?`${n}.`:"")+l.toString(),a):r[l]=o))}return r}function $x(e){return(...t)=>t.reduce((n,a)=>ru(n,a,"",e),{})}const mh=$x(),Cx=vh(()=>{const e=T(new Map),t=T(),n=w(()=>{for(const o of e.value.values())if(o)return!0;return!1}),a=bs({scrollBody:T(!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??"",rf&&r?.(),t.value=void 0};return Fe(n,(o,s)=>{if(!Wn)return;if(!o){s&&l();return}t.value===void 0&&(t.value=document.body.style.overflow);const i=window.innerWidth-document.documentElement.clientWidth,c={padding:i,margin:0},d=a.scrollBody?.value?typeof a.scrollBody.value=="object"?mh({padding:a.scrollBody.value.padding===!0?i:a.scrollBody.value.padding,margin:a.scrollBody.value.margin===!0?i:a.scrollBody.value.margin},c):c:{padding:0,margin:0};i>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",`${i}px`),document.body.style.overflow="hidden"),rf&&(r=Mo(document,"touchmove",f=>Sx(f),{passive:!1})),ze(()=>{n.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function Qu(e){const t=Math.random().toString(36).substring(2,7),n=Cx();n.value.set(t,e??!1);const a=w({get:()=>n.value.get(t)??!1,set:r=>n.value.set(t,r)});return yx(()=>{n.value.delete(t)}),a}function yh(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 cr(e,t){return e-t*Math.floor(e/t)}const gh=1721426;function Ma(e,t,n,a){t=Tl(e,t);let r=t-1,l=-2;return n<=2?l=0:sa(t)&&(l=-1),gh-1+365*r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400)+Math.floor((367*n-362)/12+l+a)}function sa(e){return e%4===0&&(e%100!==0||e%400===0)}function Tl(e,t){return e==="BC"?1-t:t}function _s(e){let t="AD";return e<=0&&(t="BC",e=1-e),[t,e]}const Ex={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 an{fromJulianDay(t){let n=t,a=n-gh,r=Math.floor(a/146097),l=cr(a,146097),o=Math.floor(l/36524),s=cr(l,36524),i=Math.floor(s/1461),c=cr(s,1461),d=Math.floor(c/365),f=r*400+o*100+i*4+d+(o!==4&&d!==4?1:0),[p,v]=_s(f),m=n-Ma(p,v,1,1),g=2;n0&&t===ln()&&!xh())return new Date(e).getTimezoneOffset()*-6e4;let{year:n,month:a,day:r,hour:l,minute:o,second:s}=kh(e,t);return wh(n,a,r,l,o,s,0)-Math.floor(e/1e3)*1e3}const df=new Map;function kh(e,t){let n=df.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"}),df.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 ff=864e5;function qx(e,t,n,a){return(n===a?[n]:[n,a]).filter(l=>Ix(e,t,l))}function Ix(e,t,n){let a=kh(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 Tn(e,t,n="compatible"){let a=xn(e);if(t==="UTC")return kr(a);if(t===ln()&&n==="compatible"&&!xh()){a=Mt(a,new an);let i=new Date,c=Tl(a.era,a.year);return i.setFullYear(c,a.month-1,a.day),i.setHours(a.hour,a.minute,a.second,a.millisecond),i.getTime()}let r=kr(a),l=ou(r-ff,t),o=ou(r+ff,t),s=qx(a,t,r-l,r-o);if(s.length===1)return s[0];if(s.length>1)switch(n){case"compatible":case"earlier":return s[0];case"later":return s[s.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 $h(e,t,n="compatible"){return new Date(Tn(e,t,n))}function Rn(e,t){let n=ou(e,t),a=new Date(e+n),r=a.getUTCFullYear(),l=a.getUTCMonth()+1,o=a.getUTCDate(),s=a.getUTCHours(),i=a.getUTCMinutes(),c=a.getUTCSeconds(),d=a.getUTCMilliseconds();return new zn(r<1?"BC":"AD",r<1?-r+1:r,l,o,t,n,s,i,c,d)}function Fx(e){return new tt(e.calendar,e.era,e.year,e.month,e.day)}function xn(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 va(e.calendar,e.era,e.year,e.month,e.day,n,a,r,l)}function Mt(e,t){if(ec(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,Ia(a),a}function tc(e,t,n){if(e instanceof zn)return e.timeZone===t?e:ws(e,t);let a=Tn(e,t,n);return Rn(a,t)}function Bx(e){let t=kr(e)-e.offset;return new Date(t)}function ws(e,t){let n=kr(e)-e.offset;return Mt(Rn(n,t),e.calendar)}const jr=36e5;function ks(e,t){let n=e.copy(),a="hour"in n?Ah(n,t):0;su(n,t.years||0),n.calendar.balanceYearMonth&&n.calendar.balanceYearMonth(n,e),n.month+=t.months||0,iu(n),Ch(n),n.day+=(t.weeks||0)*7,n.day+=t.days||0,n.day+=a,Nx(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 su(e,t){e.calendar.isInverseEra?.(e)&&(t=-t),e.year+=t}function iu(e){for(;e.month<1;)su(e,-1),e.month+=e.calendar.getMonthsInYear(e);let t=0;for(;e.month>(t=e.calendar.getMonthsInYear(e));)e.month-=t,su(e,1)}function Nx(e){for(;e.day<1;)e.month--,iu(e),e.day+=e.calendar.getDaysInMonth(e);for(;e.day>e.calendar.getDaysInMonth(e);)e.day-=e.calendar.getDaysInMonth(e),e.month++,iu(e)}function Ch(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 Ia(e){e.calendar.constrainDate&&e.calendar.constrainDate(e),e.year=Math.max(1,Math.min(e.calendar.getYearsInEra(e),e.year)),Ch(e)}function nc(e){let t={};for(let n in e)typeof e[n]=="number"&&(t[n]=-e[n]);return t}function Sh(e,t){return ks(e,nc(t))}function ac(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),Ia(n),n}function yl(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),Eh(n),n}function Vx(e){e.second+=Math.floor(e.millisecond/1e3),e.millisecond=Jl(e.millisecond,1e3),e.minute+=Math.floor(e.second/60),e.second=Jl(e.second,60),e.hour+=Math.floor(e.minute/60),e.minute=Jl(e.minute,60);let t=Math.floor(e.hour/24);return e.hour=Jl(e.hour,24),t}function Eh(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 Jl(e,t){let n=e%t;return n<0&&(n+=t),n}function Ah(e,t){return e.hour+=t.hours||0,e.minute+=t.minutes||0,e.second+=t.seconds||0,e.millisecond+=t.milliseconds||0,Vx(e)}function Dh(e,t){let n=e.copy();return Ah(n,t),n}function Lx(e,t){return Dh(e,nc(t))}function rc(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=qn(o,n,0,l.length-1,a?.round),r.era=l[o],Ia(r);break}case"year":r.calendar.isInverseEra?.(r)&&(n=-n),r.year=qn(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=qn(e.month,n,1,e.calendar.getMonthsInYear(e),a?.round);break;case"day":r.day=qn(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),Ia(r),r}function lc(e,t,n,a){let r=e.copy();switch(t){case"hour":{let l=e.hour,o=0,s=23;if(a?.hourCycle===12){let i=l>=12;o=i?12:0,s=i?23:11}r.hour=qn(l,n,o,s,a?.round);break}case"minute":r.minute=qn(e.minute,n,0,59,a?.round);break;case"second":r.second=qn(e.second,n,0,59,a?.round);break;case"millisecond":r.millisecond=qn(e.millisecond,n,0,999,a?.round);break;default:throw new Error("Unsupported field "+t)}return r}function qn(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 Ph(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=ks(xn(e),{years:t.years,months:t.months,weeks:t.weeks,days:t.days});n=Tn(r,e.timeZone)}else n=kr(e)-e.offset;n+=t.milliseconds||0,n+=(t.seconds||0)*1e3,n+=(t.minutes||0)*6e4,n+=(t.hours||0)*36e5;let a=Rn(n,e.timeZone);return Mt(a,e.calendar)}function jx(e,t){return Ph(e,nc(t))}function Ux(e,t,n,a){switch(t){case"hour":{let r=0,l=23;if(a?.hourCycle===12){let m=e.hour>=12;r=m?12:0,l=m?23:11}let o=xn(e),s=Mt(yl(o,{hour:r}),new an),i=[Tn(s,e.timeZone,"earlier"),Tn(s,e.timeZone,"later")].filter(m=>Rn(m,e.timeZone).day===s.day)[0],c=Mt(yl(o,{hour:l}),new an),d=[Tn(c,e.timeZone,"earlier"),Tn(c,e.timeZone,"later")].filter(m=>Rn(m,e.timeZone).day===c.day).pop(),f=kr(e)-e.offset,p=Math.floor(f/jr),v=f%jr;return f=qn(p,n,Math.floor(i/jr),Math.floor(d/jr),a?.round)*jr+v,Mt(Rn(f,e.timeZone),e.calendar)}case"minute":case"second":case"millisecond":return lc(e,t,n,a);case"era":case"year":case"month":case"day":{let r=rc(xn(e),t,n,a),l=Tn(r,e.timeZone);return Mt(Rn(l,e.timeZone),e.calendar)}default:throw new Error("Unsupported field "+t)}}function zx(e,t,n){let a=xn(e),r=yl(ac(a,t),t);if(r.compare(a)===0)return e;let l=Tn(r,e.timeZone,n);return Mt(Rn(l,e.timeZone),e.calendar)}const Hx=/^(\d{2})(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/,Kx=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/,Oh=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/;function Wx(e){let t=e.match(Hx);if(!t)throw new Error("Invalid ISO 8601 time string: "+e);return new mn(mt(t[1],0,23),t[2]?mt(t[2],0,59):0,t[3]?mt(t[3],0,59):0,t[4]?mt(t[4],0,1/0)*1e3:0)}function Mh(e){let t=e.match(Kx);if(!t)throw Oh.test(e)?new Error(`Invalid ISO 8601 date string: ${e}. Use parseAbsolute() instead.`):new Error("Invalid ISO 8601 date string: "+e);let n=new tt(mt(t[1],0,9999),mt(t[2],1,12),1);return n.day=mt(t[3],1,n.calendar.getDaysInMonth(n)),n}function pf(e,t){let n=e.match(Oh);if(!n)throw new Error("Invalid ISO 8601 date time string: "+e);let a=mt(n[1],-9999,9999),r=a<1?"BC":"AD",l=new zn(r,a<1?-a+1:a,mt(n[2],1,12),1,t,0,n[4]?mt(n[4],0,23):0,n[5]?mt(n[5],0,59):0,n[6]?mt(n[6],0,59):0,n[7]?mt(n[7],0,1/0)*1e3:0);return l.day=mt(n[3],0,l.calendar.getDaysInMonth(l)),n[8]&&(l.offset=mt(n[8],-23,23)*36e5+mt(n[9]??"0",0,59)*6e4),ws(l,t)}function mt(e,t,n){let a=Number(e);if(an)throw new RangeError(`Value out of range: ${t} <= ${a} <= ${n}`);return a}function Th(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 Rh(e){let t=Mt(e,new an),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 qh(e){return`${Rh(e)}T${Th(e)}`}function Gx(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 Yx(e){return`${qh(e)}${Gx(e.offset)}[${e.timeZone}]`}function oc(e){let t=typeof e[0]=="object"?e.shift():new an,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 tt{#e;constructor(...t){let[n,a,r,l,o]=oc(t);this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,Ia(this)}copy(){return this.era?new tt(this.calendar,this.era,this.year,this.month,this.day):new tt(this.calendar,this.year,this.month,this.day)}add(t){return ks(this,t)}subtract(t){return Sh(this,t)}set(t){return ac(this,t)}cycle(t,n,a){return rc(this,t,n,a)}toDate(t){return $h(this,t)}toString(){return Rh(this)}compare(t){return bh(this,t)}}class mn{#e;constructor(t=0,n=0,a=0,r=0){this.hour=t,this.minute=n,this.second=a,this.millisecond=r,Eh(this)}copy(){return new mn(this.hour,this.minute,this.second,this.millisecond)}add(t){return Dh(this,t)}subtract(t){return Lx(this,t)}set(t){return yl(this,t)}cycle(t,n,a){return lc(this,t,n,a)}toString(){return Th(this)}compare(t){return _h(this,t)}}class va{#e;constructor(...t){let[n,a,r,l,o]=oc(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,Ia(this)}copy(){return this.era?new va(this.calendar,this.era,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond):new va(this.calendar,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond)}add(t){return ks(this,t)}subtract(t){return Sh(this,t)}set(t){return ac(yl(this,t),t)}cycle(t,n,a){switch(t){case"era":case"year":case"month":case"day":return rc(this,t,n,a);default:return lc(this,t,n,a)}}toDate(t,n){return $h(this,t,n)}toString(){return qh(this)}compare(t){let n=bh(this,t);return n===0?_h(this,xn(t)):n}}class zn{#e;constructor(...t){let[n,a,r,l,o]=oc(t),s=t.shift(),i=t.shift();this.calendar=n,this.era=a,this.year=r,this.month=l,this.day=o,this.timeZone=s,this.offset=i,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,Ia(this)}copy(){return this.era?new zn(this.calendar,this.era,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond):new zn(this.calendar,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond)}add(t){return Ph(this,t)}subtract(t){return jx(this,t)}set(t,n){return zx(this,t,n)}cycle(t,n,a){return Ux(this,t,n,a)}toDate(){return Bx(this)}toString(){return Yx(this)}toAbsoluteString(){return this.toDate().toISOString()}compare(t){return this.toDate().getTime()-tc(t,this.timeZone).toDate().getTime()}}const fr=[[1868,9,8],[1912,7,30],[1926,12,25],[1989,1,8],[2019,5,1]],Jx=[[1912,7,29],[1926,12,24],[1989,1,7],[2019,4,30]],po=[1867,1911,1925,1988,2018],oa=["meiji","taisho","showa","heisei","reiwa"];function vf(e){const t=fr.findIndex(([n,a,r])=>e.year=0){let[,r,l]=fr[n];t.month=Math.max(r,t.month),t.month===r&&(t.day=Math.max(l,t.day))}}getEras(){return oa}getYearsInEra(t){let n=oa.indexOf(t.era),a=fr[n],r=fr[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 Xx extends an{fromJulianDay(t){let n=super.fromJulianDay(t),a=Tl(n.era,n.year),[r,l]=yf(a);return new tt(this,r,l,n.month,n.day)}toJulianDay(t){return super.toJulianDay(gf(t))}getEras(){return["before_minguo","minguo"]}balanceDate(t){let[n,a]=yf(Fh(t));t.era=n,t.year=a}isInverseEra(t){return t.era==="before_minguo"}getDaysInMonth(t){return super.getDaysInMonth(gf(t))}getYearsInEra(t){return t.era==="before_minguo"?9999:9999-To}constructor(...t){super(...t),this.identifier="roc"}}function gf(e){let[t,n]=_s(Fh(e));return new tt(t,n,e.month,e.day)}const bf=1948320,_f=[0,31,62,93,124,155,186,216,246,276,306,336];class ew{fromJulianDay(t){let n=t-bf,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),s=l-_f[o]+1;return new tt(this,a,o+1,s)}toJulianDay(t){let n=bf-1+365*(t.year-1)+Math.floor((8*t.year+21)/33);return n+=_f[t.month-1],n+=t.day,n}getMonthsInYear(){return 12}getDaysInMonth(t){return t.month<=6?31:t.month<=11||cr(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 pi=78,xf=80;class tw extends an{fromJulianDay(t){let n=super.fromJulianDay(t),a=n.year-pi,r=t-Ma(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&&sa(t.year+pi)||t.month>=2&&t.month<=6?31:30}getYearsInEra(){return 9919}getEras(){return["saka"]}balanceDate(){}constructor(...t){super(...t),this.identifier="indian"}}const Ro=1948440,wf=1948439,Ut=1300,Ga=1600,nw=460322;function qo(e,t,n,a){return a+Math.ceil(29.5*(n-1))+(t-1)*354+Math.floor((3+11*t)/30)+e-1}function Bh(e,t,n){let a=Math.floor((30*(n-t)+10646)/10631),r=Math.min(12,Math.ceil((n-(29+qo(t,a,1,1)))/29.5)+1),l=n-qo(t,a,r,1)+1;return new tt(e,a,r,l)}function kf(e){return(14+11*e)%30<11}class sc{fromJulianDay(t){return Bh(this,Ro,t)}toJulianDay(t){return qo(Ro,t.year,t.month,t.day)}getDaysInMonth(t){let n=29+t.month%2;return t.month===12&&kf(t.year)&&n++,n}getMonthsInYear(){return 12}getDaysInYear(t){return kf(t.year)?355:354}getMaximumMonthsInYear(){return 12}getMaximumDaysInMonth(){return 30}getYearsInEra(){return 9665}getEras(){return["AH"]}constructor(){this.identifier="islamic-civil"}}class aw extends sc{fromJulianDay(t){return Bh(this,wf,t)}toJulianDay(t){return qo(wf,t.year,t.month,t.day)}constructor(...t){super(...t),this.identifier="islamic-tbla"}}const rw="qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=";let uu,pr;function vo(e){return nw+pr[e-Ut]}function Jr(e,t){let n=e-Ut,a=1<<11-(t-1);return(uu[n]&a)===0?29:30}function $f(e,t){let n=vo(e);for(let a=1;at.charCodeAt(0)).buffer)),!pr){pr=new Uint32Array(Ga-Ut+1);let t=0;for(let n=Ut;n<=Ga;n++){pr[n-Ut]=t;for(let a=1;a<=12;a++)t+=Jr(n,a)}}}fromJulianDay(t){let n=t-Ro,a=vo(Ut),r=vo(Ga);if(nr)return super.fromJulianDay(t);{let l=Ut-1,o=1,s=1;for(;s>0;){l++,s=n-vo(l)+1;let i=Cf(l);if(s===i){o=12;break}else if(sc;)s-=c,o++,c=Jr(l,o);break}}return new tt(this,l,o,n-$f(l,o)+1)}}toJulianDay(t){return t.yearGa?super.toJulianDay(t):Ro+$f(t.year,t.month)+(t.day-1)}getDaysInMonth(t){return t.yearGa?super.getDaysInMonth(t):Jr(t.year,t.month)}getDaysInYear(t){return t.yearGa?super.getDaysInYear(t):Cf(t.year)}}const Sf=347997,Nh=1080,Vh=24*Nh,ow=29,sw=12*Nh+793,iw=ow*Vh+sw;function Oa(e){return cr(e*7+1,19)<7}function ho(e){let t=Math.floor((235*e-234)/19),n=12084+13753*t,a=t*29+Math.floor(n/25920);return cr(3*(a+1),7)<3&&(a+=1),a}function uw(e){let t=ho(e-1),n=ho(e);return ho(e+1)-n===356?2:n-t===382?1:0}function ol(e){return ho(e)+uw(e)}function Lh(e){return ol(e+1)-ol(e)}function cw(e){let t=Lh(e);switch(t>380&&(t-=30),t){case 353:return 0;case 354:return 1;case 355:return 2}}function Zl(e,t){if(t>=6&&!Oa(e)&&t++,t===4||t===7||t===9||t===11||t===13)return 29;let n=cw(e);return t===2?n===2?30:29:t===3?n===0?29:30:t===6?Oa(e)?30:0:30}class dw{fromJulianDay(t){let n=t-Sf,a=n*Vh/iw,r=Math.floor((19*a+234)/235)+1,l=ol(r),o=Math.floor(n-l);for(;o<1;)r--,l=ol(r),o=Math.floor(n-l);let s=1,i=0;for(;i6?t.month--:!Oa(n.year)&&Oa(t.year)&&n.month>6&&t.month++)}constructor(){this.identifier="hebrew"}}const cu=1723856,Ef=1824665,du=5500;function sl(e,t,n,a){return e+365*t+Math.floor(t/4)+30*(n-1)+a-1}function ic(e,t){let n=Math.floor(4*(t-e)/1461);t>=sl(e,n+1,1,1)&&n++;let a=1+Math.floor((t-sl(e,n,1,1))/30),r=t+1-sl(e,n,a,1);return[n,a,r]}function jh(e){return Math.floor(e%4/3)}function Uh(e,t){return t%13!==0?30:jh(e)+5}class uc{fromJulianDay(t){let[n,a,r]=ic(cu,t),l="AM";return n<=0&&(l="AA",n+=du),new tt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="AA"&&(n-=du),sl(cu,n,t.month,t.day)}getDaysInMonth(t){return Uh(t.year,t.month)}getMonthsInYear(){return 13}getDaysInYear(t){return 365+jh(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 fw extends uc{fromJulianDay(t){let[n,a,r]=ic(cu,t);return n+=du,new tt(this,"AA",n,a,r)}getEras(){return["AA"]}getYearsInEra(){return 9999}constructor(...t){super(...t),this.identifier="ethioaa"}}class pw extends uc{fromJulianDay(t){let[n,a,r]=ic(Ef,t),l="CE";return n<=0&&(l="BCE",n=1-n),new tt(this,l,n,a,r)}toJulianDay(t){let n=t.year;return t.era==="BCE"&&(n=1-n),sl(Ef,n,t.month,t.day)}getDaysInMonth(t){let n=t.year;return t.era==="BCE"&&(n=1-n),Uh(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 vw(e){switch(e){case"buddhist":return new Qx;case"ethiopic":return new uc;case"ethioaa":return new fw;case"coptic":return new pw;case"hebrew":return new dw;case"indian":return new tw;case"islamic-civil":return new sc;case"islamic-tbla":return new aw;case"islamic-umalqura":return new lw;case"japanese":return new Zx;case"persian":return new ew;case"roc":return new Xx;default:return new an}}let vi=new Map;class Yt{constructor(t,n={}){this.formatter=zh(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 yw()&&(this.resolvedHourCycle||(this.resolvedHourCycle=gw(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 hw={true:{ja:"h11"},false:{}};function zh(e,t={}){if(typeof t.hour12=="boolean"&&mw()){t={...t};let r=hw[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 zt(e,t=ln()){return gl(e)?e.toDate():e.toDate(t)}function bw(e){return e instanceof va}function gl(e){return e instanceof zn}function fu(e){return bw(e)||gl(e)}function da(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 ia(e,t){return e.compare(t)<0}function yi(e,t){return e.compare(t)>0}function _w(e,t,n){const a=xs(e,n,"sun");return t>a?e.subtract({days:a+7-t}):t===a?e:e.subtract({days:a-t})}function xw(e,t,n){const a=xs(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 cc(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(),s=l.getMonth()+1,i=l.getDate(),c=["hour","minute","second"],d=new Yt(r),f=vw(d.resolvedOptions().calendar);return c.includes(a??"day")?Mt(new va(o,s,i,0,0,0),f):Mt(new tt(o,s,i),f)}function ww(e){const{defaultValue:t,defaultPlaceholder:n}=e;return t?t.copy():n?n.copy():new mn(0,0,0)}function kw(e,t){const n=[];for(let a=0;at.set({day:y+1})),s=lu(t),i=uf(t),c=_w(s,n,r),d=xw(i,n,r),f=Af(c.subtract({days:1}),s),p=Af(i,d.add({days:1})),v=f.length+o.length+p.length;if(a&&v<42){const _=42-v;let y=p.at(-1);y||(y=uf(t));const x=Array.from({length:_},(S,A)=>{const V=A+1;return y.add({days:V})});p.push(...x)}const m=f.concat(o,p),g=kw(m,7);return{value:t,cells:m,rows:g}}function Sa(e){const{numberOfMonths:t,dateObj:n,...a}=e,r=[];if(!t||t===1)return r.push(bi({...a,dateObj:n})),r;r.push(bi({...a,dateObj:n}));for(let l=1;l({label:i(zt(_.set({month:x}))),value:x}))}function d(_,y={}){return new Yt(n.value,{...t,year:"numeric",...y}).format(_)}function f(_,y){return gl(_)?new Yt(n.value,{...t,...y,timeZone:_.timeZone}).formatToParts(zt(_)):new Yt(n.value,{...t,...y}).formatToParts(zt(_))}function p(_,y="narrow"){return new Yt(n.value,{...t,weekday:y}).format(_)}function v(_){const x=new Yt(n.value,{...t,hour:"numeric",minute:"numeric"}).formatToParts(_).find(S=>S.type==="dayPeriod")?.value;return x==="PM"||x==="pm"||x==="p.m."?"PM":"AM"}const m={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"};function g(_,y,x={}){const S={...m,...x},V=f(_,S).find(J=>J.type===y);return V?V.value:""}return{setLocale:r,getLocale:a,fullMonth:i,fullYear:d,fullMonthAndYear:s,toParts:f,custom:l,part:g,dayPeriod:v,selectedDate:o,dayOfWeek:p,getMonths:c}}function Na(e){const t=bs({dir:T("ltr")});return w(()=>e?.value||t.dir?.value||"ltr")}function Pr(e){const t=$n(),n=t?.type.emits,a={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(r=>{a[Qr(ht(r))]=(...l)=>e(r,...l)}),a}let _i=0;function Yh(){Xt(e=>{if(!Wn)return;const t=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",t[0]??Df()),document.body.insertAdjacentElement("beforeend",t[1]??Df()),_i++,e(()=>{_i===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(n=>n.remove()),_i--})})}function Df(){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 Ke(){const e=$n(),t=T(),n=w(()=>a());Ru(()=>{n.value!==a()&&Fy(t)});function a(){return t.value&&"$el"in t.value&&["#text","#comment"].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:Dr(t)}const r=Object.assign({},e.exposed),l={};for(const s in e.props)Object.defineProperty(l,s,{enumerable:!0,configurable:!0,get:()=>e.props[s]});if(Object.keys(r).length>0)for(const s in r)Object.defineProperty(l,s,{enumerable:!0,configurable:!0,get:()=>r[s]});Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=l;function o(s){if(t.value=s,!!s&&(Object.defineProperty(l,"$el",{enumerable:!0,configurable:!0,get:()=>s instanceof Element?s:s.$el}),!(s instanceof Element)&&!Object.hasOwn(s,"$el"))){const i=s.$.exposed,c=Object.assign({},l);for(const d in i)Object.defineProperty(c,d,{enumerable:!0,configurable:!0,get:()=>i[d]});e.exposed=c}}return{forwardRef:o,currentRef:t,currentElement:n}}function Jh(e){const t=$n(),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=Uy(e);return w(()=>{const r={},l=t?.vnode.props??{};return Object.keys(l).forEach(o=>{r[ht(o)]=l[o]}),Object.keys({...n,...r}).reduce((o,s)=>(a.value[s]!==void 0&&(o[s]=a.value[s]),o),{})})}function Gn(e,t){const n=Jh(e),a=t?Pr(t):{};return w(()=>({...n.value,...a}))}var Sw=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ya=new WeakMap,Ql=new WeakMap,Xl={},xi=0,Zh=function(e){return e&&(e.host||Zh(e.parentNode))},Ew=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=Zh(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})},Aw=function(e,t,n,a){var r=Ew(t,Array.isArray(e)?e:[e]);Xl[n]||(Xl[n]=new WeakMap);var l=Xl[n],o=[],s=new Set,i=new Set(r),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};r.forEach(c);var d=function(f){!f||i.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(a),m=v!==null&&v!=="false",g=(Ya.get(p)||0)+1,_=(l.get(p)||0)+1;Ya.set(p,g),l.set(p,_),o.push(p),g===1&&m&&Ql.set(p,!0),_===1&&p.setAttribute(n,"true"),m||p.setAttribute(a,"true")}catch(y){console.error("aria-hidden: cannot operate on ",p,y)}})};return d(t),s.clear(),xi++,function(){o.forEach(function(f){var p=Ya.get(f)-1,v=l.get(f)-1;Ya.set(f,p),l.set(f,v),p||(Ql.has(f)||f.removeAttribute(a),Ql.delete(f)),v||f.removeAttribute(n)}),xi--,xi||(Ya=new WeakMap,Ya=new WeakMap,Ql=new WeakMap,Xl={})}},Dw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),r=Sw(e);return r?(a.push.apply(a,Array.from(r.querySelectorAll("[aria-live], script"))),Aw(a,r,n,"aria-hidden")):function(){return null}};function fc(e){let t;Fe(()=>Dr(e),n=>{let a=!1;try{a=!!n?.closest("[popover]:not(:popover-open)")}catch{}n&&!a?t=Dw(n):t&&t()}),Er(()=>{t&&t()})}function $r(e,t="reka"){let n;const a=bs({useId:void 0});return a.useId?n=a.useId():n=ig?.(),t?`${t}-${n}`:n}function Or(){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 $s(e){const t=bs({locale:T("en")});return w(()=>e?.value||t.locale?.value||"en")}function Pw(e){const t=T(),n=w(()=>t.value?.width??0),a=w(()=>t.value?.height??0);return _t(()=>{const r=Dr(e);if(r){t.value={width:r.offsetWidth,height:r.offsetHeight};const l=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let i,c;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;i=f.inlineSize,c=f.blockSize}else i=r.offsetWidth,c=r.offsetHeight;t.value={width:i,height:c}});return l.observe(r,{box:"border-box"}),()=>l.unobserve(r)}else t.value=void 0}),{width:n,height:a}}function Ow(e,t){const n=T(e);function a(l){return t[n.value][l]??n.value}return{state:n,dispatch:l=>{n.value=a(l)}}}function Mw(e){const t=mx("",1e3);return{search:t,handleTypeaheadSearch:(r,l)=>{t.value=t.value+r;{const o=ft(),s=l.map(p=>({...p,textValue:p.value?.textValue??p.ref.textContent?.trim()??""})),i=s.find(p=>p.ref===o),c=s.map(p=>p.textValue),d=Rw(c,t.value,i?.textValue),f=s.find(p=>p.textValue===d);return f&&f.ref.focus(),f?.ref}},resetTypeahead:()=>{t.value=""}}}function Tw(e,t){return e.map((n,a)=>e[(t+a)%e.length])}function Rw(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=Tw(e,Math.max(l,0));r.length===1&&(o=o.filter(c=>c!==n));const i=o.find(c=>c.toLowerCase().startsWith(r.toLowerCase()));return i!==n?i:void 0}function qw(e,t){const n=T({}),a=T("none"),r=T(e),l=e.value?"mounted":"unmounted";let o;const s=t.value?.ownerDocument.defaultView??Ju,{state:i,dispatch:c}=Ow(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),d=_=>{if(Wn){const y=new CustomEvent(_,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(y)}};Fe(e,async(_,y)=>{const x=y!==_;if(await ze(),x){const S=a.value,A=eo(t.value);_?(c("MOUNT"),d("enter"),A==="none"&&d("after-enter")):A==="none"||A==="undefined"||n.value?.display==="none"?(c("UNMOUNT"),d("leave"),d("after-leave")):y&&S!==A?(c("ANIMATION_OUT"),d("leave")):(c("UNMOUNT"),d("after-leave"))}},{immediate:!0});const f=_=>{const y=eo(t.value),x=y.includes(CSS.escape(_.animationName)),S=i.value==="mounted"?"enter":"leave";if(_.target===t.value&&x&&(d(`after-${S}`),c("ANIMATION_END"),!r.value)){const A=t.value.style.animationFillMode;t.value.style.animationFillMode="forwards",o=s?.setTimeout(()=>{t.value?.style.animationFillMode==="forwards"&&(t.value.style.animationFillMode=A)})}_.target===t.value&&y==="none"&&c("ANIMATION_END")},p=_=>{_.target===t.value&&(a.value=eo(t.value))},v=Fe(t,(_,y)=>{_?(n.value=getComputedStyle(_),_.addEventListener("animationstart",p),_.addEventListener("animationcancel",f),_.addEventListener("animationend",f)):(c("ANIMATION_END"),o!==void 0&&s?.clearTimeout(o),y?.removeEventListener("animationstart",p),y?.removeEventListener("animationcancel",f),y?.removeEventListener("animationend",f))},{immediate:!0}),m=Fe(i,()=>{const _=eo(t.value);a.value=i.value==="mounted"?_:"none"});return Er(()=>{v(),m()}),{isPresent:w(()=>["mounted","unmountSuspended"].includes(i.value))}}function eo(e){return e&&getComputedStyle(e).animationName||"none"}var Cs=ee({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){const{present:a,forceMount:r}=Lt(e),l=T(),{isPresent:o}=qw(a,l);n({present:o});let s=t.default({present:o.value});s=Zu(s||[]);const i=$n();if(s&&s?.length>1){const c=i?.parent?.type.name?`<${i.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?Kt(t.default({present:o.value})[0],{ref:c=>{const d=Dr(c);return typeof d?.hasAttribute>"u"||(d?.hasAttribute("data-reka-popper-content-wrapper")?l.value=d.firstElementChild:l.value=d),d}}):null}});const pu=ee({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;const a=Zu(n.default()),r=a.findIndex(i=>i.type!==tn);if(r===-1)return a;const l=a[r];delete l.props?.ref;const o=l.props?Ve(t,l.props):t,s=fa({...l,props:{}},o);return a.length===1?s:(a[r]=s,a)}}}),Iw=["area","img","input"],Ye=ee({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"&&Iw.includes(a)?()=>Kt(a,t):a!=="template"?()=>Kt(e.as,t,{default:n.default}):()=>Kt(pu,t,{default:n.default})}});function Cr(){const e=T(),t=w(()=>["#text","#comment"].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Dr(e));return{primitiveElement:e,currentElement:t}}const[Yn,Fw]=xt("DialogRoot");var Bw=ee({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=bt(n,"open",t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=T(),o=T(),{modal:s}=Lt(n);return Fw({open:r,modal:s,openModal:()=>{r.value=!0},onOpenChange:i=>{r.value=i},onOpenToggle:()=>{r.value=!r.value},contentId:"",titleId:"",descriptionId:"",triggerElement:l,contentElement:o}),(i,c)=>he(i.$slots,"default",{open:u(r),close:()=>r.value=!1})}}),ql=Bw,Nw=ee({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;Ke();const n=Yn();return(a,r)=>(h(),j(u(Ye),Ve(t,{type:a.as==="button"?"button":void 0,onClick:r[0]||(r[0]=l=>u(n).onOpenChange(!1))}),{default:F(()=>[he(a.$slots,"default")]),_:3},16,["type"]))}}),Sr=Nw;const Vw="dismissableLayer.pointerDownOutside",Lw="dismissableLayer.focusOutside";function Qh(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 Xt(o=>{if(!Wn||!Tt(n))return;const s=async c=>{const d=c.target;if(!(!t?.value||!d)){if(Qh(t.value,d)){r.value=!1;return}if(c.target&&!r.value){let v=function(){fh(Vw,e,p)};var f=v;const p={originalEvent:c};c.pointerType==="touch"?(a.removeEventListener("click",l.value),l.value=v,a.addEventListener("click",l.value,{once:!0})):v()}else a.removeEventListener("click",l.value);r.value=!1}},i=window.setTimeout(()=>{a.addEventListener("pointerdown",s)},0);o(()=>{window.clearTimeout(i),a.removeEventListener("pointerdown",s),a.removeEventListener("click",l.value)})}),{onPointerDownCapture:()=>{Tt(n)&&(r.value=!0)}}}function Uw(e,t,n=!0){const a=t?.value?.ownerDocument??globalThis?.document,r=T(!1);return Xt(l=>{if(!Wn||!Tt(n))return;const o=async s=>{if(!t?.value)return;await ze(),await ze();const i=s.target;!t.value||!i||Qh(t.value,i)||s.target&&!r.value&&fh(Lw,e,{originalEvent:s})};a.addEventListener("focusin",o),l(()=>a.removeEventListener("focusin",o))}),{onFocusCapture:()=>{Tt(n)&&(r.value=!0)},onBlurCapture:()=>{Tt(n)&&(r.value=!1)}}}const It=Zt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set});var zw=ee({__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}=Ke(),o=w(()=>l.value?.ownerDocument??globalThis.document),s=w(()=>It.layersRoot),i=w(()=>l.value?Array.from(s.value).indexOf(l.value):-1),c=w(()=>It.layersWithOutsidePointerEventsDisabled.size>0),d=w(()=>{const v=Array.from(s.value),[m]=[...It.layersWithOutsidePointerEventsDisabled].slice(-1),g=v.indexOf(m);return i.value>=g}),f=jw(async v=>{const m=[...It.branches].some(g=>g?.contains(v.target));!d.value||m||(a("pointerDownOutside",v),a("interactOutside",v),await ze(),v.defaultPrevented||a("dismiss"))},l),p=Uw(v=>{[...It.branches].some(g=>g?.contains(v.target))||(a("focusOutside",v),a("interactOutside",v),v.defaultPrevented||a("dismiss"))},l);return xx("Escape",v=>{i.value===s.value.size-1&&(a("escapeKeyDown",v),v.defaultPrevented||a("dismiss"))}),Fe([l,()=>n.disableOutsidePointerEvents],([v,m],g,_)=>{v&&(m&&(It.layersWithOutsidePointerEventsDisabled.size===0&&(It.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents="none"),It.layersWithOutsidePointerEventsDisabled.add(v),_(()=>{It.layersWithOutsidePointerEventsDisabled.delete(v),It.layersWithOutsidePointerEventsDisabled.size===0&&!hn(It.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=It.originalBodyPointerEvents)})),s.value.add(v))},{immediate:!0}),Xt(v=>{v(()=>{l.value&&(s.value.delete(l.value),It.layersWithOutsidePointerEventsDisabled.delete(l.value))})}),(v,m)=>(h(),j(u(Ye),{ref:u(r),"as-child":v.asChild,as:v.as,"data-dismissable-layer":"",style:Fn({pointerEvents:c.value?d.value?"auto":"none":void 0}),onFocusCapture:u(p).onFocusCapture,onBlurCapture:u(p).onBlurCapture,onPointerdownCapture:u(f).onPointerDownCapture},{default:F(()=>[he(v.$slots,"default")]),_:3},8,["as-child","as","style","onFocusCapture","onBlurCapture","onPointerdownCapture"]))}}),pc=zw;const Hw=sx(()=>T([]));function Kw(){const e=Hw();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=Pf(e.value,t),e.value.unshift(t)},remove(t){e.value=Pf(e.value,t),e.value[0]?.resume()}}}function Pf(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}const wi="focusScope.autoFocusOnMount",ki="focusScope.autoFocusOnUnmount",Of={bubbles:!1,cancelable:!0};function Ww(e,{select:t=!1}={}){const n=ft();for(const a of e)if(aa(a,{select:t}),ft()!==n)return!0}function Gw(e){const t=Xh(e),n=Mf(t,e),a=Mf(t.reverse(),e);return[n,a]}function Xh(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 Mf(e,t){for(const n of e)if(!Yw(n,{upTo:t}))return n}function Yw(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 Jw(e){return e instanceof HTMLInputElement&&"select"in e}function aa(e,{select:t=!1}={}){if(e&&e.focus){const n=ft();e.focus({preventScroll:!0}),e!==n&&Jw(e)&&t&&e.select()}}var Zw=ee({__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}=Ke(),o=T(null),s=Kw(),i=Zt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Xt(d=>{if(!Wn)return;const f=l.value;if(!n.trapped)return;function p(_){if(i.paused||!f)return;const y=_.target;f.contains(y)?o.value=y:aa(o.value,{select:!0})}function v(_){if(i.paused||!f)return;const y=_.relatedTarget;y!==null&&(f.contains(y)||aa(o.value,{select:!0}))}function m(_){const y=o.value;if(y===null||!_.some(A=>A.removedNodes.length>0))return;f.contains(y)||aa(f)}document.addEventListener("focusin",p),document.addEventListener("focusout",v);const g=new MutationObserver(m);f&&g.observe(f,{childList:!0,subtree:!0}),d(()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",v),g.disconnect()})}),Xt(async d=>{const f=l.value;if(await ze(),!f)return;s.add(i);const p=ft();if(!f.contains(p)){const m=new CustomEvent(wi,Of);f.addEventListener(wi,g=>a("mountAutoFocus",g)),f.dispatchEvent(m),m.defaultPrevented||(Ww(Xh(f),{select:!0}),ft()===p&&aa(f))}d(()=>{f.removeEventListener(wi,_=>a("mountAutoFocus",_));const m=new CustomEvent(ki,Of),g=_=>{a("unmountAutoFocus",_)};f.addEventListener(ki,g),f.dispatchEvent(m),f.setAttribute("data-focus-scope-unmounting",""),setTimeout(()=>{m.defaultPrevented||aa(p??document.body,{select:!0}),f.removeEventListener(ki,g),s.remove(i),f.removeAttribute("data-focus-scope-unmounting")},0)})});function c(d){if(!n.loop&&!n.trapped||i.paused)return;const f=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,p=ft();if(f&&p){const v=d.currentTarget,[m,g]=Gw(v);m&&g?!d.shiftKey&&p===g?(d.preventDefault(),n.loop&&aa(m,{select:!0})):d.shiftKey&&p===m&&(d.preventDefault(),n.loop&&aa(g,{select:!0})):p===v&&d.preventDefault()}}return(d,f)=>(h(),j(u(Ye),{ref_key:"currentRef",ref:r,tabindex:"-1","as-child":d.asChild,as:d.as,onKeydown:c},{default:F(()=>[he(d.$slots,"default")]),_:3},8,["as-child","as"]))}}),vc=Zw;const Qw="menu.itemSelect",vu=["Enter"," "],Xw=["ArrowDown","PageUp","Home"],em=["ArrowUp","PageDown","End"],ek=[...Xw,...em];[...vu],[...vu];function tm(e){return e?"open":"closed"}function tk(e){const t=ft();for(const n of e)if(n===t||(n.focus(),ft()!==t))return}function nk(e,t){const{x:n,y:a}=e;let r=!1;for(let l=0,o=t.length-1;la!=d>a&&n<(c-s)*(a-i)/(d-i)+s&&(r=!r)}return r}function ak(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return nk(n,t)}function Io(e){return e.pointerType==="mouse"}var rk=ee({__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=Yn(),{forwardRef:l,currentElement:o}=Ke();return r.titleId||=$r(void 0,"reka-dialog-title"),r.descriptionId||=$r(void 0,"reka-dialog-description"),_t(()=>{r.contentElement=o,ft()!==document.body&&(r.triggerElement.value=ft())}),(s,i)=>(h(),j(u(vc),{"as-child":"",loop:"",trapped:n.trapFocus,onMountAutoFocus:i[5]||(i[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:i[6]||(i[6]=c=>a("closeAutoFocus",c))},{default:F(()=>[z(u(pc),Ve({id:u(r).contentId,ref:u(l),as:s.as,"as-child":s.asChild,"disable-outside-pointer-events":s.disableOutsidePointerEvents,role:"dialog","aria-describedby":u(r).descriptionId,"aria-labelledby":u(r).titleId,"data-state":u(tm)(u(r).open.value)},s.$attrs,{onDismiss:i[0]||(i[0]=c=>u(r).onOpenChange(!1)),onEscapeKeyDown:i[1]||(i[1]=c=>a("escapeKeyDown",c)),onFocusOutside:i[2]||(i[2]=c=>a("focusOutside",c)),onInteractOutside:i[3]||(i[3]=c=>a("interactOutside",c)),onPointerDownOutside:i[4]||(i[4]=c=>a("pointerDownOutside",c))}),{default:F(()=>[he(s.$slots,"default")]),_:3},16,["id","as","as-child","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped"]))}}),nm=rk,lk=ee({__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=Yn(),l=Pr(a),{forwardRef:o,currentElement:s}=Ke();return fc(s),(i,c)=>(h(),j(nm,Ve({...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,p=f.button===0&&f.ctrlKey===!0;(f.button===2||p)&&d.preventDefault()}),onFocusOutside:c[2]||(c[2]=d=>{d.preventDefault()})}),{default:F(()=>[he(i.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),ok=lk,sk=ee({__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=Pr(t);Ke();const l=Yn(),o=T(!1),s=T(!1);return(i,c)=>(h(),j(nm,Ve({...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,s.value=!1}),onInteractOutside:c[1]||(c[1]=d=>{d.defaultPrevented||(o.value=!0,d.detail.originalEvent.type==="pointerdown"&&(s.value=!0));const f=d.target;u(l).triggerElement.value?.contains(f)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&s.value&&d.preventDefault()})}),{default:F(()=>[he(i.$slots,"default")]),_:3},16))}}),ik=sk,uk=ee({__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=Yn(),l=Pr(a),{forwardRef:o}=Ke();return(s,i)=>(h(),j(u(Cs),{present:s.forceMount||u(r).open.value},{default:F(()=>[u(r).modal.value?(h(),j(ok,Ve({key:0,ref:u(o)},{...n,...u(l),...s.$attrs}),{default:F(()=>[he(s.$slots,"default")]),_:3},16)):(h(),j(ik,Ve({key:1,ref:u(o)},{...n,...u(l),...s.$attrs}),{default:F(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Il=uk,ck=ee({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;Ke();const n=Yn();return(a,r)=>(h(),j(u(Ye),Ve(t,{id:u(n).descriptionId}),{default:F(()=>[he(a.$slots,"default")]),_:3},16,["id"]))}}),_l=ck,dk=ee({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Yn();return Qu(!0),Ke(),(n,a)=>(h(),j(u(Ye),{as:n.as,"as-child":n.asChild,"data-state":u(t).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:a[0]||(a[0]=pt(()=>{},["left","self","prevent"]))},{default:F(()=>[he(n.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),fk=dk,pk=ee({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Yn(),{forwardRef:n}=Ke();return(a,r)=>u(t)?.modal.value?(h(),j(u(Cs),{key:0,present:a.forceMount||u(t).open.value},{default:F(()=>[z(fk,Ve(a.$attrs,{ref:u(n),as:a.as,"as-child":a.asChild}),{default:F(()=>[he(a.$slots,"default")]),_:3},16,["as","as-child"])]),_:3},8,["present"])):ae("v-if",!0)}}),Fl=pk,vk=ee({__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=bx();return(n,a)=>u(t)||n.forceMount?(h(),j(rg,{key:0,to:n.to,disabled:n.disabled,defer:n.defer},[he(n.$slots,"default")],8,["to","disabled","defer"])):ae("v-if",!0)}}),Ss=vk,hk=ee({__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)=>(h(),j(u(Ss),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Es=hk,mk=ee({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e,n=Yn();return Ke(),(a,r)=>(h(),j(u(Ye),Ve(t,{id:u(n).titleId}),{default:F(()=>[he(a.$slots,"default")]),_:3},16,["id"]))}}),Bl=mk;const[yk,gk]=xt("AlertDialogContent");var bk=ee({__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=Pr(t);Ke();const l=T();return gk({onCancelElementChange:o=>{l.value=o}}),(o,s)=>(h(),j(u(Il),Ve({...n,...u(r)},{role:"alertdialog",onPointerDownOutside:s[0]||(s[0]=pt(()=>{},["prevent"])),onInteractOutside:s[1]||(s[1]=pt(()=>{},["prevent"])),onOpenAutoFocus:s[2]||(s[2]=()=>{ze(()=>{l.value?.focus({preventScroll:!0})})})}),{default:F(()=>[he(o.$slots,"default")]),_:3},16))}}),_k=bk,xk=ee({__name:"AlertDialogCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=yk(),{forwardRef:a,currentElement:r}=Ke();return _t(()=>{n.onCancelElementChange(r.value)}),(l,o)=>(h(),j(u(Sr),Ve(t,{ref:u(a)}),{default:F(()=>[he(l.$slots,"default")]),_:3},16))}}),wk=xk,kk=ee({__name:"AlertDialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;return Ke(),(n,a)=>(h(),j(u(_l),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),$k=kk,Ck=ee({__name:"AlertDialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return Ke(),(n,a)=>(h(),j(u(Fl),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Sk=Ck,Ek=ee({__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)=>(h(),j(u(Ss),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Ak=Ek,Dk=ee({__name:"AlertDialogRoot",props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1}},emits:["update:open"],setup(e,{emit:t}){const r=Gn(e,t);return Ke(),(l,o)=>(h(),j(u(ql),Ve(u(r),{modal:!0}),{default:F(s=>[he(l.$slots,"default",He(Ge(s)))]),_:3},16))}}),Pk=Dk,Ok=ee({__name:"AlertDialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e;return Ke(),(n,a)=>(h(),j(u(Bl),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Mk=Ok;const Tf="data-reka-collection-item";function am(e={}){const{key:t="",isProvider:n=!1}=e,a=`${t}CollectionProvider`;let r;n?(r={collectionRef:T(),itemMap:T(new Map)},Dt(a,r)):r=st(a);const l=(d=!1)=>{const f=r.collectionRef.value;if(!f)return[];const p=Array.from(f.querySelectorAll(`[${Tf}]`)),m=Array.from(r.itemMap.value.values()).sort((g,_)=>p.indexOf(g.ref)-p.indexOf(_.ref));return d?m:m.filter(g=>g.ref.dataset.disabled!=="")},o=ee({name:"CollectionSlot",inheritAttrs:!1,setup(d,{slots:f,attrs:p}){const{primitiveElement:v,currentElement:m}=Cr();return Fe(m,()=>{r.collectionRef.value=m.value}),()=>Kt(pu,{ref:v,...p},f)}}),s=ee({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(d,{slots:f,attrs:p}){const{primitiveElement:v,currentElement:m}=Cr();return Xt(g=>{if(m.value){const _=yo(m.value);r.itemMap.value.set(_,{ref:m.value,value:d.value}),g(()=>r.itemMap.value.delete(_))}}),()=>Kt(pu,{...p,[Tf]:"",ref:v},f)}}),i=w(()=>Array.from(r.itemMap.value.values())),c=w(()=>r.itemMap.value.size);return{getItems:l,reactiveItems:i,itemMapSize:c,CollectionSlot:o,CollectionItem:s}}var Tk=ee({__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)=>(h(),j(u(Ye),{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:F(()=>[he(t.$slots,"default")]),_:3},8,["as","as-child","aria-hidden","data-hidden","tabindex"]))}}),rm=Tk;const Rk="rovingFocusGroup.onEntryFocus",qk={bubbles:!1,cancelable:!0};function Ik(e,t=!1){const n=ft();for(const a of e)if(a===n||(a.focus({preventScroll:t}),ft()!==n))return}const[lm,Fk]=xt("PopperRoot");var Bk=ee({inheritAttrs:!1,__name:"PopperRoot",setup(e){const t=T();return Fk({anchor:t,onAnchorChange:n=>t.value=n}),(n,a)=>he(n.$slots,"default")}}),om=Bk,Nk=ee({__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}=Ke(),r=lm();return Up(()=>{r.onAnchorChange(t.reference??a.value)}),(l,o)=>(h(),j(u(Ye),{ref:u(n),as:l.as,"as-child":l.asChild},{default:F(()=>[he(l.$slots,"default")]),_:3},8,["as","as-child"]))}}),sm=Nk;function Vk(e){return e!==null}function Lk(e){return{name:"transformOrigin",options:e,fn(t){const{placement:n,rects:a,middlewareData:r}=t,o=r.arrow?.centerOffset!==0,s=o?0:e.arrowWidth,i=o?0:e.arrowHeight,[c,d]=hu(n),f={start:"0%",center:"50%",end:"100%"}[d],p=(r.arrow?.x??0)+s/2,v=(r.arrow?.y??0)+i/2;let m="",g="";return c==="bottom"?(m=o?f:`${p}px`,g=`${-i}px`):c==="top"?(m=o?f:`${p}px`,g=`${a.floating.height+i}px`):c==="right"?(m=`${-i}px`,g=o?f:`${v}px`):c==="left"&&(m=`${a.floating.width+i}px`,g=o?f:`${v}px`),{data:{x:m,y:g}}}}}function hu(e){const[t,n="center"]=e.split("-");return[t,n]}const jk=["top","right","bottom","left"],ha=Math.min,Bn=Math.max,Fo=Math.round,to=Math.floor,Nn=e=>({x:e,y:e}),Uk={left:"right",right:"left",bottom:"top",top:"bottom"};function im(e,t,n){return Bn(e,ha(t,n))}function Hn(e,t){return typeof e=="function"?e(t):e}function ma(e){return e.split("-")[0]}function Mr(e){return e.split("-")[1]}function hc(e){return e==="x"?"y":"x"}function mc(e){return e==="y"?"height":"width"}function yn(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function yc(e){return hc(yn(e))}function zk(e,t,n){n===void 0&&(n=!1);const a=Mr(e),r=yc(e),l=mc(r);let o=r==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(o=Bo(o)),[o,Bo(o)]}function Hk(e){const t=Bo(e);return[mu(e),t,mu(t)]}function mu(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Rf=["left","right"],qf=["right","left"],Kk=["top","bottom"],Wk=["bottom","top"];function Gk(e,t,n){switch(e){case"top":case"bottom":return n?t?qf:Rf:t?Rf:qf;case"left":case"right":return t?Kk:Wk;default:return[]}}function Yk(e,t,n,a){const r=Mr(e);let l=Gk(ma(e),n==="start",a);return r&&(l=l.map(o=>o+"-"+r),t&&(l=l.concat(l.map(mu)))),l}function Bo(e){const t=ma(e);return Uk[t]+e.slice(t.length)}function Jk(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 um(e){return typeof e!="number"?Jk(e):{top:e,right:e,bottom:e,left:e}}function No(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 If(e,t,n){let{reference:a,floating:r}=e;const l=yn(t),o=yc(t),s=mc(o),i=ma(t),c=l==="y",d=a.x+a.width/2-r.width/2,f=a.y+a.height/2-r.height/2,p=a[s]/2-r[s]/2;let v;switch(i){case"top":v={x:d,y:a.y-r.height};break;case"bottom":v={x:d,y:a.y+a.height};break;case"right":v={x:a.x+a.width,y:f};break;case"left":v={x:a.x-r.width,y:f};break;default:v={x:a.x,y:a.y}}const m=Mr(t);return m&&(v[o]+=p*(m==="end"?1:-1)*(n&&c?-1:1)),v}async function Zk(e,t){var n;t===void 0&&(t={});const{x:a,y:r,platform:l,rects:o,elements:s,strategy:i}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:p=!1,padding:v=0}=Hn(t,e),m=um(v),_=s[p?f==="floating"?"reference":"floating":f],y=No(await l.getClippingRect({element:(n=await(l.isElement==null?void 0:l.isElement(_)))==null||n?_:_.contextElement||await(l.getDocumentElement==null?void 0:l.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:i})),x=f==="floating"?{x:a,y:r,width:o.floating.width,height:o.floating.height}:o.reference,S=await(l.getOffsetParent==null?void 0:l.getOffsetParent(s.floating)),A=await(l.isElement==null?void 0:l.isElement(S))&&await(l.getScale==null?void 0:l.getScale(S))||{x:1,y:1},V=No(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:x,offsetParent:S,strategy:i}):x);return{top:(y.top-V.top+m.top)/A.y,bottom:(V.bottom-y.bottom+m.bottom)/A.y,left:(y.left-V.left+m.left)/A.x,right:(V.right-y.right+m.right)/A.x}}const Qk=50,Xk=async(e,t,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:l=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Zk},i=await(o.isRTL==null?void 0:o.isRTL(t));let c=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:f}=If(c,a,i),p=a,v=0;const m={};for(let g=0;g({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:r,rects:l,platform:o,elements:s,middlewareData:i}=t,{element:c,padding:d=0}=Hn(e,t)||{};if(c==null)return{};const f=um(d),p={x:n,y:a},v=yc(r),m=mc(v),g=await o.getDimensions(c),_=v==="y",y=_?"top":"left",x=_?"bottom":"right",S=_?"clientHeight":"clientWidth",A=l.reference[m]+l.reference[v]-p[v]-l.floating[m],V=p[v]-l.reference[v],J=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let U=J?J[S]:0;(!U||!await(o.isElement==null?void 0:o.isElement(J)))&&(U=s.floating[S]||l.floating[m]);const H=A/2-V/2,k=U/2-g[m]/2-1,I=ha(f[y],k),G=ha(f[x],k),D=U-g[m]-G,N=U/2-g[m]/2+H,W=im(I,N,D),B=!i.arrow&&Mr(r)!=null&&N!==W&&l.reference[m]/2-(NW<=0)){var G,D;const W=(((G=l.flip)==null?void 0:G.index)||0)+1,B=U[W];if(B&&(!(f==="alignment"?x!==yn(B):!1)||I.every(ce=>yn(ce.placement)===x?ce.overflows[0]>0:!0)))return{data:{index:W,overflows:I},reset:{placement:B}};let Q=(D=I.filter(ne=>ne.overflows[0]<=0).sort((ne,ce)=>ne.overflows[1]-ce.overflows[1])[0])==null?void 0:D.placement;if(!Q)switch(v){case"bestFit":{var N;const ne=(N=I.filter(ce=>{if(J){const te=yn(ce.placement);return te===x||te==="y"}return!0}).map(ce=>[ce.placement,ce.overflows.filter(te=>te>0).reduce((te,ie)=>te+ie,0)]).sort((ce,te)=>ce[1]-te[1])[0])==null?void 0:N[0];ne&&(Q=ne);break}case"initialPlacement":Q=s;break}if(r!==Q)return{reset:{placement:Q}}}return{}}}};function Ff(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Bf(e){return jk.some(t=>e[t]>=0)}const n$=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:a}=t,{strategy:r="referenceHidden",...l}=Hn(e,t);switch(r){case"referenceHidden":{const o=await a.detectOverflow(t,{...l,elementContext:"reference"}),s=Ff(o,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Bf(s)}}}case"escaped":{const o=await a.detectOverflow(t,{...l,altBoundary:!0}),s=Ff(o,n.floating);return{data:{escapedOffsets:s,escaped:Bf(s)}}}default:return{}}}}},cm=new Set(["left","top"]);async function a$(e,t){const{placement:n,platform:a,elements:r}=e,l=await(a.isRTL==null?void 0:a.isRTL(r.floating)),o=ma(n),s=Mr(n),i=yn(n)==="y",c=cm.has(o)?-1:1,d=l&&i?-1:1,f=Hn(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:m}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof m=="number"&&(v=s==="end"?m*-1:m),i?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const r$=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:s}=t,i=await a$(t,e);return o===((n=s.offset)==null?void 0:n.placement)&&(a=s.arrow)!=null&&a.alignmentOffset?{}:{x:r+i.x,y:l+i.y,data:{...i,placement:o}}}}},l$=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:s=!1,limiter:i={fn:x=>{let{x:S,y:A}=x;return{x:S,y:A}}},...c}=Hn(e,t),d={x:n,y:a},f=await l.detectOverflow(t,c),p=yn(r),v=hc(p);let m=d[v],g=d[p];const _=(x,S)=>im(S+f[x==="y"?"top":"left"],S,S-f[x==="y"?"bottom":"right"]);o&&(m=_(v,m)),s&&(g=_(p,g));const y=i.fn({...t,[v]:m,[p]:g});return{...y,data:{x:y.x-n,y:y.y-a,enabled:{[v]:o,[p]:s}}}}}},o$=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,a;const{x:r,y:l,placement:o,rects:s,middlewareData:i}=t,{offset:c=0,mainAxis:d=!0,crossAxis:f=!0}=Hn(e,t),p={x:r,y:l},v=yn(o),m=hc(v);let g=p[m],_=p[v];const y=Hn(c,t),x=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:(n=y.mainAxis)!=null?n:0,crossAxis:(a=y.crossAxis)!=null?a:0};if(d){const V=m==="y"?"height":"width",J=s.reference[m]-s.floating[V]+x.mainAxis,U=s.reference[m]+s.reference[V]-x.mainAxis;gU&&(g=U)}if(f){var S,A;const V=m==="y"?"width":"height",J=cm.has(ma(o)),U=s.reference[v]-s.floating[V]+(J&&((S=i.offset)==null?void 0:S[v])||0)+(J?0:x.crossAxis),H=s.reference[v]+s.reference[V]+(J?0:((A=i.offset)==null?void 0:A[v])||0)-(J?x.crossAxis:0);_H&&(_=H)}return{[m]:g,[v]:_}}}},s$=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=()=>{},...s}=Hn(e,t),i=await r.detectOverflow(t,s),c=ma(n),d=Mr(n),f=yn(n)==="y",{width:p,height:v}=a.floating;let m,g;c==="top"||c==="bottom"?(m=c,g=d===(await(r.isRTL==null?void 0:r.isRTL(l.floating))?"start":"end")?"left":"right"):(g=c,m=d==="end"?"top":"bottom");const _=v-i.top-i.bottom,y=p-i.left-i.right,x=ha(v-i[m],_),S=ha(p-i[g],y),A=t.middlewareData.shift,V=!A;let J=x,U=S;A!=null&&A.enabled.x&&(U=y),A!=null&&A.enabled.y&&(J=_),V&&!d&&(f?U=p-2*Bn(i.left,i.right):J=v-2*Bn(i.top,i.bottom)),await o({...t,availableWidth:U,availableHeight:J});const H=await r.getDimensions(l.floating);return p!==H.width||v!==H.height?{reset:{rects:!0}}:{}}}};function As(){return typeof window<"u"}function Va(e){return gc(e)?(e.nodeName||"").toLowerCase():"#document"}function Rt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Jn(e){var t;return(t=(gc(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function gc(e){return As()?e instanceof Node||e instanceof Rt(e).Node:!1}function wn(e){return As()?e instanceof Element||e instanceof Rt(e).Element:!1}function _a(e){return As()?e instanceof HTMLElement||e instanceof Rt(e).HTMLElement:!1}function Nf(e){return!As()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Rt(e).ShadowRoot}function Ds(e){const{overflow:t,overflowX:n,overflowY:a,display:r}=kn(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&r!=="inline"&&r!=="contents"}function i$(e){return/^(table|td|th)$/.test(Va(e))}function Ps(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const u$=/transform|translate|scale|rotate|perspective|filter/,c$=/paint|layout|strict|content/,Ea=e=>!!e&&e!=="none";let $i;function bc(e){const t=wn(e)?kn(e):e;return Ea(t.transform)||Ea(t.translate)||Ea(t.scale)||Ea(t.rotate)||Ea(t.perspective)||!_c()&&(Ea(t.backdropFilter)||Ea(t.filter))||u$.test(t.willChange||"")||c$.test(t.contain||"")}function d$(e){let t=Fa(e);for(;_a(t)&&!xl(t);){if(bc(t))return t;if(Ps(t))return null;t=Fa(t)}return null}function _c(){return $i==null&&($i=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),$i}function xl(e){return/^(html|body|#document)$/.test(Va(e))}function kn(e){return Rt(e).getComputedStyle(e)}function Os(e){return wn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Fa(e){if(Va(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Nf(e)&&e.host||Jn(e);return Nf(t)?t.host:t}function dm(e){const t=Fa(e);return xl(t)?(e.ownerDocument||e).body:_a(t)&&Ds(t)?t:dm(t)}function wl(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=dm(e),l=r===((a=e.ownerDocument)==null?void 0:a.body),o=Rt(r);if(l){const s=yu(o);return t.concat(o,o.visualViewport||[],Ds(r)?r:[],s&&n?wl(s):[])}else return t.concat(r,wl(r,[],n))}function yu(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function fm(e){const t=kn(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const r=_a(e),l=r?e.offsetWidth:n,o=r?e.offsetHeight:a,s=Fo(n)!==l||Fo(a)!==o;return s&&(n=l,a=o),{width:n,height:a,$:s}}function xc(e){return wn(e)?e:e.contextElement}function vr(e){const t=xc(e);if(!_a(t))return Nn(1);const n=t.getBoundingClientRect(),{width:a,height:r,$:l}=fm(t);let o=(l?Fo(n.width):n.width)/a,s=(l?Fo(n.height):n.height)/r;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}const f$=Nn(0);function pm(e){const t=Rt(e);return!_c()||!t.visualViewport?f$:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function p$(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Rt(e)}function Ba(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),l=xc(e);let o=Nn(1);t&&(a?wn(a)&&(o=vr(a)):o=vr(e));const s=p$(l,n,a)?pm(l):Nn(0);let i=(r.left+s.x)/o.x,c=(r.top+s.y)/o.y,d=r.width/o.x,f=r.height/o.y;if(l&&a){const p=Rt(l),v=wn(a)?Rt(a):a;let m=p,g=yu(m);for(;g&&v!==m;){const _=vr(g),y=g.getBoundingClientRect(),x=kn(g),S=y.left+(g.clientLeft+parseFloat(x.paddingLeft))*_.x,A=y.top+(g.clientTop+parseFloat(x.paddingTop))*_.y;i*=_.x,c*=_.y,d*=_.x,f*=_.y,i+=S,c+=A,m=Rt(g),g=yu(m)}}return No({width:d,height:f,x:i,y:c})}function Ms(e,t){const n=Os(e).scrollLeft;return t?t.left+n:Ba(Jn(e)).left+n}function vm(e,t){const n=e.getBoundingClientRect(),a=n.left+t.scrollLeft-Ms(e,n),r=n.top+t.scrollTop;return{x:a,y:r}}function v$(e){let{elements:t,rect:n,offsetParent:a,strategy:r}=e;const l=r==="fixed",o=Jn(a),s=t?Ps(t.floating):!1;if(a===o||s&&l)return n;let i={scrollLeft:0,scrollTop:0},c=Nn(1);const d=Nn(0),f=_a(a);if((f||!l)&&((Va(a)!=="body"||Ds(o))&&(i=Os(a)),f)){const v=Ba(a);c=vr(a),d.x=v.x+a.clientLeft,d.y=v.y+a.clientTop}const p=o&&!f&&!l?vm(o,i):Nn(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-i.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-i.scrollTop*c.y+d.y+p.y}}function h$(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function m$(e){const t=Os(e),n=e.ownerDocument.body,a=Bn(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=Bn(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let l=-t.scrollLeft+Ms(e);const o=-t.scrollTop;return kn(n).direction==="rtl"&&(l+=Bn(e.clientWidth,n.clientWidth)-a),{width:a,height:r,x:l,y:o}}const y$=25;function g$(e,t,n){n===void 0&&(n="viewport");const a=n==="layoutViewport",r=Rt(e),l=Jn(e),o=r.visualViewport;let s=l.clientWidth,i=l.clientHeight,c=0,d=0;if(o){const p=!_c()||t==="fixed";a?p||(c=-o.offsetLeft,d=-o.offsetTop):(s=o.width,i=o.height,p&&(c=o.offsetLeft,d=o.offsetTop))}if(Ms(l)<=0){const p=l.ownerDocument,v=p.body,m=getComputedStyle(v),g=p.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,_=Math.abs(l.clientWidth-v.clientWidth-g),y=getComputedStyle(l).scrollbarGutter==="stable both-edges"?_/2:_;y<=y$&&(s-=y)}return{width:s,height:i,x:c,y:d}}function b$(e,t){const n=Ba(e,!0,t==="fixed"),a=n.top+e.clientTop,r=n.left+e.clientLeft,l=vr(e),o=e.clientWidth*l.x,s=e.clientHeight*l.y,i=r*l.x,c=a*l.y;return{width:o,height:s,x:i,y:c}}function Vf(e,t,n){let a;if(t==="viewport"||t==="layoutViewport")a=g$(e,n,t);else if(t==="document")a=m$(Jn(e));else if(wn(t))a=b$(t,n);else{const r=pm(e);a={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return No(a)}function _$(e,t){const n=t.get(e);if(n)return n;let a=wl(e,[],!1).filter(s=>wn(s)&&Va(s)!=="body"),r=null;const l=kn(e).position==="fixed";let o=l?Fa(e):e;for(;wn(o)&&!xl(o);){const s=kn(o),i=bc(o),c=r?r.position:l?"fixed":"";!i&&(c==="fixed"||c==="absolute"&&s.position==="static")?a=a.filter(f=>f!==o):r=s,o=Fa(o)}return t.set(e,a),a}function x$(e){let{element:t,boundary:n,rootBoundary:a,strategy:r}=e;const o=[...n==="clippingAncestors"?Ps(t)?[]:_$(t,this._c):[].concat(n),a],s=Vf(t,o[0],r);let i=s.top,c=s.right,d=s.bottom,f=s.left;for(let p=1;p{s(!1,1e-7)},1e3)}U=!1}try{a=new IntersectionObserver(H,{...J,root:l.ownerDocument})}catch{a=new IntersectionObserver(H,J)}a.observe(e)}const i=Rt(e),c=()=>s(n);return i.addEventListener("resize",c),s(!0),()=>{i.removeEventListener("resize",c),o()}}function A$(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:r=!0,ancestorResize:l=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:i=!1}=a,c=xc(e),d=r||l?[...c?wl(c):[],...t?wl(t):[]]:[];d.forEach(y=>{r&&y.addEventListener("scroll",n),l&&y.addEventListener("resize",n)});const f=c&&s?E$(c,n,l):null;let p=-1,v=null;o&&(v=new ResizeObserver(y=>{let[x]=y;x&&x.target===c&&v&&t&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!i&&v.observe(c),t&&v.observe(t));let m,g=i?Ba(e):null;i&&_();function _(){const y=Ba(e);g&&!mm(g,y)&&n(),g=y,m=requestAnimationFrame(_)}return n(),()=>{var y;d.forEach(x=>{r&&x.removeEventListener("scroll",n),l&&x.removeEventListener("resize",n)}),f?.(),(y=v)==null||y.disconnect(),v=null,i&&cancelAnimationFrame(m)}}const D$=r$,P$=l$,jf=t$,O$=s$,M$=n$,T$=e$,R$=o$,q$=(e,t,n)=>{const a=new Map,r=n??{},l={...S$,...r.platform,_c:a};return Xk(e,t,{...r,platform:l})};function I$(e){return e!=null&&typeof e=="object"&&"$el"in e}function gu(e){if(I$(e)){const t=e.$el;return gc(t)&&Va(t)==="#comment"?null:t}return e}function ar(e){return typeof e=="function"?e():u(e)}function F$(e){return{name:"arrow",options:e,fn(t){const n=gu(ar(e.element));return n==null?{}:T$({element:n,padding:e.padding}).fn(t)}}}function ym(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Uf(e,t){const n=ym(e);return Math.round(t*n)/n}function B$(e,t,n){n===void 0&&(n={});const a=n.whileElementsMounted,r=w(()=>{var U;return(U=ar(n.open))!=null?U:!0}),l=w(()=>ar(n.middleware)),o=w(()=>{var U;return(U=ar(n.placement))!=null?U:"bottom"}),s=w(()=>{var U;return(U=ar(n.strategy))!=null?U:"absolute"}),i=w(()=>{var U;return(U=ar(n.transform))!=null?U:!0}),c=w(()=>gu(e.value)),d=w(()=>gu(t.value)),f=T(0),p=T(0),v=T(s.value),m=T(o.value),g=es({}),_=T(!1),y=w(()=>{const U={position:v.value,left:"0",top:"0"};if(!d.value)return U;const H=Uf(d.value,f.value),k=Uf(d.value,p.value);return i.value?{...U,transform:"translate("+H+"px, "+k+"px)",...ym(d.value)>=1.5&&{willChange:"transform"}}:{position:v.value,left:H+"px",top:k+"px"}});let x;function S(){if(c.value==null||d.value==null)return;const U=r.value;q$(c.value,d.value,{middleware:l.value,placement:o.value,strategy:s.value}).then(H=>{f.value=H.x,p.value=H.y,v.value=H.strategy,m.value=H.placement,g.value=H.middlewareData,_.value=U!==!1})}function A(){typeof x=="function"&&(x(),x=void 0)}function V(){if(A(),a===void 0){S();return}if(c.value!=null&&d.value!=null){x=a(c.value,d.value,S);return}}function J(){r.value||(_.value=!1)}return Fe([l,o,s,r],S,{flush:"sync"}),Fe([c,d],V,{flush:"sync"}),Fe(r,J,{flush:"sync"}),Du()&&yp(A),{x:Ka(f),y:Ka(p),strategy:Ka(v),placement:Ka(m),middlewareData:Ka(g),isPositioned:Ka(_),floatingStyles:y,update:S}}const gm={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},[vT,N$]=xt("PopperContent");var V$=ee({inheritAttrs:!1,__name:"PopperContent",props:tv({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}},{...gm}),emits:["placed"],setup(e,{emit:t}){const n=e,a=t,r=lm(),{forwardRef:l,currentElement:o}=Ke(),s=T(),i=T(),{width:c,height:d}=Pw(i),f=w(()=>n.side+(n.align!=="center"?`-${n.align}`:"")),p=w(()=>typeof n.collisionPadding=="number"?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),v=w(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),m=w(()=>({padding:p.value,boundary:v.value.filter(Vk),altBoundary:v.value.length>0})),g=w(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),_=ox(()=>[D$({mainAxis:n.sideOffset+d.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&jf({...m.value,...g.value}),n.avoidCollisions&&P$({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky==="partial"?R$():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&jf({...m.value,...g.value}),O$({...m.value,apply:({elements:D,rects:N,availableWidth:W,availableHeight:B})=>{const{width:Q,height:ne}=N.reference,ce=D.floating.style;ce.setProperty("--reka-popper-available-width",`${W}px`),ce.setProperty("--reka-popper-available-height",`${B}px`),ce.setProperty("--reka-popper-anchor-width",`${Q}px`),ce.setProperty("--reka-popper-anchor-height",`${ne}px`)}}),i.value&&F$({element:i.value,padding:n.arrowPadding}),Lk({arrowWidth:c.value,arrowHeight:d.value}),n.hideWhenDetached&&M$({strategy:"referenceHidden",...m.value})]),y=w(()=>n.reference??r.anchor.value),{floatingStyles:x,placement:S,isPositioned:A,middlewareData:V}=B$(y,s,{strategy:n.positionStrategy,placement:f,whileElementsMounted:(...D)=>A$(...D,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy==="always"}),middleware:_}),J=w(()=>hu(S.value)[0]),U=w(()=>hu(S.value)[1]);Up(()=>{A.value&&a("placed")});const H=w(()=>{const D=V.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&D}),k=T("");Xt(()=>{o.value&&(k.value=window.getComputedStyle(o.value).zIndex)});const I=w(()=>V.value.arrow?.x??0),G=w(()=>V.value.arrow?.y??0);return N$({placedSide:J,onArrowChange:D=>i.value=D,arrowX:I,arrowY:G,shouldHideArrow:H}),(D,N)=>(h(),$("div",{ref_key:"floatingRef",ref:s,"data-reka-popper-content-wrapper":"",style:Fn({...u(x),transform:u(A)?u(x).transform:"translate(0, -200%)",minWidth:"max-content",zIndex:k.value,"--reka-popper-transform-origin":[u(V).transformOrigin?.x,u(V).transformOrigin?.y].join(" "),...u(V).hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}})},[z(u(Ye),Ve({ref:u(l)},D.$attrs,{"as-child":n.asChild,as:D.as,"data-side":J.value,"data-align":U.value,style:{animation:u(A)?void 0:"none"}}),{default:F(()=>[he(D.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","style"])],4))}}),bm=V$;const wc=["day","month","year"],kc=["hour","minute","second","dayPeriod"],_m=[...wc,...kc];function L$(e){return wc.includes(e)}function xm(e){return _m.includes(e)}const j$=["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"],U$=["year","month","day"],Si={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 z$(e){if(zf(e))return Si[e];{const t=G$(e);return zf(t)?Si[t]:Si.en}}function Ei(e,t,n){return H$(e)?z$(n)[e]:W$(e)?t:K$(e)?"––":""}function zf(e){return j$.includes(e)}function H$(e){return U$.includes(e)}function K$(e){return e==="hour"||e==="minute"||e==="second"}function W$(e){return e==="era"||e==="dayPeriod"}function G$(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}const Y$=["hour","minute","second"];function bu(e){return Object.fromEntries(kc.map(t=>t==="dayPeriod"?[t,e.formatter.dayPeriod(zt(e.value))]:[t,e.value[t]]))}function Hf(e){const{formatter:t}=e,n=wc.map(a=>[a,e.value[a]]);if("hour"in e.value){const a=bu({value:e.value,formatter:t});return{...Object.fromEntries(n),...a}}return Object.fromEntries(n)}function J$(e){return Object.fromEntries(kc.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 Z$(e){const t=_m.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"?!Y$.includes(n)&&n!=="dayPeriod":!0);return Object.fromEntries(t)}function Q$(e){const{segmentValues:t,formatter:n,locale:a}=e;function r(o){if("hour"in t){const s=t[o];return s!==null?o==="day"?n.part(e.dateRef.set({[o]:s,month:t.month??1}),o,{hourCycle:bl(e.hourCycle)}):n.part(e.dateRef.set({[o]:s}),o,{hourCycle:bl(e.hourCycle)}):Ei(o,"",a.value)}else{if(L$(o)){const s=t[o];return s!==null?o==="day"?n.part(e.dateRef.set({[o]:s,month:t.month??1}),o):n.part(e.dateRef.set({[o]:s}),o):Ei(o,"",a.value)}return""}}return Object.keys(t).reduce((o,s)=>{if(!xm(s))return o;if("hour"in t&&s==="dayPeriod"){const i=t[s];i!==null?o[s]=i:o[s]=Ei(s,"AM",a.value)}else o[s]=r(s);return o},{})}function X$(e){const{granularity:t,formatter:n,contentObj:a,hideTimeZone:r,hourCycle:l,isTimeValue:o}=e;return n.toParts(e.dateRef,$w(t,l,o)).map(c=>["literal","timeZoneName",null].includes(c.type)||!xm(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"&&(!gl(e.dateRef)||r)||(!gl(e.dateRef)||r)&&c.part==="literal"&&["[","]"].includes(c.value.trim())))}function wm(e){const t=Q$(e),n=X$({contentObj:t,...e});return{obj:t,arr:n}}function Dn(e){const t=Or();return e===t.ARROW_RIGHT||e===t.ARROW_LEFT}function Da(e){return!Number.isNaN(Number.parseInt(e))}function ea(e){const t=Or();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)||Da(e))}function Kf(e){return Array.from(e.querySelectorAll("[data-reka-date-field-segment]")).filter(t=>t.getAttribute("data-reka-date-field-segment")!=="literal")}function Wf(e){return Array.from(e.querySelectorAll("[data-reka-time-field-segment]")).filter(t=>t.getAttribute("data-reka-time-field-segment")!=="literal")}const e2=/^\d$/;function xa(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 t2(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,s=1,i=da(l),c=a?"Empty":`${o}`;return{...xa(e),"aria-label":"day,","aria-valuemin":s,"aria-valuemax":i,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":a?"":void 0}}function n2(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,s=1,i=12,c=r?"Empty":`${o} - ${a.fullMonth(zt(l))}`;return{...xa(e),"aria-label":"month, ",contenteditable:!0,"aria-valuemin":s,"aria-valuemax":i,"aria-valuenow":o,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function a2(e){const{segmentValues:t,placeholder:n}=e,a=t.year===null,r=t.year?n.set({year:t.year}):n,l=1,o=9999,s=r.year,i=a?"Empty":`${s}`;return{...xa(e),"aria-label":"year, ","aria-valuemin":l,"aria-valuemax":o,"aria-valuenow":s,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function r2(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,s=n===12?12:23,i=l.hour,c=r?"Empty":`${i} ${t.dayPeriod??""}`;return{...xa(e),"aria-label":"hour, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":i,"aria-valuetext":c,"data-placeholder":r?"":void 0}}function l2(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,s=59,i=a?"Empty":`${l}`;return{...xa(e),"aria-label":"minute, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":l,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function o2(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,s=59,i=a?"Empty":`${l}`;return{...xa(e),"aria-label":"second, ","aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":l,"aria-valuetext":i,"data-placeholder":a?"":void 0}}function s2(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{...xa(e),inputmode:"text","aria-label":"AM/PM","aria-valuemin":n,"aria-valuemax":a,"aria-valuenow":r,"aria-valuetext":l}}function i2(e){return{"aria-hidden":!0,"data-segment":"literal"}}function u2(e){return{role:"textbox","aria-label":"timezone, ","data-readonly":!0,"data-segment":"timeZoneName",tabindex:e.disabled?void 0:0,style:"caret-color: transparent;"}}function c2(e){const{segmentValues:t,placeholder:n}=e,a=0,r=0,l=0,o="era"in t?t.era:n.era;return{...xa(e),"aria-label":"era","aria-valuemin":a,"aria-valuemax":r,"aria-valuenow":l,"aria-valuetext":o}}const d2={day:{attrs:t2},month:{attrs:n2},year:{attrs:a2},hour:{attrs:r2},minute:{attrs:l2},second:{attrs:o2},dayPeriod:{attrs:s2},literal:{attrs:i2},timeZoneName:{attrs:u2},era:{attrs:c2}};function km(e){const t=Or();function n({e:k,part:I,dateRef:G,prevValue:D}){const N=e.step.value[I]??1,W=k.key===t.ARROW_UP?N:-N,B=0,Q=59;if(D===null)return W>0?B:Q;const ne=[I,W];return G.set({[I]:D}).cycle(...ne)[I]}function a(k){if(e.hasLeftFocus.value=!1,k===null)return k;const I=k.toString();return I.length===1?(e.modelValue.value=void 0,null):Number.parseInt(I.slice(0,-1))}function r({e:k,part:I,dateRef:G,prevValue:D}){const N=e.step.value[I]??1,W=k.key===t.ARROW_UP?N:-N;if(D===null)return G[I];if(I==="hour"&&"hour"in G){const Q=[I,W];return G.set({[I]:D}).cycle(...Q)[I]}const B=[I,W];return I==="day"?G.set({[I]:D,month:e.segmentValues.value.month??1}).cycle(...B)[I]:G.set({[I]:D}).cycle(...B)[I]}function l(k,I,G){let D=!1;const N=Math.floor(k/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,G=null),G===null)return I===0?(e.lastKeyZero.value=!0,{value:null,moveToNext:D}):((e.lastKeyZero.value||I>N)&&(D=!0),e.lastKeyZero.value=!1,{value:I,moveToNext:D});const W=G.toString().length,B=Number.parseInt(G.toString()+I.toString());return W===2||B>k?((I>N||B>k)&&(D=!0),{value:I,moveToNext:D}):(D=!0,{value:B,moveToNext:D})}function o(k,I){let D=!1;const N=Math.floor(59/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,I=null),I===null)return k===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:D}):((e.lastKeyZero.value||k>N)&&(D=!0),e.lastKeyZero.value=!1,{value:k,moveToNext:D});const W=I.toString().length,B=Number.parseInt(I.toString()+k.toString());return W===2||B>59?(k>N&&(D=!0),{value:k,moveToNext:D}):(D=!0,{value:B,moveToNext:D})}function s(k,I,G){let D=!1;const N=Math.floor(k/10);if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,e.lastKeyZero.value=!1,G=null),G===null)return I===0?(e.lastKeyZero.value=!0,{value:0,moveToNext:D}):((e.lastKeyZero.value||I>N)&&(D=!0),e.lastKeyZero.value=!1,{value:I,moveToNext:D});const W=G.toString().length,B=Number.parseInt(G.toString()+I.toString());return W===2||B>k?(I>N&&(D=!0),{value:I,moveToNext:D}):(D=!0,{value:B,moveToNext:D})}function i(k,I){let G=!1;if(e.hasLeftFocus.value&&(e.hasLeftFocus.value=!1,I=null),I===null)return{value:k===0?1:k,moveToNext:G};const D=I.toString()+k.toString();return D.length>4?{value:k===0?1:k,moveToNext:G}:(D.length===4&&(G=!0),{value:Number.parseInt(D),moveToNext:G})}const c=w(()=>d2[e.part]?.attrs({disabled:e.disabled.value,placeholder:e.placeholder.value,hourCycle:e.hourCycle,segmentValues:e.segmentValues.value,formatter:e.formatter})??{});function d(k){if(!ea(k.key)||Dn(k.key))return;const I=e.segmentValues.value.day;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.day=r({e:k,part:"day",dateRef:e.placeholder.value,prevValue:I});return}if(Da(k.key)){const G=Number.parseInt(k.key),D=e.segmentValues.value.month,N=D?da(e.placeholder.value.set({month:D})):31,{value:W,moveToNext:B}=l(N,G,I);e.segmentValues.value.day=W,B&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.day=a(I))}function f(k){if(!ea(k.key)||Dn(k.key))return;const I=e.segmentValues.value.month;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.month=r({e:k,part:"month",dateRef:e.placeholder.value,prevValue:I});return}if(Da(k.key)){const G=Number.parseInt(k.key),{value:D,moveToNext:N}=l(12,G,I);e.segmentValues.value.month=D,N&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.month=a(I))}function p(k){if(!ea(k.key)||Dn(k.key))return;const I=e.segmentValues.value.year;if(k.key===t.ARROW_DOWN||k.key===t.ARROW_UP){e.segmentValues.value.year=r({e:k,part:"year",dateRef:e.placeholder.value,prevValue:I});return}if(Da(k.key)){const G=Number.parseInt(k.key),{value:D,moveToNext:N}=i(G,I);e.segmentValues.value.year=D,N&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.year=a(I))}function v(k){const I=new Yt(k,{hour:"numeric"}).resolvedOptions().hourCycle;return I==="h11"||I==="h12"}function m(k){const I=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("hour"in I)||!("hour"in e.segmentValues.value))return;const G=e.segmentValues.value.hour;if(k.key===t.ARROW_UP||k.key===t.ARROW_DOWN){const D=r({e:k,part:"hour",dateRef:e.placeholder.value,prevValue:G});e.segmentValues.value.hour=D,"dayPeriod"in e.segmentValues.value&&D!==null&&(e.segmentValues.value.dayPeriod=D>=12?"PM":"AM");return}if(Da(k.key)){const D=Number.parseInt(k.key),N=e.hourCycle!==void 0?e.hourCycle===12:v(e.formatter.getLocale()),W=N?12:24;let B=G;N&&G!==null&&(B=G%12===0?0:G>12?G-12:G);const{value:Q,moveToNext:ne}=s(W,D,B);let ce=Q;if(N&&Q!==null){const te=e.segmentValues.value.dayPeriod||"AM";Q===12?ce=te==="AM"?0:12:ce=te==="PM"?Q+12:Q}e.segmentValues.value.hour=ce,ne&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.hour=a(G))}function g(k){const I=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("minute"in I)||!("minute"in e.segmentValues.value))return;const G=e.segmentValues.value.minute;if((k.key===t.ARROW_UP||k.key===t.ARROW_DOWN)&&(e.segmentValues.value.minute=n({e:k,part:"minute",dateRef:e.placeholder.value,prevValue:G})),Da(k.key)){const D=Number.parseInt(k.key),{value:N,moveToNext:W}=o(D,G);e.segmentValues.value.minute=N,W&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.minute=a(G))}function _(k){const I=e.placeholder.value;if(!ea(k.key)||Dn(k.key)||!("second"in I)||!("second"in e.segmentValues.value))return;const G=e.segmentValues.value.second;if((k.key===t.ARROW_UP||k.key===t.ARROW_DOWN)&&(e.segmentValues.value.second=n({e:k,part:"second",dateRef:e.placeholder.value,prevValue:G})),Da(k.key)){const D=Number.parseInt(k.key),{value:N,moveToNext:W}=o(D,G);e.segmentValues.value.second=N,W&&e.focusNext()}k.key===t.BACKSPACE&&(e.hasLeftFocus.value=!1,e.segmentValues.value.second=a(G))}function y(k){if(!((!ea(k.key)||Dn(k.key))&&k.key!=="a"&&k.key!=="p"||!("hour"in e.placeholder.value)||!("dayPeriod"in e.segmentValues.value))){if(k.key===t.ARROW_UP||k.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(k.key)&&e.segmentValues.value.dayPeriod!=="AM"){e.segmentValues.value.dayPeriod="AM",e.segmentValues.value.hour=e.segmentValues.value.hour-12;return}["p","P"].includes(k.key)&&e.segmentValues.value.dayPeriod!=="PM"&&(e.segmentValues.value.dayPeriod="PM",e.segmentValues.value.hour=e.segmentValues.value.hour+12)}}function x(k){e.disabled.value&&k.preventDefault()}function S(k){if(k.isComposing||k.key==="Process")return;const I=e.disabled.value,G=e.readonly.value;if(I||G)return;if(k.key!==t.TAB&&k.preventDefault(),{day:d,month:f,year:p,hour:m,minute:g,second:_,dayPeriod:y,timeZoneName:()=>{}}[e.part](k),![t.ARROW_LEFT,t.ARROW_RIGHT].includes(k.key)&&k.key!==t.TAB&&k.key!==t.SHIFT&&ea(k.key)&&Object.values(e.segmentValues.value).every(N=>N!==null)){const N={...e.segmentValues.value},W=e.placeholder.value.set(N);e.modelValue.value=W.copy()}}function A(){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=si(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=si(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=si(e.segmentValues.value.second,0,59,e.step.value.second)),Object.values(e.segmentValues.value).every(k=>k!==null))){const k=e.placeholder.value.set({...e.segmentValues.value});e.modelValue.value=k.copy()}}let V=null;function J(k){k.isComposing||k.preventDefault()}function U(k){const I=k.target;V=Array.from(I.childNodes,G=>({node:G,value:G.nodeValue}))}function H(k){const I=k.target,G=V;if(V=null,G){for(const{node:N,value:W}of G)N.nodeValue=W;I.replaceChildren(...G.map(N=>N.node))}const D=k.data;if(D)for(const N of D){if(!e2.test(N))continue;const W=ft();if(!(W instanceof HTMLElement))break;W.dispatchEvent(new KeyboardEvent("keydown",{key:N,bubbles:!0,cancelable:!0}))}}return{handleSegmentClick:x,handleSegmentKeydown:S,handleSegmentBeforeInput:J,handleSegmentCompositionStart:U,handleSegmentCompositionEnd:H,handleSegmentFocusOut:A,attributes:c}}function f2(e){function t(l){return Array.isArray(e.date.value)?e.date.value.some(o=>pa(o,l)):e.date.value?pa(e.date.value,l):!1}const n=w(()=>{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=w(()=>Array.isArray(e.date.value)?e.date.value.length>0:!!e.date.value),r=w(()=>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 p2(e,t){const n=t(e),a=n.compare(e),r={};return a>=7&&(r.day=1),a>=da(e)&&(r.month=1),n.set({...r})}function v2(e,t){const n=t(e),a=e.compare(n),r={};return a>=7&&(r.day=35),a>=da(e)&&(r.month=13),n.set({...r})}function h2(e,t){return t(e)}function m2(e,t){return t(e)}function y2(e){const t=dc(e.locale.value),n=w(()=>{const y={calendar:e.placeholder.value.calendar.identifier};return e.placeholder.value.calendar.identifier==="gregory"&&e.placeholder.value.era==="BC"&&(y.era="short"),y}),a=T(Sa({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})),r=w(()=>a.value.map(y=>y.value));function l(y){return!r.value.some(x=>of(y,x))}const o=y=>{if(!e.maxValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const x=a.value.at(-1).value;if(!y&&!e.nextPage.value){const A=x.add({months:1}).set({day:1});return yi(A,e.maxValue.value)}const S=p2(x,y||e.nextPage.value);return yi(S,e.maxValue.value)},s=y=>{if(!e.minValue.value||!a.value.length)return!1;if(e.disabled.value)return!0;const x=a.value[0].value;if(!y&&!e.prevPage.value){const A=x.subtract({months:1}).set({day:35});return ia(A,e.minValue.value)}const S=v2(x,y||e.prevPage.value);return ia(S,e.minValue.value)};function i(y){return!!(e.isDateDisabled?.(y)||e.disabled.value||e.maxValue.value&&yi(y,e.maxValue.value)||e.minValue.value&&ia(y,e.minValue.value))}const c=y=>!!e.isDateUnavailable?.(y),d=w(()=>a.value.length?a.value[0].rows[0].map(y=>t.dayOfWeek(zt(y),e.weekdayFormat.value)):[]),f=y=>{const x=a.value[0].value;if(!y&&!e.nextPage.value){const J=x.add({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),U=Sa({dateObj:J,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=U,e.placeholder.value=U[0].value.set({day:1});return}const S=h2(x,y||e.nextPage.value),A=Sa({dateObj:S,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=A;const V={};if(!y){const J=A[0].value.compare(x);J>=da(x)&&(V.day=1),J>=365&&(V.month=1)}e.placeholder.value=A[0].value.set({...V})},p=y=>{const x=a.value[0].value;if(!y&&!e.prevPage.value){const J=x.subtract({months:e.pagedNavigation.value?e.numberOfMonths.value:1}),U=Sa({dateObj:J,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=U,e.placeholder.value=U[0].value.set({day:1});return}const S=m2(x,y||e.prevPage.value),A=Sa({dateObj:S,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value});a.value=A;const V={};if(!y){const J=x.compare(A[0].value);J>=da(x)&&(V.day=1),J>=365&&(V.month=1)}e.placeholder.value=A[0].value.set({...V})};Fe(e.placeholder,y=>{r.value.some(x=>of(x,y))||(a.value=Sa({dateObj:y,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value}))}),Fe([e.locale,e.weekStartsOn,e.fixedWeeks,e.numberOfMonths],()=>{a.value=Sa({dateObj:e.placeholder.value,weekStartsOn:e.weekStartsOn.value,locale:e.locale.value,fixedWeeks:e.fixedWeeks.value,numberOfMonths:e.numberOfMonths.value})});const v=w(()=>{if(!a.value.length)return"";if(e.locale.value!==t.getLocale()&&t.setLocale(e.locale.value),a.value.length===1){const H=a.value[0].value;return`${t.fullMonthAndYear(zt(H),n.value)}`}const y=zt(a.value[0].value),x=zt(a.value.at(-1).value),S=t.fullMonth(y,n.value),A=t.fullMonth(x,n.value),V=t.fullYear(y,n.value),J=t.fullYear(x,n.value);return V===J?`${S} - ${A} ${J}`:`${S} ${V} - ${A} ${J}`}),m=w(()=>`${e.calendarLabel.value??"Event Date"}, ${v.value}`),g=w(()=>!(i(e.placeholder.value)||c(e.placeholder.value)||l(e.placeholder.value))),_=w(()=>{for(const y of a.value){if(e.minValue.value&&ia(y.value,e.minValue.value))continue;const x=da(y.value),S=e.minValue.value&&Xu(e.minValue.value,y.value)?e.minValue.value.day:1;for(let A=S;A<=x;A++){const V=y.value.set({day:A});if(!(i(V)||c(V)))return V}}});return{isDateDisabled:i,isDateUnavailable:c,isNextButtonDisabled:o,isPrevButtonDisabled:s,grid:a,weekdays:d,visibleView:r,isOutsideVisibleView:l,formatter:t,nextPage:f,prevPage:p,headingValue:v,fullCalendarLabel:m,isPlaceholderFocusable:g,firstFocusableDate:_}}const g2={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"}},b2={role:"heading","aria-level":"2"},[Tr,_2]=xt("CalendarRoot");var x2=ee({__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:s,weekdayFormat:i,fixedWeeks:c,multiple:d,minValue:f,maxValue:p,numberOfMonths:v,preventDeselect:m,isDateDisabled:g,isDateUnavailable:_,calendarLabel:y,defaultValue:x,nextPage:S,prevPage:A,dir:V,locale:J,disableDaysOutsideCurrentView:U}=Lt(n),{primitiveElement:H,currentElement:k}=Cr(),I=$s(J),G=Na(V),D=w(()=>n.weekStartsOn??Gh(I.value)),N=bt(n,"modelValue",a,{defaultValue:x.value,passive:n.modelValue===void 0}),W=cc({defaultPlaceholder:n.placeholder,defaultValue:N.value,locale:n.locale}),B=bt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??W.copy(),passive:n.placeholder===void 0});function Q(M){B.value=M.copy()}const{fullCalendarLabel:ne,headingValue:ce,isDateDisabled:te,isDateUnavailable:ie,isNextButtonDisabled:le,isPrevButtonDisabled:re,weekdays:we,isOutsideVisibleView:ue,nextPage:Ce,prevPage:pe,formatter:Z,grid:ve,isPlaceholderFocusable:X,firstFocusableDate:de}=y2({locale:I,placeholder:B,weekStartsOn:D,fixedWeeks:c,numberOfMonths:v,minValue:f,maxValue:p,disabled:r,weekdayFormat:i,pagedNavigation:s,isDateDisabled:g.value,isDateUnavailable:_.value,calendarLabel:y,nextPage:S,prevPage:A}),{isInvalid:ge,isDateSelected:b,hasSelectedDate:C,isSelectedDateDisabled:E}=f2({date:N,isDateDisabled:te,isDateUnavailable:ie});Fe(N,M=>{if(Array.isArray(M)&&M.length){const K=M.at(-1);K&&!dr(B.value,K)&&Q(K)}else!Array.isArray(M)&&M&&!dr(B.value,M)&&Q(M)});function Y(M){if(d.value){if(!N.value)N.value=[M.copy()];else if(Array.isArray(N.value)){if(N.value.findIndex(oe=>pa(oe,M))===-1)N.value=[...N.value,M];else if(!m.value){const oe=N.value.filter(se=>!pa(se,M));if(!oe.length){B.value=M.copy(),N.value=void 0;return}N.value=oe.map(se=>se.copy())}}}else{if(!N.value){N.value=M.copy();return}!m.value&&dr(N.value,M)?(B.value=M.copy(),N.value=void 0):N.value=M.copy()}}return _t(()=>{o.value&&Kh(k.value)}),_2({isDateUnavailable:ie,dir:G,isDateDisabled:te,locale:I,formatter:Z,modelValue:N,placeholder:B,disabled:r,initialFocus:o,pagedNavigation:s,grid:ve,weekDays:we,weekStartsOn:D,weekdayFormat:i,fixedWeeks:c,multiple:d,numberOfMonths:v,readonly:l,preventDeselect:m,fullCalendarLabel:ne,headingValue:ce,isInvalid:ge,isDateSelected:b,isNextButtonDisabled:le,isPrevButtonDisabled:re,isOutsideVisibleView:ue,nextPage:Ce,prevPage:pe,parentElement:k,onPlaceholderChange:Q,onDateChange:Y,disableDaysOutsideCurrentView:U,minValue:f,maxValue:p,isPlaceholderFocusable:X,firstFocusableDate:de,hasSelectedDate:C,isSelectedDateDisabled:E}),(M,K)=>(h(),j(u(Ye),{ref_key:"primitiveElement",ref:H,as:M.as,"as-child":M.asChild,"aria-label":u(ne),"data-readonly":u(l)?"":void 0,"data-disabled":u(r)?"":void 0,"data-invalid":u(ge)?"":void 0,dir:u(G)},{default:F(()=>[he(M.$slots,"default",{date:u(B),grid:u(ve),weekDays:u(we),weekStartsOn:D.value,locale:u(I),fixedWeeks:u(c),modelValue:u(N)}),O("div",g2,[O("div",b2,R(u(ne)),1)])]),_:3},8,["as","as-child","aria-label","data-readonly","data-disabled","data-invalid","dir"]))}}),w2=x2,k2=ee({__name:"CalendarCell",props:{date:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"td"}},setup(e){const t=Tr();return(n,a)=>(h(),j(u(Ye),{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:F(()=>[he(n.$slots,"default")]),_:3},8,["as","as-child","aria-selected","aria-disabled","data-disabled"]))}}),$2=k2,C2=ee({__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=Or(),a=Tr(),{primitiveElement:r}=Cr(),l=w(()=>t.day.day.toLocaleString(a.locale.value)),o=w(()=>a.formatter.custom(zt(t.day),{weekday:"long",month:"long",day:"numeric",year:"numeric"})),s=w(()=>a.isDateUnavailable?.(t.day)??!1),i=w(()=>Dx(t.day,ln())),c=w(()=>!Xu(t.day,t.month)),d=w(()=>a.isOutsideVisibleView(t.day)),f=w(()=>a.isDateDisabled(t.day)||a.disableDaysOutsideCurrentView.value&&c.value),p=w(()=>c.value||f.value?!1:!a.disabled.value&&a.isPlaceholderFocusable.value&&pa(t.day,a.placeholder.value)?!0:(!a.hasSelectedDate.value||a.isSelectedDateDisabled.value)&&!a.isPlaceholderFocusable.value?a.firstFocusableDate.value&&pa(t.day,a.firstFocusableDate.value):!1),v=w(()=>a.isDateSelected(t.day));function m(y){a.readonly.value||a.isDateDisabled(y)||a.isDateUnavailable?.(y)||a.onDateChange(y)}function g(){f.value||m(t.day)}function _(y){if(f.value)return;y.preventDefault(),y.stopPropagation();const x=a.parentElement.value,S=7,A=a.dir.value==="rtl"?-1:1;switch(y.code){case n.ARROW_RIGHT:V(t.day,A);break;case n.ARROW_LEFT:V(t.day,-A);break;case n.ARROW_UP:V(t.day,-S);break;case n.ARROW_DOWN:V(t.day,S);break;case n.ENTER:case n.SPACE_CODE:m(t.day)}function V(J,U){const H=J.add({days:U});if(a.minValue.value&&H.compare(a.minValue.value)<0||a.maxValue.value&&H.compare(a.maxValue.value)>0)return;const k=x.querySelector(`[data-value='${H.toString()}']:not([data-outside-view])`);if(!k){if(U>0){if(a.isNextButtonDisabled())return;a.nextPage()}else{if(a.isPrevButtonDisabled())return;a.prevPage()}ze(()=>{V(J,U)});return}if(k&&k.hasAttribute("data-disabled"))return V(H,U);a.onPlaceholderChange(H),k?.focus()}}return(y,x)=>(h(),j(u(Ye),{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||s.value?!0:void 0,"data-selected":v.value?!0:void 0,"data-value":y.day.toString(),"data-disabled":f.value?"":void 0,"data-unavailable":s.value?"":void 0,"data-today":i.value?"":void 0,"data-outside-view":c.value?"":void 0,"data-outside-visible-view":d.value?"":void 0,"data-focused":p.value?"":void 0,tabindex:p.value?0:c.value||f.value?void 0:-1,onClick:g,onKeydown:[yr(_,["up","down","left","right","space","enter"]),x[0]||(x[0]=yr(pt(()=>{},["prevent"]),["enter"]))]},{default:F(()=>[he(y.$slots,"default",{dayValue:l.value,disabled:f.value,today:i.value,selected:v.value,outsideView:c.value,outsideVisibleView:d.value,unavailable:s.value},()=>[$e(R(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"]))}}),S2=C2,E2=ee({__name:"CalendarGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"table"}},setup(e){const t=e,n=Tr(),a=w(()=>n.disabled.value?!0:void 0),r=w(()=>n.readonly.value?!0:void 0);return(l,o)=>(h(),j(u(Ye),Ve(t,{tabindex:"-1",role:"application","aria-readonly":r.value,"aria-disabled":a.value,"data-readonly":r.value&&"","data-disabled":a.value&&""}),{default:F(()=>[he(l.$slots,"default")]),_:3},16,["aria-readonly","aria-disabled","data-readonly","data-disabled"]))}}),A2=E2,D2=ee({__name:"CalendarGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tbody"}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),P2=D2,O2=ee({__name:"CalendarGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"thead"}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),Ve(t,{"aria-hidden":"true"}),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),M2=O2,T2=ee({__name:"CalendarGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"tr"}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),R2=T2,q2=ee({__name:"CalendarHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"th"}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),I2=q2,F2=ee({__name:"CalendarHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),B2=F2,N2=ee({__name:"CalendarHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,n=Tr();return(a,r)=>(h(),j(u(Ye),Ve(t,{"data-disabled":u(n).disabled.value?"":void 0}),{default:F(()=>[he(a.$slots,"default",{headingValue:u(n).headingValue.value},()=>[$e(R(u(n).headingValue.value),1)])]),_:3},16,["data-disabled"]))}}),V2=N2,L2=ee({__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=w(()=>a.disabled.value||a.isNextButtonDisabled(t.nextPage)),a=Tr();function r(){n.value||a.nextPage(t.nextPage)}return(l,o)=>(h(),j(u(Ye),{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:F(()=>[he(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=$e(" Next page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),j2=L2,U2=ee({__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=w(()=>a.disabled.value||a.isPrevButtonDisabled(t.prevPage)),a=Tr();function r(){n.value||a.prevPage(t.prevPage)}return(l,o)=>(h(),j(u(Ye),{"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:F(()=>[he(l.$slots,"default",{disabled:n.value},()=>[o[0]||(o[0]=$e(" Prev page "))])]),_:3},8,["as","as-child","type","aria-disabled","data-disabled","disabled"]))}}),z2=U2;const[hT,H2]=xt("RovingFocusGroup");var K2=ee({__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:s}=Lt(a),i=Na(s),c=bt(a,"currentTabStopId",r,{defaultValue:a.defaultCurrentTabStopId,passive:a.currentTabStopId===void 0}),d=T(!1),f=T(!1),p=T(0),{getItems:v,CollectionSlot:m}=am({isProvider:!0});function g(y){const x=!f.value;if(y.currentTarget&&y.target===y.currentTarget&&x&&!d.value){const S=new CustomEvent(Rk,qk);if(y.currentTarget.dispatchEvent(S),r("entryFocus",S),!S.defaultPrevented){const A=v().map(k=>k.ref).filter(k=>k.dataset.disabled!==""),V=A.find(k=>k.getAttribute("data-active")===""),J=A.find(k=>k.getAttribute("data-highlighted")===""),U=A.find(k=>k.id===c.value),H=[V,J,U,...A].filter(Boolean);Ik(H,a.preventScrollOnEntryFocus)}}f.value=!1}function _(){setTimeout(()=>{f.value=!1},1)}return t({getItems:v}),H2({loop:l,dir:i,orientation:o,currentTabStopId:c,onItemFocus:y=>{c.value=y},onItemShiftTab:()=>{d.value=!0},onFocusableItemAdd:()=>{p.value++},onFocusableItemRemove:()=>{p.value--}}),(y,x)=>(h(),j(u(m),null,{default:F(()=>[z(u(Ye),{tabindex:d.value||p.value===0?-1:0,"data-orientation":u(o),as:y.as,"as-child":y.asChild,dir:u(i),style:{outline:"none"},onMousedown:x[0]||(x[0]=S=>f.value=!0),onMouseup:_,onFocus:g,onBlur:x[1]||(x[1]=S=>d.value=!1)},{default:F(()=>[he(y.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),W2=K2,G2=ee({__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)=>(h(),j(u(sm),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Y2=G2;function J2(){const e=T(!1);return _t(()=>{Mo("keydown",()=>{e.value=!0},{capture:!0,passive:!0}),Mo(["pointerdown","pointermove"],()=>{e.value=!1},{capture:!0,passive:!0})}),e}const Z2=vh(J2),[Ts,Q2]=xt(["MenuRoot","MenuSub"],"MenuContext"),[$c,X2]=xt("MenuRoot");var eC=ee({__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}=Lt(n),o=Na(l),s=bt(n,"open",a),i=T(),c=Z2();return Q2({open:s,onOpenChange:d=>{s.value=d},content:i,onContentChange:d=>{i.value=d}}),X2({onClose:()=>{s.value=!1},isUsingKeyboardRef:c,dir:o,modal:r}),(d,f)=>(h(),j(u(om),null,{default:F(()=>[he(d.$slots,"default")]),_:3}))}}),tC=eC;const[$m,nC]=xt("MenuContent");var aC=ee({__name:"MenuContentImpl",props:tv({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}},{...gm}),emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","entryFocus","openAutoFocus","closeAutoFocus","dismiss"],setup(e,{emit:t}){const n=e,a=t,r=Ts(),l=$c(),{trapFocus:o,disableOutsidePointerEvents:s,loop:i}=Lt(n);Yh(),Qu(s.value);const c=T(""),d=T(0),f=T(0),p=T(null),v=T("right"),m=T(0),g=T(null),_=T(),{forwardRef:y,currentElement:x}=Ke(),{handleTypeaheadSearch:S}=Mw(),A=T();function V(B){const Q=lf(B,A.value||ft(),x.value,{loop:i.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!1,attributeName:"[data-reka-collection-item]:not([data-disabled])"});Q&&(A.value=Q,Q.scrollIntoView({block:"nearest"}))}function J(){A.value&&A.value.click()}const U=T(),H=T();Fe(A,B=>{H.value&&(B===void 0||B!==H.value.trigger.value)&&(H.value.onOpenChange(!1),H.value=void 0)}),Fe(x,B=>{r.onContentChange(B)}),Er(()=>{window.clearTimeout(d.value)});function k(B){return v.value===p.value?.side&&ak(B,p.value?.area)}async function I(B){a("openAutoFocus",B),!B.defaultPrevented&&(B.preventDefault(),x.value?.focus({preventScroll:!0}))}function G(B){if(B.defaultPrevented)return;const Q=B.target,ne=Q.closest("[data-reka-menu-content]")===B.currentTarget,ce=["input","textarea"].includes(Q.tagName.toLowerCase()),te=B.ctrlKey||B.altKey||B.metaKey,ie=B.key.length===1,le=lf(B,ft(),x.value,{loop:i.value,arrowKeyOptions:"vertical",dir:l?.dir.value,focus:!0,attributeName:"[data-reka-collection-item]:not([data-disabled])"});if(le)return le?.focus();if(B.code==="Space")return;const re=_.value?.getItems()??[];if(ne&&(B.key==="Tab"&&B.preventDefault(),!te&&ie&&!ce&&S(B.key,re)),B.target!==x.value||!ek.includes(B.key))return;B.preventDefault();const we=[...re.map(ue=>ue.ref)];em.includes(B.key)&&we.reverse(),tk(we)}function D(B){B?.currentTarget?.contains?.(B.target)||(window.clearTimeout(d.value),c.value="")}function N(B){if(!Io(B))return;const Q=B.target,ne=m.value!==B.clientX;if(B?.currentTarget?.contains(Q)&&ne){const ce=B.clientX>m.value?"right":"left";v.value=ce,m.value=B.clientX}}function W(B){Io(B)&&U.value&&U.value.focus()}return nC({onItemEnter:B=>!!k(B),onItemLeave:B=>k(B)?!0:(["INPUT","TEXTAREA"].includes(ft()?.tagName||"")||x.value?.focus(),g.value=null,!1),onTriggerLeave:B=>!!k(B),searchRef:c,highlightedElement:A,onKeydownNavigation:V,onKeydownEnter:J,filterElement:U,onFilterElementChange:B=>{U.value=B},activeSubmenuContext:H,pointerGraceTimerRef:f,onPointerGraceIntentChange:B=>{p.value=B}}),(B,Q)=>(h(),j(u(vc),{"as-child":"",trapped:u(o),onMountAutoFocus:I,onUnmountAutoFocus:Q[7]||(Q[7]=ne=>a("closeAutoFocus",ne))},{default:F(()=>[z(u(pc),{"as-child":"","disable-outside-pointer-events":u(s),onEscapeKeyDown:Q[2]||(Q[2]=ne=>a("escapeKeyDown",ne)),onPointerDownOutside:Q[3]||(Q[3]=ne=>a("pointerDownOutside",ne)),onFocusOutside:Q[4]||(Q[4]=ne=>a("focusOutside",ne)),onInteractOutside:Q[5]||(Q[5]=ne=>a("interactOutside",ne)),onDismiss:Q[6]||(Q[6]=ne=>a("dismiss"))},{default:F(()=>[z(u(W2),{ref_key:"rovingFocusGroupRef",ref:_,"current-tab-stop-id":g.value,"onUpdate:currentTabStopId":Q[0]||(Q[0]=ne=>g.value=ne),"as-child":"",orientation:"vertical",dir:u(l).dir.value,loop:u(i),onEntryFocus:Q[1]||(Q[1]=ne=>{a("entryFocus",ne),u(l).isUsingKeyboardRef.value||ne.preventDefault()})},{default:F(()=>[z(u(bm),{ref:u(y),role:"menu",as:B.as,"as-child":B.asChild,"aria-orientation":"vertical","data-reka-menu-content":"","data-state":u(tm)(u(r).open.value),dir:u(l).dir.value,side:B.side,"side-offset":B.sideOffset,align:B.align,"align-offset":B.alignOffset,"avoid-collisions":B.avoidCollisions,"collision-boundary":B.collisionBoundary,"collision-padding":B.collisionPadding,"arrow-padding":B.arrowPadding,"prioritize-position":B.prioritizePosition,"position-strategy":B.positionStrategy,"update-position-strategy":B.updatePositionStrategy,sticky:B.sticky,"hide-when-detached":B.hideWhenDetached,reference:B.reference,onKeydown:G,onBlur:D,onPointermove:N,onPointerenter:W},{default:F(()=>[he(B.$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"]))}}),Cm=aC,rC=ee({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=$m(),{forwardRef:a,currentElement:r}=Ke(),{CollectionItem:l}=am(),o=T(!1),s=w(()=>o.value||r.value!=null&&n.highlightedElement.value===r.value);async function i(d){if(!(d.defaultPrevented||!Io(d))){if(t.disabled)n.onItemLeave(d);else if(!n.onItemEnter(d)){const p=d.currentTarget;n.highlightedElement.value=p,["INPUT","TEXTAREA"].includes(ft()?.tagName||"")||p.focus({preventScroll:!0})}}}async function c(d){if(await ze(),d.defaultPrevented||!Io(d)||n.highlightedElement.value!==r.value)return;!n.onItemLeave(d)&&n.highlightedElement.value===r.value&&(n.highlightedElement.value=void 0)}return(d,f)=>(h(),j(u(l),{value:{textValue:d.textValue}},{default:F(()=>[z(u(Ye),Ve({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":s.value?"":void 0,onPointermove:i,onPointerleave:c,onFocus:f[0]||(f[0]=async p=>{await ze(),!(p.defaultPrevented||d.disabled)&&(o.value=!0,u(n).highlightedElement.value=p.currentTarget)}),onBlur:f[1]||(f[1]=async p=>{await ze(),!p.defaultPrevented&&(o.value=!1)})}),{default:F(()=>[he(d.$slots,"default")]),_:3},16,["as","as-child","aria-disabled","data-disabled","data-highlighted"])]),_:3},8,["value"]))}}),lC=rC,oC=ee({__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}=Ke(),o=$c(),s=$m(),i=T(!1);async function c(){const d=l.value;if(!n.disabled&&d){const f=new CustomEvent(Qw,{bubbles:!0,cancelable:!0});a("select",f),await ze(),f.defaultPrevented?i.value=!1:o.onClose()}}return(d,f)=>(h(),j(lC,Ve(n,{ref:u(r),onClick:c,onPointerdown:f[0]||(f[0]=()=>{i.value=!0}),onPointerup:f[1]||(f[1]=async p=>{await ze(),!p.defaultPrevented&&(i.value||p.currentTarget?.click())}),onKeydown:f[2]||(f[2]=async p=>{const v=u(s).searchRef.value!=="";d.disabled||v&&p.key===" "||u(vu).includes(p.key)&&(p.currentTarget?.click(),p.preventDefault())})}),{default:F(()=>[he(d.$slots,"default")]),_:3},16))}}),sC=oC,iC=ee({__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=Gn(n,a),l=Ts(),{forwardRef:o,currentElement:s}=Ke();return fc(s),(i,c)=>(h(),j(Cm,Ve(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]=pt(d=>a("focusOutside",d),["prevent"]))}),{default:F(()=>[he(i.$slots,"default")]),_:3},16,["trap-focus","disable-outside-pointer-events"]))}}),uC=iC,cC=ee({__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=Gn(e,t),l=Ts();return(o,s)=>(h(),j(Cm,Ve(u(r),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:s[0]||(s[0]=i=>u(l).onOpenChange(!1))}),{default:F(()=>[he(o.$slots,"default")]),_:3},16))}}),dC=cC,fC=ee({__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=Gn(e,t),l=Ts(),o=$c();return(s,i)=>(h(),j(u(Cs),{present:s.forceMount||u(l).open.value},{default:F(()=>[u(o).modal.value?(h(),j(uC,He(Ve({key:0},{...s.$attrs,...u(r)})),{default:F(()=>[he(s.$slots,"default")]),_:3},16)):(h(),j(dC,He(Ve({key:1},{...s.$attrs,...u(r)})),{default:F(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),pC=fC,vC=ee({__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)=>(h(),j(u(Ss),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),hC=vC,mC=ee({__name:"MenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(Ye),Ve(t,{role:"separator","aria-orientation":"horizontal"}),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),yC=mC;const[gC,bC]=xt("DateFieldRoot");var _C=ee({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:s,granularity:i,defaultValue:c,dir:d,locale:f}=Lt(a),p=$s(f),v=Na(d),m=dc(p.value,{hourCycle:bl(a.hourCycle)}),{primitiveElement:g,currentElement:_}=Cr(),y=T(new Set);_t(()=>{Kf(_.value).forEach(ue=>y.value.add(ue))});const x=bt(a,"modelValue",r,{defaultValue:c.value,passive:a.modelValue===void 0}),S=cc({defaultPlaceholder:a.placeholder,granularity:i.value,defaultValue:x.value,locale:a.locale}),A=bt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??S.copy(),passive:a.placeholder===void 0}),V=w(()=>Hh(a)),J=w(()=>a.granularity?fu(A.value)?a.granularity:"day":fu(A.value)?"minute":"day"),U=w(()=>x.value?!!(s.value?.(x.value)||a.minValue&&ia(x.value,a.minValue)||a.maxValue&&ia(a.maxValue,x.value)):!1),H=Z$(J.value),k=T(x.value?{...Hf({value:x.value,formatter:m})}:{...H}),I=w(()=>wm({granularity:J.value,dateRef:A.value,formatter:m,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:k.value,locale:p})),G=w(()=>I.value.arr),D=w(()=>G.value.filter(({part:ue})=>ue!=="literal"));Fe(p,ue=>{m.getLocale()!==ue&&(m.setLocale(ue),ze(()=>{y.value.clear(),Kf(_.value).forEach(Ce=>y.value.add(Ce))}))}),Fe(x,ue=>{!hn(ue)&&A.value.compare(ue)!==0&&(A.value=ue.copy())}),Fe([x,p],([ue])=>{hn(ue)?Object.values(k.value).every(Ce=>Ce!==null)&&hn(ue)&&(k.value={...H}):k.value={...Hf({value:ue,formatter:m})}});const N=T(null),W=w(()=>Array.from(y.value).findIndex(ue=>ue.getAttribute("data-reka-date-field-segment")===N.value?.getAttribute("data-reka-date-field-segment"))),B=w(()=>{const ue=v.value==="rtl"?-1:1;return(ue<0?W.value<0:W.value>y.value.size-1)?null:Array.from(y.value)[W.value+ue]}),Q=w(()=>{const ue=v.value==="rtl"?-1:1;return(ue>0?W.value<0:W.value>y.value.size-1)?null:Array.from(y.value)[W.value-ue]}),ne=w(()=>Wh(J.value)),ce=w(()=>gi(x.value,J.value)),te=w(()=>a.maxValue?gi(a.maxValue,J.value):void 0),ie=w(()=>a.minValue?gi(a.minValue,J.value):void 0),le=Or();function re(ue){ue.isComposing||Dn(ue.key)&&(ue.key===le.ARROW_LEFT&&Q.value?.focus(),ue.key===le.ARROW_RIGHT&&B.value?.focus())}function we(ue){N.value=ue}return bC({isDateUnavailable:s.value,locale:p,modelValue:x,placeholder:A,disabled:l,formatter:m,hourCycle:a.hourCycle,step:V,readonly:o,segmentValues:k,isInvalid:U,segmentContents:D,elements:y,setFocusedElement:we,focusNext(){B.value?.focus()}}),t({setFocusedElement:we}),(ue,Ce)=>(h(),j(u(Ye),Ve(ue.$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":U.value?"":void 0,dir:u(v),onKeydown:yr(re,["left","right"])}),{default:F(()=>[he(ue.$slots,"default",{modelValue:u(x),segments:G.value,isInvalid:U.value}),z(u(rm),{id:ue.id,as:"input",type:ne.value,feature:"focusable",tabindex:"-1",value:ce.value,name:ue.name,disabled:u(l),required:ue.required,max:te.value,min:ie.value,onFocus:Ce[0]||(Ce[0]=pe=>Array.from(y.value)?.[0]?.focus())},null,8,["id","type","value","name","disabled","required","max","min"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),xC=_C,wC=ee({__name:"DateFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=gC(),a=T(!0),r=T(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:s,handleSegmentCompositionStart:i,handleSegmentCompositionEnd:c,attributes:d}=km({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=w(()=>n.disabled.value),p=w(()=>n.readonly.value),v=w(()=>n.isInvalid.value);return(m,g)=>(h(),j(u(Ye),Ve({as:m.as,"as-child":m.asChild},u(d),{contenteditable:f.value||p.value?!1:m.part!=="literal","data-reka-date-field-segment":m.part,"aria-disabled":f.value?!0:void 0,"aria-readonly":p.value?!0:void 0,"data-disabled":f.value?"":void 0,"data-invalid":v.value?"":void 0,"aria-invalid":v.value?!0:void 0},ev(m.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(s),compositionstart:u(i),compositionend:u(c),focusout:()=>{a.value=!0},focusin:_=>{u(n).setFocusedElement(_.target)}}:{})),{default:F(()=>[he(m.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-date-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),kC=wC;const[Nl,$C]=xt("PopoverRoot");var CC=ee({__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}=Lt(n),l=bt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0});return $C({contentId:"",triggerId:"",modal:r,open:l,onOpenChange:i=>{l.value=i},onOpenToggle:()=>{l.value=!l.value},triggerElement:T(),hasCustomAnchor:T(!1)}),(i,c)=>(h(),j(u(om),null,{default:F(()=>[he(i.$slots,"default",{open:u(l),close:()=>l.value=!1})]),_:3}))}}),SC=CC;const[Cc,EC]=xt("DatePickerRoot");var AC=ee({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:s,weekdayFormat:i,fixedWeeks:c,numberOfMonths:d,preventDeselect:f,isDateDisabled:p,isDateUnavailable:v,defaultOpen:m,modal:g,id:_,name:y,required:x,minValue:S,maxValue:A,granularity:V,hideTimeZone:J,hourCycle:U,defaultValue:H,dir:k,step:I,closeOnSelect:G}=Lt(n),D=Na(k),N=$s(r),W=w(()=>n.weekStartsOn??Gh(N.value)),B=bt(n,"modelValue",a,{defaultValue:H.value,passive:n.modelValue===void 0}),Q=w(()=>cc({defaultPlaceholder:n.placeholder,granularity:n.granularity,defaultValue:B.value,locale:N.value})),ne=bt(n,"placeholder",a,{defaultValue:n.defaultPlaceholder??Q.value.copy(),passive:n.placeholder===void 0}),ce=bt(n,"open",a,{defaultValue:m.value,passive:n.open===void 0}),te=T();function ie(le){return"hour"in le?le.set({hour:0,minute:0,second:0,millisecond:0}):le}return Fe(B,le=>{le&&le.compare(ne.value)!==0?ne.value=le.copy():!le&&"hour"in ne.value&&(ne.value=ie(ne.value)),G.value&&(ce.value=!1)}),EC({isDateUnavailable:v.value,isDateDisabled:p.value,locale:N,disabled:l,pagedNavigation:s,weekStartsOn:W,weekdayFormat:i,fixedWeeks:c,numberOfMonths:d,readonly:o,preventDeselect:f,modelValue:B,placeholder:ne,defaultOpen:m,modal:g,open:ce,id:_,name:y,required:x,minValue:S,maxValue:A,granularity:V,hideTimeZone:J,hourCycle:U,dateFieldRef:te,dir:D,step:I,onDateChange(le){le?B.value&&!f.value&&le&&B.value.compare(le)===0?B.value=void 0:B.value=le.copy():B.value=void 0},onPlaceholderChange(le){ne.value=le.copy()},closeOnSelect:G}),(le,re)=>(h(),j(u(SC),{open:u(ce),"onUpdate:open":re[0]||(re[0]=we=>ot(ce)?ce.value=we:null),"default-open":u(m),modal:u(g)},{default:F(()=>[he(le.$slots,"default")]),_:3},8,["open","default-open","modal"]))}}),DC=AC,PC=ee({__name:"DatePickerCalendar",setup(e){const t=Cc();return(n,a)=>(h(),j(u(w2),Ve({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(dr)(r,u(t).modelValue.value)||u(t).onDateChange(r)}),"onUpdate:placeholder":a[1]||(a[1]=r=>{u(dr)(r,u(t).placeholder.value)||u(t).onPlaceholderChange(r)})}),{default:F(({weekDays:r,grid:l,date:o,weekStartsOn:s,locale:i,fixedWeeks:c})=>[he(n.$slots,"default",{date:o,grid:l,weekDays:r,weekStartsOn:s,locale:i,fixedWeeks:c})]),_:3},16,["model-value","placeholder"]))}}),OC=PC,MC=ee({__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)=>(h(),j(u($2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),TC=MC,RC=ee({__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)=>(h(),j(u(S2),He(Ge(t)),{default:F(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),qC=RC,IC=ee({__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=Jh(hx(n,"trapFocus","disableOutsidePointerEvents")),{forwardRef:l}=Ke(),o=Nl();return Yh(),(s,i)=>(h(),j(u(vc),{"as-child":"",loop:"",trapped:s.trapFocus,onMountAutoFocus:i[5]||(i[5]=c=>a("openAutoFocus",c)),onUnmountAutoFocus:i[6]||(i[6]=c=>a("closeAutoFocus",c))},{default:F(()=>[z(u(pc),{"as-child":"","disable-outside-pointer-events":s.disableOutsidePointerEvents,onPointerDownOutside:i[0]||(i[0]=c=>a("pointerDownOutside",c)),onInteractOutside:i[1]||(i[1]=c=>a("interactOutside",c)),onEscapeKeyDown:i[2]||(i[2]=c=>a("escapeKeyDown",c)),onFocusOutside:i[3]||(i[3]=c=>a("focusOutside",c)),onDismiss:i[4]||(i[4]=c=>u(o).onOpenChange(!1))},{default:F(()=>[z(u(bm),Ve(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:F(()=>[he(s.$slots,"default")]),_:3},16,["id","data-state","aria-labelledby"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),Sm=IC,FC=ee({__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=Nl(),l=T(!1);Qu(!0);const o=Gn(n,a),{forwardRef:s,currentElement:i}=Ke();return fc(i),(c,d)=>(h(),j(Sm,Ve(u(o),{ref:u(s),"trap-focus":u(r).open.value,"disable-outside-pointer-events":"",onCloseAutoFocus:d[0]||(d[0]=pt(f=>{a("closeAutoFocus",f),l.value||u(r).triggerElement.value?.focus()},["prevent"])),onPointerDownOutside:d[1]||(d[1]=f=>{a("pointerDownOutside",f);const p=f.detail.originalEvent,v=p.button===0&&p.ctrlKey===!0,m=p.button===2||v;l.value=m}),onFocusOutside:d[2]||(d[2]=pt(()=>{},["prevent"]))}),{default:F(()=>[he(c.$slots,"default")]),_:3},16,["trap-focus"]))}}),BC=FC,NC=ee({__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=Nl(),l=T(!1),o=T(!1),s=Gn(n,a);return(i,c)=>(h(),j(Sm,Ve(u(s),{"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:F(()=>[he(i.$slots,"default")]),_:3},16))}}),VC=NC,LC=ee({__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=Nl(),l=Gn(n,a),{forwardRef:o}=Ke();return r.contentId||=$r(void 0,"reka-popover-content"),(s,i)=>(h(),j(u(Cs),{present:s.forceMount||u(r).open.value},{default:F(()=>[u(r).modal.value?(h(),j(BC,Ve({key:0},u(l),{ref:u(o)}),{default:F(()=>[he(s.$slots,"default")]),_:3},16)):(h(),j(VC,Ve({key:1},u(l),{ref:u(o)}),{default:F(()=>[he(s.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),jC=LC,UC=ee({__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)=>(h(),j(u(Ss),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),zC=UC,HC=ee({__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=w(()=>({...n,portal:void 0})),l=Gn(r,a);return(o,s)=>(h(),j(u(zC),He(Ge(o.portal)),{default:F(()=>[z(u(jC),Ve({...u(l),...o.$attrs},{onOpenAutoFocus:s[0]||(s[0]=i=>{a("openAutoFocus",i),!i.defaultPrevented&&i.target&&(u(Kh)(i.target),i.preventDefault())})}),{default:F(()=>[he(o.$slots,"default")]),_:3},16)]),_:3},16))}}),KC=HC,WC=ee({__name:"DatePickerField",setup(e){const t=Cc();return(n,a)=>(h(),j(u(xC),Ve({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:F(({segments:r,modelValue:l})=>[he(n.$slots,"default",{segments:r,modelValue:l})]),_:3},16,["model-value","placeholder"]))}}),GC=WC,YC=ee({__name:"DatePickerGrid",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(A2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),JC=YC,ZC=ee({__name:"DatePickerGridBody",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(P2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),QC=ZC,XC=ee({__name:"DatePickerGridHead",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(M2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),eS=XC,tS=ee({__name:"DatePickerGridRow",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(R2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Gf=tS,nS=ee({__name:"DatePickerHeadCell",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(I2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),aS=nS,rS=ee({__name:"DatePickerHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(B2),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),lS=rS,oS=ee({__name:"DatePickerHeading",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return(n,a)=>(h(),j(u(V2),He(Ge(t)),{default:F(({headingValue:r})=>[he(n.$slots,"default",{headingValue:r},()=>[$e(R(r),1)])]),_:3},16))}}),sS=oS,iS=ee({__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)=>(h(),j(u(kC),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),uS=iS,cS=ee({__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)=>(h(),j(u(j2),He(Ge(t)),{default:F(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),dS=cS,fS=ee({__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)=>(h(),j(u(z2),He(Ge(t)),{default:F(r=>[he(n.$slots,"default",He(Ge(r)))]),_:3},16))}}),pS=fS,vS=ee({__name:"PopoverTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=Nl(),{forwardRef:a,currentElement:r}=Ke();return n.triggerId||=$r(void 0,"reka-popover-trigger"),_t(()=>{n.triggerElement.value=r.value}),(l,o)=>(h(),j(en(u(n).hasCustomAnchor.value?u(Ye):u(sm)),{"as-child":""},{default:F(()=>[z(u(Ye),{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:F(()=>[he(l.$slots,"default")]),_:3},8,["id","type","aria-expanded","aria-controls","data-state","as","as-child","onClick"])]),_:3}))}}),hS=vS,mS=ee({__name:"DatePickerTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=Cc();return(a,r)=>(h(),j(u(hS),Ve({"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:F(()=>[he(a.$slots,"default")]),_:3},16,["disabled"]))}}),yS=mS;const[Em,gS]=xt("DropdownMenuRoot");var bS=ee({__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;Ke();const r=bt(n,"open",a,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=T(),{modal:o,dir:s}=Lt(n),i=Na(s);return gS({open:r,onOpenChange:c=>{r.value=c},onOpenToggle:()=>{r.value=!r.value},triggerId:"",triggerElement:l,contentId:"",modal:o,dir:i}),(c,d)=>(h(),j(u(tC),{open:u(r),"onUpdate:open":d[0]||(d[0]=f=>ot(r)?r.value=f:null),dir:u(i),modal:u(o)},{default:F(()=>[he(c.$slots,"default",{open:u(r)})]),_:3},8,["open","dir","modal"]))}}),Am=bS,_S=ee({__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=Gn(e,t);Ke();const l=Em(),o=T(!1);function s(i){i.defaultPrevented||(o.value||setTimeout(()=>{l.triggerElement.value?.focus()},0),o.value=!1,i.preventDefault())}return l.contentId||=$r(void 0,"reka-dropdown-menu-content"),(i,c)=>(h(),j(u(pC),Ve(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:s,onInteractOutside:c[0]||(c[0]=d=>{if(d.defaultPrevented)return;const f=d.detail.originalEvent,p=f.button===0&&f.ctrlKey===!0,v=f.button===2||p;(!u(l).modal.value||v)&&(o.value=!0),u(l).triggerElement.value?.contains(d.target)&&d.preventDefault()})}),{default:F(()=>[he(i.$slots,"default")]),_:3},16,["id","aria-labelledby"]))}}),Dm=_S,xS=ee({__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=Pr(t);return Ke(),(l,o)=>(h(),j(u(sC),He(Ge({...n,...u(r)})),{default:F(()=>[he(l.$slots,"default")]),_:3},16))}}),Pm=xS,wS=ee({__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)=>(h(),j(u(hC),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),Om=wS,kS=ee({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return Ke(),(n,a)=>(h(),j(u(yC),He(Ge(t)),{default:F(()=>[he(n.$slots,"default")]),_:3},16))}}),$S=kS,CS=ee({__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=Em(),{forwardRef:a,currentElement:r}=Ke();return _t(()=>{n.triggerElement=r}),n.triggerId||=$r(void 0,"reka-dropdown-menu-trigger"),(l,o)=>(h(),j(u(Y2),{"as-child":""},{default:F(()=>[z(u(Ye),{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 s=>{!l.disabled&&s.button===0&&s.ctrlKey===!1&&(u(n)?.onOpenToggle(),await ze(),u(n).open.value&&s.preventDefault())}),onKeydown:o[1]||(o[1]=yr(s=>{l.disabled||(["Enter"," "].includes(s.key)&&u(n).onOpenToggle(),s.key==="ArrowDown"&&u(n).onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())},["enter","space","arrow-down"]))},{default:F(()=>[he(l.$slots,"default")]),_:3},8,["id","type","as-child","as","aria-expanded","aria-controls","data-disabled","disabled","data-state"])]),_:3}))}}),Mm=CS;const kl=100,[SS,ES]=xt("ProgressRoot"),Vo=e=>typeof e=="number";function AS(e,t){return hn(e)||Vo(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 ${kl} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`),null)}function DS(e){return Vo(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 \`${kl}\`.`),kl)}var PS=ee({__name:"ProgressRoot",props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:kl},getValueLabel:{type:Function,required:!1,default:(e,t)=>Vo(e)?`${Math.round(e/t*kl)}%`: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;Ke();const r=bt(n,"modelValue",a,{passive:n.modelValue===void 0}),l=bt(n,"max",a,{passive:n.max===void 0});Fe(()=>r.value,async s=>{const i=AS(s,n.max);i!==s&&(await ze(),r.value=i)},{immediate:!0}),Fe(()=>n.max,s=>{const i=DS(n.max);i!==s&&(l.value=i)},{immediate:!0});const o=w(()=>hn(r.value)?"indeterminate":r.value===l.value?"complete":"loading");return ES({modelValue:r,max:l,progressState:o}),(s,i)=>(h(),j(u(Ye),{"as-child":s.asChild,as:s.as,"aria-valuemax":u(l),"aria-valuemin":0,"aria-valuenow":Vo(u(r))?u(r):void 0,"aria-valuetext":s.getValueText?.(u(r),u(l)),"aria-label":s.getValueLabel(u(r),u(l)),role:"progressbar","data-state":o.value,"data-value":u(r)??void 0,"data-max":u(l)},{default:F(()=>[he(s.$slots,"default",{modelValue:u(r)})]),_:3},8,["as-child","as","aria-valuemax","aria-valuenow","aria-valuetext","aria-label","data-state","data-value","data-max"]))}}),Ai=PS,OS=ee({__name:"ProgressIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=SS();return Ke(),(a,r)=>(h(),j(u(Ye),Ve(t,{"data-state":u(n).progressState.value,"data-value":u(n).modelValue?.value??void 0,"data-max":u(n).max.value}),{default:F(()=>[he(a.$slots,"default")]),_:3},16,["data-state","data-value","data-max"]))}}),Di=OS;const[MS,TS]=xt("TimeFieldRoot");function no(e,t=Rl(ln())){return e&&"day"in e?e:xn(t,e)}var RS=ee({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:s,defaultValue:i,minValue:c,maxValue:d,stepSnapping:f,dir:p,locale:v}=Lt(a),m=$s(v),g=Na(p),_=dc(m.value,{hourCycle:bl(a.hourCycle)}),{primitiveElement:y,currentElement:x}=Cr(),S=T(new Set),A=w(()=>Hh(a)),V=w(()=>c.value?no(c.value):void 0),J=w(()=>d.value?no(d.value):void 0);_t(()=>{Wf(x.value).forEach(pe=>S.value.add(pe))});const U=bt(a,"modelValue",r,{defaultValue:i.value,passive:a.modelValue===void 0}),H=w({get(){return hn(U.value)?U.value:no(U.value)},set(pe){return pe?U.value=U.value&&"day"in U.value?pe:new mn(pe.hour,pe.minute,pe.second,U.value?.millisecond):U.value=pe,pe}}),k=ww({defaultPlaceholder:a.placeholder,defaultValue:U.value}),I=bt(a,"placeholder",r,{defaultValue:a.defaultPlaceholder??k.copy(),passive:a.placeholder===void 0}),G=w({get(){return no(I.value)},set(pe){return pe&&(I.value="day"in I.value?pe.copy():new mn(pe.hour,pe.minute,pe.second,I.value?.millisecond)),pe}}),D=w(()=>s.value?s.value:"minute"),N=w(()=>U.value?!!(V.value&&ia(H.value,V.value)||J.value&&ia(J.value,H.value)):!1),W=J$(D.value),B=T(U.value?{...bu({value:H.value,formatter:_})}:{...W}),Q=w(()=>wm({granularity:D.value,dateRef:G.value,formatter:_,hideTimeZone:a.hideTimeZone,hourCycle:a.hourCycle,segmentValues:B.value,locale:m,isTimeValue:!0})),ne=w(()=>{const pe=Q.value.arr;return a.hourCycle===12?pe.map(Z=>{if(Z.part==="hour"&&"hour"in B.value){const ve=B.value.hour;if(ve!==null){const X=ve===0?12:ve>12?ve-12:ve;return{...Z,value:X.toString()}}}return Z}):pe}),ce=w(()=>ne.value.filter(({part:pe})=>pe!=="literal"));Fe(m,pe=>{_.getLocale()!==pe&&(_.setLocale(pe),ze(()=>{S.value.clear(),Wf(x.value).forEach(Z=>S.value.add(Z))}))}),Fe(H,pe=>{!hn(pe)&&(!dr(G.value,pe)||G.value.compare(pe)!==0)&&(I.value=pe.copy())}),Fe([H,m],([pe])=>{hn(pe)?Object.values(B.value).every(Z=>Z!==null)&&hn(pe)&&(B.value={...W}):B.value={...bu({value:pe,formatter:_})}});const te=T(null),ie=w(()=>Array.from(S.value).findIndex(pe=>pe.getAttribute("data-reka-time-field-segment")===te.value?.getAttribute("data-reka-time-field-segment"))),le=w(()=>{const pe=g.value==="rtl"?-1:1;return(pe<0?ie.value<0:ie.value>S.value.size-1)?null:Array.from(S.value)[ie.value+pe]}),re=w(()=>{const pe=g.value==="rtl"?-1:1;return(pe>0?ie.value<0:ie.value>S.value.size-1)?null:Array.from(S.value)[ie.value-pe]}),we=Or();function ue(pe){pe.isComposing||Dn(pe.key)&&(pe.key===we.ARROW_LEFT&&re.value?.focus(),pe.key===we.ARROW_RIGHT&&le.value?.focus())}function Ce(pe){te.value=pe}return TS({locale:m,modelValue:H,placeholder:G,disabled:l,formatter:_,hourCycle:a.hourCycle,step:A,stepSnapping:f,readonly:o,segmentValues:B,isInvalid:N,segmentContents:ce,elements:S,setFocusedElement:Ce,focusNext(){le.value?.focus()}}),t({setFocusedElement:Ce}),(pe,Z)=>(h(),j(u(Ye),Ve(pe.$attrs,{ref_key:"primitiveElement",ref:y,role:"group","aria-disabled":u(l)?!0:void 0,"data-disabled":u(l)?"":void 0,"data-readonly":u(o)?"":void 0,"data-invalid":N.value?"":void 0,dir:u(g),onKeydown:yr(ue,["left","right"])}),{default:F(()=>[he(pe.$slots,"default",{modelValue:u(U),segments:ne.value,isInvalid:N.value}),z(u(rm),{id:pe.id,as:"input",feature:"focusable",tabindex:"-1",value:u(U)?u(U).toString():"",name:pe.name,disabled:u(l),required:pe.required,onFocus:Z[0]||(Z[0]=ve=>Array.from(S.value)?.[0]?.focus())},null,8,["id","value","name","disabled","required"])]),_:3},16,["aria-disabled","data-disabled","data-readonly","data-invalid","dir"]))}}),Yf=RS,qS=ee({__name:"TimeFieldInput",props:{part:{type:null,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,n=MS(),a=T(!0),r=T(!1),{handleSegmentClick:l,handleSegmentKeydown:o,handleSegmentBeforeInput:s,handleSegmentCompositionStart:i,handleSegmentCompositionEnd:c,handleSegmentFocusOut:d,attributes:f}=km({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}),p=w(()=>n.disabled.value),v=w(()=>n.readonly.value),m=w(()=>n.isInvalid.value);return(g,_)=>(h(),j(u(Ye),Ve({as:g.as,"as-child":g.asChild},u(f),{contenteditable:p.value||v.value?!1:g.part!=="literal","data-reka-time-field-segment":g.part,"aria-disabled":p.value?!0:void 0,"aria-readonly":v.value?!0:void 0,"data-disabled":p.value?"":void 0,"data-invalid":m.value?"":void 0,"aria-invalid":m.value?!0:void 0},ev(g.part!=="literal"?{mousedown:u(l),keydown:u(o),beforeinput:u(s),compositionstart:u(i),compositionend:u(c),focusout:()=>{a.value=!0,u(d)()},focusin:y=>{u(n).setFocusedElement(y.target)}}:{})),{default:F(()=>[he(g.$slots,"default")]),_:3},16,["as","as-child","contenteditable","data-reka-time-field-segment","aria-disabled","aria-readonly","data-disabled","data-invalid","aria-invalid"]))}}),Jf=qS;const Lo=T(null),Tm=T(null);let il=null;function Rm(e){qm(),Tm.value=e,!(e===null||e<=0)&&(il=setTimeout(()=>{il=null,zu()},e*800))}function qm(){il!==null&&(clearTimeout(il),il=null)}E_(Rm);const rr=dt(Lo);async function IS(e,t){const{data:n,response:a}=await Me.POST("/auth/login",{body:{login:e,password:t}});return!a.ok||!n?!1:(Rm(typeof n.data.expires_in=="number"?n.data.expires_in:null),!0)}async function Im(){const{data:e,response:t}=await Me.GET("/auth/me");return Lo.value=t.ok&&e?e.data:null,Lo.value}function Fm(){qm(),Lo.value=null,Tm.value=null}async function FS(e){try{await Me.POST("/auth/logout")}catch{}finally{Fm(),q_([]),B_([])}e&&await e.replace({name:"login"}).catch(()=>{})}const BS={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":""},NS={class:"flex flex-col leading-tight max-[1099px]:hidden","data-user-identity":""},VS={class:"font-semibold"},LS={key:0,class:"text-[12px] text-muted","data-user-role":""},jS={class:"flex items-center gap-3 px-2 py-2"},US={class:"flex size-10 shrink-0 items-center justify-center rounded-full bg-accent text-[14px] font-bold text-on-accent","aria-hidden":"true"},zS={class:"flex min-w-0 flex-col leading-tight"},HS={class:"truncate font-bold"},KS={class:"truncate text-[13px] text-muted"},WS=ee({__name:"UserMenu",setup(e){const t=Ar(),n=w(()=>{const o=rr.value;if(!o)return"";const s=`${o.first_name} ${o.last_name}`.trim();return s===""?o.login:s}),a=w(()=>{const o=rr.value;if(!o)return"";const s=[o.first_name,o.last_name].map(i=>i.trim()).filter(Boolean);return s.length>0?s.slice(0,2).map(i=>i.charAt(0).toUpperCase()).join(""):o.login.slice(0,2).toUpperCase()}),r=w(()=>rr.value?.role?.name??"");async function l(){await FS(t)}return(o,s)=>(h(),j(u(Am),{modal:!1},{default:F(()=>[z(u(Mm),{"data-user-menu":"",disabled:!u(rr),"aria-label":`${u(P)("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:F(()=>[O("span",BS,R(a.value),1),O("span",NS,[O("span",VS,R(n.value),1),r.value?(h(),$("span",LS,R(r.value),1)):ae("",!0)]),z(u(Pl),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled","aria-label"]),z(u(Om),null,{default:F(()=>[z(u(Dm),{"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:F(()=>[O("div",jS,[O("span",US,R(a.value),1),O("span",zS,[O("span",HS,R(n.value),1),O("span",KS,R(u(rr)?.email),1)])]),z(u($S),{class:"my-1 h-px bg-border"}),z(u(Pm),{"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:l},{default:F(()=>[z(u(Hv),{size:18,"aria-hidden":"true"}),O("span",null,R(u(P)("backend::lang.auth.logout")),1)]),_:1})]),_:1})]),_:1})]),_:1}))}}),GS=4e3,$l=T([]),_u=new Map;let YS=1;const JS=dt($l);function Oe(e,t="success"){const n=YS++;return $l.value=[{id:n,text:e,tone:t},...$l.value],_u.set(n,setTimeout(()=>Bm(n),GS)),n}function Bm(e){const t=_u.get(e);t!==void 0&&(clearTimeout(t),_u.delete(e)),$l.value=$l.value.filter(n=>n.id!==e)}const ZS=["role","data-tone"],QS={class:"font-medium"},XS=["aria-label","onClick"],e3=ee({__name:"Toast",setup(e){return(t,n)=>(h(),j(Sb,{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:F(()=>[(h(!0),$(_e,null,Ne(u(JS),a=>(h(),$("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"},[O("span",{class:xe([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"?(h(),j(u(Bt),{key:0,size:16})):(h(),j(u(_r),{key:1,size:16}))],2),O("span",QS,R(a.text),1),O("button",{type:"button","aria-label":u(P)("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(Bm)(a.id)},[z(u(Wt),{size:16,"aria-hidden":"true"})],8,XS)],8,ZS))),128))]),_:1}))}}),t3={class:"flex min-h-screen bg-bg text-text"},n3={class:"flex min-w-0 flex-1 flex-col"},a3={class:"flex h-header shrink-0 items-center justify-between gap-4 border-b border-border bg-surface pr-6 pl-8"},r3={class:"min-w-0 flex-1 px-8 py-7"},l3=ee({__name:"AppShell",setup(e){const t=rn(),{collapsed:n,watchViewport:a}=uh(),r=a();qt(r);const l=w(()=>ys(String(t.params.vendor??""),String(t.params.plugin??"")));return(o,s)=>(h(),$("div",t3,[z(J_),l.value&&!u(n)?(h(),j(tx,{key:0,entry:l.value},null,8,["entry"])):ae("",!0),O("div",n3,[O("header",a3,[z(lx),z(WS)]),O("main",r3,[he(o.$slots,"default")])]),z(e3)]))}}),o3=ee({__name:"App",setup(e){const t=rn(),n=w(()=>t.meta.shell===!0);return(a,r)=>n.value?(h(),j(l3,{key:0},{default:F(()=>[z(u(tu),null,{default:F(({Component:l,route:o})=>[(h(),j(en(l),{key:o.path}))]),_:1})]),_:1})):(h(),j(u(tu),{key:1}))}}),s3="data-summer-controller",Pi=new Map,xu=new Map;let wu="";function Nm(){return`${ps.base}/assets/`}function Vm(e){if(!e.startsWith(Nm())||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 i3(e){if(!Vm(e))return Promise.reject(new Error(`plugin script outside ${Nm()}: ${e}`));const t=Pi.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",()=>{Pi.delete(e),l.remove(),r(new Error(`plugin script failed to load: ${e}`))},{once:!0}),l.src=e,document.head.appendChild(l)});return Pi.set(e,n),n}function u3(e,t){for(const n of t){const a=`${e} +${n}`;if(!Vm(n)||xu.has(a))continue;const r=document.createElement("link");r.rel="stylesheet",r.setAttribute(s3,e),r.disabled=e!==wu,r.href=n,xu.set(a,{owner:e,link:r}),document.head.appendChild(r)}}function c3(e){wu=e;for(const{owner:t,link:n}of xu.values())n.disabled=t!==wu}async function Sc(e,t){u3(e,t?.styles??[]);const n=t?.scripts??[],a=await Promise.allSettled(n.map(r=>i3(r)));return n.filter((r,l)=>a[l]?.status==="rejected")}const d3={class:"flex min-h-screen items-center justify-center px-4",style:{background:"radial-gradient(ellipse at 50% 35%, #2b3a5c 0%, #1d2740 60%)"}},f3={class:"flex w-full max-w-[400px] flex-col gap-6"},p3={class:"flex items-center justify-center gap-3"},v3={class:"flex size-[34px] items-center justify-center rounded-full bg-accent-soft"},h3={class:"text-[22px] font-bold tracking-[-0.02em]"},m3={class:"flex flex-col gap-1.5"},y3={class:"font-semibold"},g3={class:"flex flex-col gap-1.5"},b3={class:"font-semibold"},_3=["aria-invalid"],x3={key:0,role:"alert",class:"flex items-center gap-2.5 rounded-control bg-[#fdf0f0] px-3.5 py-3 text-[#c62828]"},w3=["disabled"],k3=ee({__name:"LoginView",setup(e){const t=rn(),n=Ar(),a=T(""),r=T(""),l=T(!1),o=T(!1);async function s(){if(!o.value){o.value=!0,l.value=!1;try{if(!await IS(a.value.trim(),r.value)||!await Im()){l.value=!0;return}r.value="",await Promise.all([rh(),lh().catch(()=>[])]),await n.replace(ny(t.query.redirect)??"/")}finally{o.value=!1}}}return(i,c)=>(h(),$("main",d3,[O("div",f3,[O("div",p3,[O("span",v3,[z(u(Uu),{size:20,class:"text-accent","aria-hidden":"true"})]),c[2]||(c[2]=O("span",{class:"text-[18px] font-bold text-white"},[$e("Summer"),O("span",{class:"text-accent"},"CMS")],-1))]),O("form",{class:"flex flex-col gap-[18px] rounded-card bg-white p-8 text-[#141b2d] shadow-login",novalidate:"",onSubmit:pt(s,["prevent"])},[O("h1",h3,R(u(P)("backend::lang.auth.title")),1),O("label",m3,[O("span",y3,R(u(P)("backend::lang.auth.login")),1),qa(O("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),[[Eo,a.value]])]),O("label",g3,[O("span",b3,R(u(P)("backend::lang.auth.password")),1),qa(O("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:xe([l.value?"border-[#c62828]":"border-[#d2d8e2]","h-input rounded-control border bg-white px-3.5"])},null,10,_3),[[Eo,r.value]])]),l.value?(h(),$("div",x3,[z(u(Bt),{size:18,"aria-hidden":"true"}),O("span",null,R(u(P)("backend::lang.auth.invalid")),1)])):ae("",!0),O("button",{type:"submit",disabled:o.value,class:"h-input rounded-control bg-[#22304d] font-semibold text-white disabled:opacity-60"},R(u(P)("backend::lang.auth.submit")),9,w3)],32)])]))}}),$3=/^filter\[(.+)\]$/,C3=/^[1-9]\d*$/;function Ja(e){const t=Array.isArray(e)?e[e.length-1]:e;return typeof t=="string"?t:""}function Zf(e){return C3.test(e)?Number(e):void 0}function S3(e){const t={},n=Ja(e.search).trim();n!==""&&(t.search=n);const a=Ja(e.sort).trim();if(a!==""){t.sort=a;const s=Ja(e.dir);t.dir=s==="desc"?"desc":"asc"}const r=Zf(Ja(e.page));r!==void 0&&(t.page=r);const l=Zf(Ja(e.per_page));l!==void 0&&(t.per_page=l);const o={};for(const s of Object.keys(e).sort()){const i=$3.exec(s)?.[1],c=Ja(e[s]);i&&c!==""&&(o[i]=c)}return Object.keys(o).length>0&&(t.filter=o),t}function Lm(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 E3(e){return JSON.stringify(Lm(e))}const Qf=/^\d+$/;function jm(e,t,n){const a=hs(t),r=Un(t);if(!a||!r)return"/";const o=((e??"").trim().split(/[?#]/,1)[0]??"").split("/").filter(d=>d!==""),s=[a.vendor,a.plugin,a.controller];if(!s.every((d,f)=>o[f]?.toLowerCase()===d.toLowerCase()))return r;const c=o.slice(s.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 Qf.test(d)?`${r}/${d}`:r}if(c.length===2&&c[0]==="preview"){const d=c[1]===":id"?String(n??""):c[1]??"";return Qf.test(d)?`${r}/${d}/preview`:r}return r}const A3={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"},D3={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"},P3={key:1,class:"text-muted","data-empty":""},O3={key:2,class:"text-[13px] text-muted tabular-nums"},Za=ee({__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(p=>p!=="").join(", "):typeof f=="boolean"?P(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 p=new Date(f);return Number.isNaN(p.getTime())?String(f):`${p.getFullYear()}-${r(p.getMonth()+1)}-${r(p.getDate())} ${r(p.getHours())}:${r(p.getMinutes())}`}function o(f){if(typeof f!="string")return"";const p=/^\d{4}-\d{2}-\d{2}/.exec(f.trim());return p?p[0]:f.trim()}function s(f){if(typeof f!="string")return"";const p=/(\d{2}):(\d{2})/.exec(f);return p?`${p[1]}:${p[2]}`:f.trim()}function i(f){return typeof f=="string"?f!==""&&f!=="0"&&f.toLowerCase()!=="false":!!f}const c=w(()=>t.column.type==="switch"?"switch":t.column.type==="datetime"?"datetime":t.column.type==="date"?"date":t.column.type==="time"?"time":"text"),d=w(()=>{switch(c.value){case"datetime":return l(t.value);case"date":return o(t.value);case"time":return s(t.value);default:return a(t.value)}});return(f,p)=>c.value==="switch"&&!n(e.value)?(h(),$(_e,{key:0},[i(e.value)?(h(),$("span",A3,[z(u(Uv),{size:14,"aria-hidden":"true"}),$e(R(u(P)("backend::lang.list.column_switch_true")),1)])):(h(),$("span",D3,R(u(P)("backend::lang.list.column_switch_false")),1))],64)):d.value===""?(h(),$("span",P3,"—")):c.value==="datetime"||c.value==="date"||c.value==="time"?(h(),$("span",O3,R(d.value),1)):(h(),$(_e,{key:3},[$e(R(d.value),1)],64))}}),M3={key:0,class:"flex shrink-0 gap-2"},T3=["data-row-state"],R3=ee({__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=w(()=>a.filter(l=>t.states.includes(l)));return(l,o)=>r.value.length>0?(h(),$("span",M3,[(h(!0),$(_e,null,Ne(r.value,s=>(h(),$("span",{key:s,"data-row-state":s,class:xe([n[s],"inline-flex h-6 shrink-0 items-center rounded-pill px-2.5 text-[12px] font-semibold whitespace-nowrap"])},R(e.labels[s]??s),11,T3))),128))])):ae("",!0)}}),q3={class:"overflow-x-auto"},I3={class:"sticky top-0 z-10"},F3={class:"h-row-head border-y border-border bg-subtle"},B3={key:0,scope:"col","data-select":"",class:"w-[52px] pl-5"},N3=["aria-checked","aria-label","disabled"],V3=["aria-sort"],L3=["data-sort","onClick"],j3={key:1,class:"w-[56px] pr-5"},U3=["aria-busy"],z3={key:0,class:"pl-5"},H3={key:1,class:"pr-5"},K3={key:1},W3=["colspan"],G3={class:"text-muted"},Y3=["aria-selected","data-row-states","onClick"],J3={key:0,"data-select":"",class:"pl-5"},Z3=["aria-checked","aria-label","onClick"],Q3={key:0,class:"flex items-center gap-3"},X3={"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"},eE=["onClick"],tE={key:1,class:"flex items-center gap-2"},nE={key:1,"data-trailing":"",class:"w-[56px] pr-5"},Um=ee({__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=Ar();function l(D){const N=D.id;return typeof N=="number"||typeof N=="string"?N:null}function o(D,N){const W=l(D);return W===null?`row-${N}`:String(W)}function s(D){return n.rowLink?n.rowLink(D):null}function i(D,N){if(D.target?.closest("a, button, input, label, select"))return;if(n.openable){const Q=D.currentTarget?.querySelector("[data-row-open]")??null;a("open",N,Q);return}const B=s(N);B&&r.push(B)}const c=w(()=>n.rows.map(l).filter(D=>D!==null)),d=w(()=>new Set(n.selected.map(String))),f=w(()=>{const D=c.value,N=D.filter(W=>d.value.has(String(W))).length;return N===0?"false":N===D.length?"true":"mixed"});function p(D){const N=l(D);return N!==null&&d.value.has(String(N))}function v(){a("update:selected",f.value==="true"?[]:[...c.value])}function m(D){const N=l(D);N!==null&&(d.value.has(String(N))?a("update:selected",n.selected.filter(W=>String(W)!==String(N))):a("update:selected",[...n.selected,N]))}function g(D){if(n.sort?.column===D.key)return n.sort.dir==="desc"?"descending":"ascending"}function _(D){return n.sortable&&D.sortable}const y=w(()=>n.variant==="relation"),x=w(()=>y.value?"h-[56px]":"h-row"),S=w(()=>y.value?3:8);function A(D){return(typeof D=="string"||typeof D=="number"?String(D):"").split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(W=>W.charAt(0).toUpperCase()).join("")}const V=["deleted","negative","disabled"];function J(D){const N=l(D),W=N===null?void 0:n.rowStates[String(N)];return Array.isArray(W)?V.filter(B=>W.includes(B)):[]}function U(D,N,W=[]){const B=W.includes("deleted")||W.includes("disabled");return N===0?B?"font-semibold text-muted":"font-semibold":B||y.value||D.relation?"text-muted":""}function H(D){return["min-w-0 truncate",D.includes("deleted")?"line-through":"no-underline",D.includes("negative")?"text-danger":D.includes("deleted")||D.includes("disabled")?"text-muted":"text-text"]}const k=w(()=>Math.max(n.columns.length+(n.selectable?1:0)+(n.trailing?1:0),1));function I(D,N){a("open",N,D.currentTarget)}const G=["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(D,N)=>(h(),$("div",q3,[O("table",{class:xe([y.value?"min-w-[480px]":"min-w-[640px]","w-full border-collapse text-left"])},[O("thead",I3,[O("tr",F3,[e.selectable?(h(),$("th",B3,[O("button",{type:"button",role:"checkbox","aria-checked":f.value,"aria-label":u(P)("backend::lang.list.select_all"),disabled:e.loading||c.value.length===0,class:xe([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:v},[f.value==="mixed"?(h(),j(u(Kv),{key:0,size:14,"aria-hidden":"true"})):f.value==="true"?(h(),j(u(_r),{key:1,size:14,"aria-hidden":"true"})):ae("",!0)],10,N3)])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,W=>(h(),$("th",{key:W.key,scope:"col","aria-sort":_(W)?g(W)??"none":void 0,class:xe([g(W)?"text-text":"text-muted","px-3.5 text-[12px] font-semibold first:pl-5 last:pr-5"])},[_(W)?(h(),$("button",{key:0,type:"button","data-sort":W.key,class:"inline-flex items-center gap-1 font-semibold",onClick:B=>a("sort",W.key)},[$e(R(W.label)+" ",1),g(W)==="ascending"?(h(),j(u(zv),{key:0,size:14,"aria-hidden":"true"})):g(W)==="descending"?(h(),j(u(jv),{key:1,size:14,"aria-hidden":"true"})):ae("",!0)],8,L3)):(h(),$(_e,{key:1},[$e(R(W.label),1)],64))],10,V3))),128)),e.trailing?(h(),$("td",j3)):ae("",!0)])]),O("tbody",{"aria-busy":e.loading?"true":void 0},[e.loading?(h(!0),$(_e,{key:0},Ne(S.value,W=>(h(),$("tr",{key:`skeleton-${W}`,"data-skeleton":"",class:xe([x.value,"border-b border-border"])},[e.selectable?(h(),$("td",z3,[...N[0]||(N[0]=[O("span",{class:"block size-[18px] rounded-checkbox bg-skel"},null,-1)])])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,B=>(h(),$("td",{key:B.key,class:"px-3.5 first:pl-5 last:pr-5"},[O("span",{class:xe([G[(W-1)%G.length],"block h-3 rounded-[6px] bg-skel"])},null,2)]))),128)),e.trailing?(h(),$("td",H3)):ae("",!0)],2))),128)):e.rows.length===0?(h(),$("tr",K3,[O("td",{colspan:k.value,class:"px-5 py-20 text-center"},[he(D.$slots,"empty",{},()=>[O("span",G3,R(u(P)("backend::lang.list.no_records")),1)])],8,W3)])):(h(!0),$(_e,{key:2},Ne(e.rows,(W,B)=>(h(),$("tr",{key:o(W,B),class:xe([[x.value,p(W)?"bg-sel":s(W)||e.openable?"hover:bg-hover":"",s(W)||e.openable?"cursor-pointer":""],"border-b border-border transition-colors duration-150 ease-out"]),"aria-selected":e.selectable?p(W)?"true":"false":void 0,"data-row-states":J(W).length>0?J(W).join(" "):void 0,onClick:Q=>i(Q,W)},[e.selectable?(h(),$("td",J3,[O("button",{type:"button",role:"checkbox","aria-checked":p(W)?"true":"false","aria-label":u(P)("backend::lang.list.select_row"),class:xe([p(W)?"border-primary bg-primary text-on-primary":"border-border-strong bg-surface","flex size-[18px] items-center justify-center rounded-checkbox border"]),onClick:Q=>m(W)},[p(W)?(h(),j(u(_r),{key:0,size:14,"aria-hidden":"true"})):ae("",!0)],10,Z3)])):ae("",!0),(h(!0),$(_e,null,Ne(e.columns,(Q,ne)=>(h(),$("td",{key:Q.key,class:xe([U(Q,ne,J(W)),"px-3.5 first:pl-5 last:pr-5"])},[y.value&&ne===0?(h(),$("span",Q3,[O("span",X3,R(A(W[Q.key])),1),e.openable?(h(),$("button",{key:0,type:"button","data-row-open":"",class:"min-w-0 truncate text-left font-semibold text-text",onClick:ce=>I(ce,W)},[z(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])],8,eE)):(h(),j(Za,{key:1,column:Q,value:W[Q.key]},null,8,["column","value"]))])):ne===0&&J(W).length>0?(h(),$("span",tE,[s(W)?(h(),j(u(_n),{key:0,to:s(W),class:xe(H(J(W)))},{default:F(()=>[z(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])]),_:2},1032,["to","class"])):(h(),$("span",{key:1,class:xe(H(J(W)))},[z(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])],2)),z(R3,{states:J(W),labels:e.stateLabels},null,8,["states","labels"])])):ne===0&&s(W)?(h(),j(u(_n),{key:2,to:s(W),class:"text-text no-underline"},{default:F(()=>[z(Za,{column:Q,value:W[Q.key]},null,8,["column","value"])]),_:2},1032,["to"])):(h(),j(Za,{key:3,column:Q,value:W[Q.key]},null,8,["column","value"]))],2))),128)),e.trailing?(h(),$("td",nE,[he(D.$slots,"trailing",{row:W})])):ae("",!0)],10,Y3))),128))],8,U3)],2)]))}}),aE=["aria-label"],rE={key:0,class:"flex flex-col gap-1 text-[13px]"},lE={class:"font-semibold text-muted"},oE=["data-filter","value","onChange"],sE=["value"],iE={key:1,class:"flex flex-col gap-1 text-[13px]"},uE={class:"mb-1 font-semibold text-muted"},cE={class:"flex items-center gap-2"},dE=["data-filter","aria-label","value","onChange"],fE=["data-filter","aria-label","value","onChange"],pE={key:2,class:"flex flex-col gap-1 text-[13px]"},vE={class:"font-semibold text-muted"},hE=["data-filter","value","onChange"],mE=["value"],Ur="",ao="h-button rounded-control border border-border-strong bg-surface px-3 text-text",yE=ee({__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(v=>({value:JSON.stringify(v.value),label:v.label}));const p=[];return f.trueValue!==void 0&&p.push({value:JSON.stringify(f.trueValue),label:P("backend::lang.list.column_switch_true")}),f.falseValue!==void 0&&p.push({value:JSON.stringify(f.falseValue),label:P("backend::lang.list.column_switch_false")}),p}const l=T({});async function o(f){const{data:p}=await Me.GET("/{vendor}/{plugin}/{controller}/filters/{scope}/options",{params:{path:{...n.source,scope:f.name}}});l.value={...l.value,[f.name]:p?.data??[]}}_t(()=>{for(const f of n.filters)f.type==="scope"&&o(f)});const s=Zt({});function i(){for(const f of n.filters){if(f.type!=="daterange")continue;const[p="",v=""]=(n.values[f.name]??"").split(".."),m=s[f.name];(!m||n.values[f.name]!==void 0||m.from!==""&&m.to!=="")&&(s[f.name]={from:p,to:v})}}Fe(()=>n.values,i,{immediate:!0,deep:!0});function c(f,p,v){const m={...s[f.name]??{from:"",to:""},[p]:v};s[f.name]=m,m.from!==""&&m.to!==""?a("update",f.name,`${m.from}..${m.to}`):(m.from===""&&m.to===""||n.values[f.name]!==void 0)&&a("update",f.name,null)}function d(f,p){a("update",f.name,p===Ur?null:p)}return(f,p)=>(h(),$("div",{role:"group","aria-label":u(P)("backend::lang.list.filters"),"data-filter-bar":"",class:"flex flex-wrap items-end gap-4 border-t border-border px-5 py-3.5"},[(h(!0),$(_e,null,Ne(e.filters,v=>(h(),$(_e,{key:v.name},[v.type==="switch"?(h(),$("label",rE,[O("span",lE,R(v.label||v.name),1),O("select",{"data-filter":v.name,value:e.values[v.name]??Ur,class:xe(ao),onChange:m=>d(v,m.target.value)},[O("option",{value:Ur},R(u(P)("backend::lang.list.filter_all")),1),(h(!0),$(_e,null,Ne(r(v),m=>(h(),$("option",{key:m.value,value:m.value},R(m.label),9,sE))),128))],40,oE)])):v.type==="daterange"?(h(),$("fieldset",iE,[O("legend",uE,R(v.label||v.name),1),O("div",cE,[O("input",{type:"date","data-filter":`${v.name}-from`,"aria-label":u(P)("backend::lang.list.filter_from"),value:s[v.name]?.from??"",class:xe(ao),onChange:m=>c(v,"from",m.target.value)},null,40,dE),p[0]||(p[0]=O("span",{"aria-hidden":"true"},"–",-1)),O("input",{type:"date","data-filter":`${v.name}-to`,"aria-label":u(P)("backend::lang.list.filter_to"),value:s[v.name]?.to??"",class:xe(ao),onChange:m=>c(v,"to",m.target.value)},null,40,fE)])])):v.type==="scope"?(h(),$("label",pE,[O("span",vE,R(v.label||v.name),1),(h(),$("select",{key:`${v.name}-${l.value[v.name]?.length??-1}`,"data-filter":v.name,value:e.values[v.name]??Ur,class:xe(ao),onChange:m=>d(v,m.target.value)},[O("option",{value:Ur},R(u(P)("backend::lang.list.filter_all")),1),(h(!0),$(_e,null,Ne(l.value[v.name]??[],m=>(h(),$("option",{key:m.value,value:m.value},R(m.label),9,mE))),128))],40,hE))])):ae("",!0)],64))),128))],8,aE))}}),gE=["type","disabled"],et=ee({__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=w(()=>["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?(h(),j(u(_n),{key:0,to:e.to,class:xe(a.value)},{default:F(()=>[e.icon?(h(),j(en(e.icon),{key:0,size:16,"aria-hidden":"true"})):ae("",!0),he(r.$slots,"default")]),_:3},8,["to","class"])):(h(),$("button",{key:1,type:e.type,disabled:e.disabled,class:xe(a.value)},[e.icon?(h(),j(en(e.icon),{key:0,size:16,"aria-hidden":"true"})):ae("",!0),he(r.$slots,"default")],10,gE))}}),bE=ee({__name:"BulkActionsMenu",props:{actions:{},disabled:{type:Boolean}},emits:["select"],setup(e,{expose:t,emit:n}){const a=n,r=T(null);function l(){const o=r.value?.$el;o instanceof HTMLElement&&o.focus()}return t({focus:l}),(o,s)=>(h(),j(u(Am),{modal:!1},{default:F(()=>[z(u(Mm),{"as-child":"",disabled:e.disabled},{default:F(()=>[z(et,{ref_key:"trigger",ref:r,variant:"outline",size:"md","data-action":"bulk-actions",disabled:e.disabled},{default:F(()=>[$e(R(u(P)("backend::lang.list.bulk_actions"))+" ",1),z(u(Pl),{size:16,class:"text-muted","aria-hidden":"true"})]),_:1},8,["disabled"])]),_:1},8,["disabled"]),z(u(Om),null,{default:F(()=>[z(u(Dm),{"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:F(()=>[(h(!0),$(_e,null,Ne(e.actions,i=>(h(),j(u(Pm),{key:i.name,"data-bulk-action":i.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",i.name)},{default:F(()=>[$e(R(i.label),1)]),_:2},1032,["data-bulk-action","onSelect"]))),128))]),_:1})]),_:1})]),_:1}))}}),_E={class:"flex flex-wrap items-center justify-between gap-3 px-5 py-4"},xE={key:0,class:"relative block w-[320px] max-w-full"},wE={class:"sr-only"},kE=["value","placeholder"],$E={key:1},CE={class:"flex flex-wrap items-center justify-end gap-2.5"},SE={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"},EE=ee({__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=w(()=>new Map(a.actions.map(i=>[i.name,i.label]))),o=T(null);function s(){o.value?.focus()}return t({focusBulk:s}),(i,c)=>(h(),$("div",_E,[e.showSearch?(h(),$("label",xE,[O("span",wE,R(u(P)("backend::lang.list.search")),1),z(u(ds),{size:18,class:"pointer-events-none absolute top-1/2 left-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("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,kE)])):(h(),$("span",$E)),O("div",CE,[e.selectedCount>0?(h(),$("span",SE,[z(u(_r),{size:14,"aria-hidden":"true"}),$e(R(e.selectedLabel),1)])):ae("",!0),e.bulkActions.length>0?(h(),j(bE,{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"])):ae("",!0),(h(!0),$(_e,null,Ne(e.buttons,d=>(h(),$(_e,{key:d},[d==="delete"?(h(),j(et,{key:0,"data-action":"delete",variant:e.selectedCount>0?"danger":"outline",icon:u(Ml),disabled:e.selectedCount===0,onClick:c[2]||(c[2]=f=>r("delete"))},{default:F(()=>[$e(R(e.deleteLabel),1)]),_:1},8,["variant","icon","disabled"])):l.value.has(d)?(h(),j(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:F(()=>[$e(R(l.value.get(d)),1)]),_:2},1032,["data-action","disabled","aria-busy","onClick"])):ae("",!0)],64))),128))])]))}}),AE={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"},DE={"data-range":""},PE={key:0,class:"flex items-center gap-2"},OE=["value"],ME=["value"],TE=["aria-label"],RE=["disabled"],qE={key:0,"aria-hidden":"true",class:"px-1"},IE=["data-page","aria-current","onClick"],FE=["disabled"],Oi="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",zm=ee({__name:"Pagination",props:{meta:{},loading:{type:Boolean},perPageOptions:{},perPage:{}},emits:["page","perPage"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.meta?.total??0),l=w(()=>n.meta?.page??1),o=w(()=>Math.max(n.meta?.last_page??1,1)),s=w(()=>{const d=n.meta;if(!d||d.total===0)return xr("backend::lang.list.results",0);const f=(d.page-1)*d.per_page+1,p=Math.min(d.page*d.per_page,d.total);return P("backend::lang.list.pagination_range",{from:f,to:p,total:d.total})}),i=w(()=>{const d=o.value,f=l.value,p=new Set([1,d,f-1,f,f+1].filter(g=>g>=1&&g<=d));f<=3&&[2,3].forEach(g=>g<=d&&p.add(g)),f>=d-2&&[d-1,d-2].forEach(g=>g>=1&&p.add(g));const v=[...p].sort((g,_)=>g-_),m=[];return v.forEach((g,_)=>{const y=v[_-1];y!==void 0&&g-y>1&&m.push(null),m.push(g)}),m});function c(d){const f=Number(d.target.value);Number.isFinite(f)&&f>0&&a("perPage",f)}return(d,f)=>(h(),$("footer",AE,[O("span",DE,R(e.loading?u(P)("backend::lang.list.loading"):s.value),1),e.perPageOptions.length>1?(h(),$("label",PE,[O("span",null,R(u(P)("backend::lang.list.records_per_page")),1),O("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},[(h(!0),$(_e,null,Ne(e.perPageOptions,p=>(h(),$("option",{key:p,value:String(p)},R(p),9,ME))),128))],40,OE)])):ae("",!0),!e.loading&&r.value>0?(h(),$("nav",{key:1,"aria-label":u(P)("backend::lang.list.pagination"),class:"ml-auto flex items-center gap-1.5"},[O("button",{type:"button","data-page":"prev",class:xe(Oi),disabled:l.value<=1,onClick:f[0]||(f[0]=p=>a("page",l.value-1))},[z(u(cs),{size:14,"aria-hidden":"true"}),$e(R(u(P)("backend::lang.list.prev_page")),1)],8,RE),(h(!0),$(_e,null,Ne(i.value,(p,v)=>(h(),$(_e,{key:p??`gap-${v}`},[p===null?(h(),$("span",qE,"…")):(h(),$("button",{key:1,type:"button","data-page":p,"aria-current":p===l.value?"page":void 0,class:xe([Oi,p===l.value?"border-transparent bg-sel font-bold":""]),onClick:m=>p!==l.value&&a("page",p)},R(p),11,IE))],64))),128)),O("button",{type:"button","data-page":"next",class:xe(Oi),disabled:l.value>=o.value,onClick:f[1]||(f[1]=p=>a("page",l.value+1))},[$e(R(u(P)("backend::lang.list.next_page")),1),z(u(Ol),{size:14,"aria-hidden":"true"})],8,FE)],8,TE)):ae("",!0)]))}}),BE={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"},NE={class:"flex min-w-0 items-start gap-2.5"},VE={class:"min-w-0 [overflow-wrap:anywhere]"},Ec=ee({__name:"ExtensionFailure",props:{text:{}},setup(e){return(t,n)=>(h(),$("div",BE,[O("span",NE,[z(u(Bt),{size:16,class:"mt-0.5 shrink-0 text-danger","aria-hidden":"true"}),O("span",VE,R(e.text),1)])]))}}),LE=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"]),jE=new Set(["script","style","template","iframe","object","embed","noscript","textarea","title","xmp","svg","math","form","input","button","select","link","meta","base"]),UE=32,zE=2e3,HE=new Set(["class","title","lang","dir","role"]),KE={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"])},WE=/^(aria|data)-[a-z0-9_-]+$/;function GE(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 YE(e,t,n){return HE.has(t)||KE[e]?.has(t)===!0||WE.test(t)?e==="a"&&t==="href"||e==="img"&&t==="src"?GE(n,e==="a"):!0:!1}function JE(e,t){const n={};for(const[a,r]of Object.entries(t??{})){const l=a.toLowerCase();typeof r=="string"&&YE(e,l,r)&&(n[l]=r)}return n}function ku(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(jE.has(l))continue;if(!LE.has(l)){a.push(...ku(r.children,t,n));continue}if(t+1>UE)continue;n.left-=1;const o=ku(r.children,t+1,n);a.push(Kt(l,JE(l,r.attrs),o.length>0?o:void 0))}return a}function ZE(e){return ku(e,0,{left:zE})}const QE={key:1,"data-partial-loading":"","aria-busy":"true"},XE=["data-partial","aria-busy"],Ac=ee({__name:"PartialHost",props:{source:{},name:{},recordId:{default:null},variant:{},reloadKey:{default:0},hint:{type:Boolean,default:!1}},setup(e){const t=e,n=T(null),a=T(!1),r=T(!1);let l=0;const o=i=>ZE(i.nodes);o.props=["nodes"];async function s(){const i=++l;r.value=!0;let c=null;try{c=(await Me.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}i===l&&(r.value=!1,a.value=c===null,n.value=c)}return Fe(()=>t.reloadKey,()=>{s()}),s(),(i,c)=>a.value?(h(),j(Ec,{key:0,"data-partial-failed":"",text:u(P)("backend::lang.extension.partial_failed")},null,8,["text"])):n.value===null?(h(),$("div",QE,[O("div",{"data-partial-skeleton":"",class:xe([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?(h(),$("div",{key:2,class:"summer-partial","data-partial":e.variant,"aria-busy":r.value?"true":void 0},[z(o,{nodes:n.value},null,8,["nodes"])],8,XE)):ae("",!0)}}),eA={class:"flex gap-2.5"},tA=["disabled","aria-busy"],La=ee({__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,s)=>(h(),j(u(Pk),{open:e.open,"onUpdate:open":r},{default:F(()=>[z(u(Ak),null,{default:F(()=>[z(u(Sk),{class:"pointer-events-auto fixed inset-0 z-[80] bg-overlay"}),z(u(_k),{"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:F(()=>[z(u(Mk),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:F(()=>[$e(R(e.title??u(P)("backend::lang.form.confirm")),1)]),_:1}),z(u($k),{class:"text-muted"},{default:F(()=>[$e(R(e.message),1)]),_:1}),O("div",eA,[z(u(wk),{"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:F(()=>[$e(R(e.cancelLabel??u(P)("backend::lang.form.cancel")),1)]),_:1},8,["disabled"]),O("button",{type:"button","data-action":"confirm",disabled:e.busy,"aria-busy":e.busy?"true":void 0,class:xe([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:pt(l,["prevent"])},[e.busy?(h(),j(u(co),{key:0,size:16,class:"animate-spin","aria-hidden":"true"})):ae("",!0),$e(" "+R(e.confirmLabel??u(P)("backend::lang.form.confirm")),1)],10,tA)])]),_:1})]),_:1})]),_:1},8,["open"]))}});function ja(){const e=T(null),t=T(!1);let n=null,a=null;function r(i){const c=n;n=null,a=null,e.value=null,c?.(i)}function l(i,c){return r(!1),e.value=i,a=c??null,new Promise(d=>{n=d})}async function o(){if(t.value)return;const i=a;if(i){t.value=!0;try{await i()}finally{t.value=!1}}r(!0)}function s(){t.value||r(!1)}return{request:e,busy:t,ask:l,confirm:o,cancel:s}}const nA={class:"flex flex-col gap-5"},aA={class:"flex flex-wrap items-end justify-between gap-4"},rA={class:"flex flex-col"},lA={class:"text-[26px] font-bold tracking-[-0.02em]"},oA={key:0,"data-record-count":"",class:"text-muted"},sA={key:0,class:"flex items-center gap-2.5"},iA={class:"overflow-hidden rounded-card border border-border bg-surface shadow-card"},uA={key:2,role:"alert",class:"border-t border-border px-5 py-4 text-danger"},cA={key:0,"data-empty-search":"",class:"flex flex-col items-center gap-3"},dA={class:"flex size-14 items-center justify-center rounded-full bg-subtle text-muted"},fA={class:"text-[17px] font-bold"},pA={class:"max-w-[420px] text-muted"},vA={key:1,"data-empty-list":"",class:"text-muted"},hA=300,mA=ee({__name:"ListView",setup(e){const t=rn(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=T(null),s=T([]),i=T(null),c=T(!0),d=T(!1),f=T(!1),p=w(()=>d.value||f.value),v=T([]),m=T(!1),g=T(0),_=ja(),y=w(()=>S3(t.query)),x=T(y.value.search??""),S=w(()=>o.value?.messages),A=w(()=>o.value?.title?o.value.title:ys(a.vendor,a.plugin)?.sideMenu.find(Y=>Y.controller===r)?.label??r),V=w(()=>i.value?Ie(S.value?.recordCount,i.value.total):""),J=w(()=>o.value?.toolbarButtons??[]),U=w(()=>J.value.filter(E=>E==="create")),H=w(()=>o.value?.toolbarActions??[]),k=w(()=>J.value.filter(E=>E==="delete"||H.value.some(Y=>Y.name===E))),I=T(null),G=w(()=>i.value?.row_states??{}),D=w(()=>({deleted:Ie(S.value?.rowStateDeleted),negative:Ie(S.value?.rowStateNegative),disabled:Ie(S.value?.rowStateDisabled)})),N=w(()=>(o.value?.bulkActions??[]).filter(E=>E.name!=="delete")),W=T(!1),B=T(null),Q=w(()=>{const E=o.value?.perPageOptions??[];return E.length>0?E:[o.value?.recordsPerPage||20]}),ne=w(()=>y.value.per_page??i.value?.per_page??o.value?.recordsPerPage??20),ce=w(()=>y.value.sort?{column:y.value.sort,dir:y.value.dir==="desc"?"desc":"asc"}:null);function te(E){const Y=o.value?.recordUrl,M=E.id;return!Y||typeof M!="number"&&typeof M!="string"?null:jm(Y,r,M)}function ie(E){n.replace({path:t.path,query:Lm(E)})}let le=0;async function re(){const E=++le;c.value=!0,f.value=!1;const Y=await Me.GET("/{vendor}/{plugin}/{controller}",{params:{path:a,query:y.value}});E===le&&(s.value=Y.data?.data??[],i.value=Y.data?.meta??null,f.value=!Y.data,c.value=!1)}async function we(){const E=await Me.GET("/{vendor}/{plugin}/{controller}/schema/list",{params:{path:a}});o.value=E.data?.data??null,d.value=!o.value,o.value&&Sc(r,o.value.assets)}we(),Fe(()=>E3(y.value),()=>{v.value=[],x.value=y.value.search??"",re()},{immediate:!0});let ue=null;function Ce(E){x.value=E,ue!==null&&clearTimeout(ue),ue=setTimeout(()=>{ue=null;const Y=E.trim();ie({...y.value,search:Y===""?void 0:Y,page:void 0})},hA)}qt(()=>{ue!==null&&clearTimeout(ue)});function pe(){x.value="",ie({...y.value,search:void 0,page:void 0})}function Z(E){const Y=ce.value;Y?.column!==E?ie({...y.value,sort:E,dir:"asc",page:void 0}):Y.dir==="asc"?ie({...y.value,sort:E,dir:"desc",page:void 0}):ie({...y.value,sort:void 0,dir:void 0,page:void 0})}function ve(E){ie({...y.value,page:E})}function X(E){ie({...y.value,per_page:E,page:void 0})}function de(E,Y){const M={...y.value.filter??{}};Y===null?delete M[E]:M[E]=Y,ie({...y.value,filter:M,page:void 0})}async function ge(){const E=v.value.map(Number).filter(M=>Number.isInteger(M)&&M>0);if(!(E.length===0||m.value||!await _.ask({message:Ie(S.value?.deleteConfirm,E.length),confirmLabel:P("backend::lang.form.delete"),danger:!0}))){m.value=!0;try{const M=await Me.POST("/{vendor}/{plugin}/{controller}/bulk-delete",{params:{path:a},body:{ids:E}});if(M.data){Oe(Ie(S.value?.deleted,M.data.data.deleted)),v.value=[],await re(),g.value+=1;return}Oe(M.error?.error.message||P("backend::lang.list.delete_failed"),"danger")}catch{Oe(P("backend::lang.list.delete_failed"),"danger")}finally{m.value=!1}}}async function b(E){const Y=N.value.find(be=>be.name===E),M=v.value.map(Number).filter(be=>Number.isInteger(be)&&be>0);if(!Y||M.length===0||W.value)return;const K=Y.label??E;let oe=0,se=null,me="";const fe=await _.ask({message:Y.confirm||xr("backend::lang.list.bulk_confirm",M.length,{action:K}),confirmLabel:K,danger:!1},async()=>{W.value=!0;try{const be=await Me.POST("/{vendor}/{plugin}/{controller}/bulk/{action}",{params:{path:{...a,action:E}},body:{ids:M}});oe=be.response.status,se=be.data?.data??null,me=be.error?.error.message??""}catch{oe=0}finally{W.value=!1}});if(await new Promise(be=>setTimeout(be,0)),B.value?.focusBulk(),!fe)return;const Ee=se;if(Ee){Oe(Ee.message||xr("backend::lang.list.bulk_done",Ee.affected)),v.value=[],await re(),g.value+=1;return}if(oe===409){Oe(P("backend::lang.list.bulk_stale"),"danger"),v.value=[],await re();return}if(oe===403){Oe(me||P("backend::lang.list.action_forbidden"),"danger");return}Oe(me||P("backend::lang.extension.action_failed"),"danger")}async function C(E){if(I.value===null){I.value=E;try{const Y=await Me.POST("/{vendor}/{plugin}/{controller}/toolbar/{action}",{params:{path:{...a,action:E}},body:{}});if(Y.data){Y.data.data.message&&Oe(Y.data.data.message),await re(),g.value+=1;return}Oe(Y.error?.error.message||P("backend::lang.extension.action_failed"),"danger")}catch{Oe(P("backend::lang.extension.action_failed"),"danger")}finally{I.value=null}}}return(E,Y)=>(h(),$("section",nA,[O("header",aA,[O("div",rA,[O("h1",lA,R(A.value),1),V.value?(h(),$("p",oA,R(V.value),1)):ae("",!0)]),U.value.length>0?(h(),$("div",sA,[(h(!0),$(_e,null,Ne(U.value,M=>(h(),j(et,{key:M,"data-action":"create",variant:"primary",icon:u(ju),to:`${u(l)}/create`},{default:F(()=>[$e(R(u(Ie)(S.value?.create)),1)]),_:1},8,["icon","to"]))),128))])):ae("",!0)]),o.value?.headerPartial?(h(),j(Ac,{key:0,variant:"header",source:a,name:o.value.headerPartial,"reload-key":g.value},null,8,["name","reload-key"])):ae("",!0),O("div",iA,[o.value?(h(),j(EE,{key:0,ref_key:"toolbar",ref:B,"show-search":o.value.showSearch,search:x.value,"search-prompt":u(Ie)(S.value?.searchPrompt),buttons:k.value,"selected-count":v.value.length,"selected-label":u(Ie)(S.value?.selected,v.value.length),"delete-label":u(Ie)(S.value?.deleteSelected,v.value.length),actions:H.value,"busy-action":I.value,"bulk-actions":N.value,"bulk-busy":W.value,"onUpdate:search":Ce,onDelete:ge,onAction:C,onBulk:b},null,8,["show-search","search","search-prompt","buttons","selected-count","selected-label","delete-label","actions","busy-action","bulk-actions","bulk-busy"])):ae("",!0),o.value&&o.value.filters.length>0?(h(),j(yE,{key:1,filters:o.value.filters,values:y.value.filter??{},source:a,onUpdate:de},null,8,["filters","values"])):ae("",!0),p.value&&!c.value?(h(),$("p",uA,R(u(P)("backend::lang.list.load_failed")),1)):(h(),j(Um,{key:3,columns:o.value?.columns??[],rows:s.value,loading:c.value||!o.value,"row-link":te,selectable:o.value?.showCheckboxes??!1,selected:v.value,sortable:o.value?.showSorting??!1,sort:ce.value,"row-states":G.value,"state-labels":D.value,"onUpdate:selected":Y[0]||(Y[0]=M=>v.value=M),onSort:Z},{empty:F(()=>[y.value.search?(h(),$("div",cA,[O("span",dA,[z(u(Jv),{size:24,"aria-hidden":"true"})]),O("p",fA,R(u(Ie)(S.value?.emptySearch,void 0,{term:y.value.search})),1),O("p",pA,R(u(Ie)(S.value?.emptySearchHint,void 0,{term:y.value.search})),1),z(et,{"data-action":"clear-search",onClick:pe},{default:F(()=>[$e(R(u(P)("backend::lang.list.clear_search")),1)]),_:1})])):(h(),$("p",vA,R(u(Ie)(S.value?.empty)||o.value?.noRecordsMessage||u(P)("backend::lang.list.no_records")),1))]),_:1},8,["columns","rows","loading","selectable","selected","sortable","sort","row-states","state-labels"])),z(zm,{meta:i.value,loading:c.value||!o.value,"per-page-options":Q.value,"per-page":ne.value,onPage:ve,onPerPage:X},null,8,["meta","loading","per-page-options","per-page"])]),z(La,{open:u(_).request.value!==null,message:u(_).request.value?.message??"","confirm-label":u(_).request.value?.confirmLabel,danger:u(_).request.value?.danger,busy:u(_).busy.value,onConfirm:u(_).confirm,onCancel:u(_).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])]))}}),ya="X-Session-Key",Hm="X-Child-Session-Key",yA=32;function Cl(){const e=new Uint8Array(yA);globalThis.crypto.getRandomValues(e);let t="";for(const n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const gA="X-Upload-Id";async function ua(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 jo(e){try{const t=await e();return t.response.ok&&t.data instanceof Blob?t.data:null}catch{return null}}function In(e){return encodeURIComponent(String(e))}function Km(e){return`${ps.api}/${In(e.vendor)}/${In(e.plugin)}/${In(e.controller)}`}function bA(e){try{return e===""?null:JSON.parse(e)}catch{return null}}function Wm(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 _A(e,t){const n=t;if((e===200||e===201)&&n?.data)return{ok:!0,item:n.data};const a=Wm(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 Gm(e,t,n,a,r){let l=null,o=!1;const s=()=>new Promise(c=>{const d=new XMLHttpRequest;l=d,d.open("POST",e),d.setRequestHeader("X-Requested-With",nh),d.setRequestHeader("Accept","application/json");for(const[p,v]of Object.entries(n))d.setRequestHeader(p,v);r&&d.setRequestHeader(gA,r),d.upload.onprogress=p=>{p.lengthComputable&&a?.(p.loaded,p.total)},d.onload=()=>c({status:d.status,body:bA(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 s();return typeof c=="object"&&c.status===401&&!o&&(await zu()&&(c=o?"aborted":await s()),typeof c=="object"&&c.status===401&&S_()),c==="aborted"||o?{ok:!1,reason:"aborted",status:0,message:""}:c==="network"?{ok:!1,reason:"network",status:0,message:""}:_A(c.status,c.body)})(),abort(){o=!0,l?.abort()}}}function Ym(e,t,n,a){const r={...e,id:t,field:n},l={[ya]:a},o=`${Km(e)}/${In(t)}/files/${In(n)}`;return{list:()=>ua(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}",{params:{path:r,header:l}})),upload:(s,i,c)=>Gm(o,s,{...l},i,c),update:(s,i)=>ua(()=>Me.PUT("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:s},header:l},body:i})),remove:s=>ua(()=>Me.DELETE("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}",{params:{path:{...r,file:s},header:l}})),reorder:s=>ua(()=>Me.POST("/{vendor}/{plugin}/{controller}/{id}/files/{field}/reorder",{params:{path:r,header:l},body:{ids:s}})),download:s=>jo(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/download",{params:{path:{...r,file:s},header:l},parseAs:"blob"})),thumb:s=>jo(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/thumb",{params:{path:{...r,file:s},header:l},parseAs:"blob"}))}}function xA(e,t,n,a,r,l,o){const s={...e,id:t,name:n,child:a,field:r},i={[ya]:l,[Hm]:o},c=`${Km(e)}/${In(t)}/relations/${In(n)}/records/${In(a)}/files/${In(r)}`;return{list:()=>ua(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}",{params:{path:s,header:i}})),upload:(d,f,p)=>Gm(c,d,{...i},f,p),update:(d,f)=>ua(()=>Me.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...s,file:d},header:i},body:f})),remove:d=>ua(()=>Me.DELETE("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}",{params:{path:{...s,file:d},header:i}})),reorder:d=>ua(()=>Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/reorder",{params:{path:s,header:i},body:{ids:d}})),download:d=>jo(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/download",{params:{path:{...s,file:d},header:i},parseAs:"blob"})),thumb:d=>jo(()=>Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/thumb",{params:{path:{...s,file:d},header:i},parseAs:"blob"}))}}const wA={key:0,role:"alert","data-forbidden-banner":"",class:"flex items-start gap-3 rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},kA={class:"flex min-w-0 flex-col gap-1"},$A={class:"[overflow-wrap:anywhere]"},CA={key:1,role:"alert","data-error-banner":"",class:"flex items-start gap-3 rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},SA={class:"flex flex-col gap-1"},Vl=ee({__name:"FormErrorBanner",props:{errors:{},fieldNames:{},forbidden:{default:null}},setup(e){const t=e,n=w(()=>Object.keys(t.errors).length),a=w(()=>Object.entries(t.errors).filter(([r])=>!t.fieldNames.includes(r)).flatMap(([,r])=>r));return(r,l)=>e.forbidden?(h(),$("div",wA,[z(u(Bt),{size:20,class:"mt-px shrink-0","aria-hidden":"true"}),O("div",kA,[O("p",$A,R(e.forbidden),1),(h(!0),$(_e,null,Ne(a.value,(o,s)=>(h(),$("p",{key:s,class:"text-[13px] [overflow-wrap:anywhere]"},R(o),1))),128))])])):n.value>0?(h(),$("div",CA,[z(u(Bt),{size:20,class:"mt-px shrink-0","aria-hidden":"true"}),O("div",SA,[O("p",null,[O("strong",null,R(u(P)("backend::lang.form.error_title")),1),$e(" "+R(u(xr)("backend::lang.form.error_fields",n.value)),1)]),(h(!0),$(_e,null,Ne(a.value,(o,s)=>(h(),$("p",{key:s,class:"text-[13px]"},R(o),1))),128))])])):ae("",!0)}}),EA=new Set(["readonly","placeholder","maxlength","minlength","min","max","step","autocomplete","spellcheck","pattern"]);function Rs(e){const t={};for(const[n,a]of Object.entries(e.attributes??{})){const r=n.toLowerCase();!EA.has(r)||a===null||a===!1||(t[r]=a)}return t}function ga(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 Dc(e){return typeof e=="string"?e!==""&&e!=="0"&&e.toLowerCase()!=="false":!!e}function Jm(e,t){return typeof e=="number"?t?1:0:t}const AA={class:"flex min-w-0 flex-col"},DA=["for"],PA={key:0,class:"text-danger","aria-hidden":"true"},OA=["id"],MA=["id","name","checked","aria-invalid","aria-describedby"],TA=ee({__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=w(()=>Dc(n.modelValue));function l(o){a("update:modelValue",Jm(n.modelValue,o.target.checked))}return(o,s)=>(h(),$("div",{class:xe([e.invalid?"border-danger":"border-border","flex items-center justify-between gap-4 rounded-inner border px-4 py-3.5"]),"data-toggle-card":""},[O("div",AA,[O("label",{for:e.controlId,class:"font-semibold"},[$e(R(e.field.label||e.field.name),1),e.field.required?(h(),$("span",PA," *")):ae("",!0)],8,DA),e.field.comment?(h(),$("p",{key:0,id:`${e.controlId}-comment`,class:"text-[13px] text-muted"},R(e.field.comment),9,OA)):ae("",!0)]),O("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,MA)],2))}});function RA(e){return e==="date"||e==="time"?e:"datetime"}function Ot(e,t=2){return String(e).padStart(t,"0")}const qA=/(Z|[+-]\d{2}:?\d{2})$/i;function IA(e,t,n=!1){if(typeof t!="string"||t.trim()==="")return null;const a=t.trim();try{if(e==="date")return Mh(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?Wx(l[1]):null}const r=qA.test(a)?a.replace(" ","T"):`${a.replace(" ","T")}Z`;return n?xn(pf(r,"UTC")):pf(r,ln())}catch{return null}}function Mi(e){return`${Ot(e.year,4)}-${Ot(e.month)}-${Ot(e.day)}`}function Ti(e){return`${Ot(e.hour)}:${Ot(e.minute)}:${Ot(e.second)}`}function Xf(e,t,n=!1){if(!t)return null;if(e==="time")return"hour"in t?Ti(t):null;if(!("year"in t))return null;if(e==="date")return Mi(t);if(n){const l=t instanceof zn?xn(t):t,o="hour"in l?Ti(l):"00:00:00";return`${Mi(l)}T${o}Z`}const a=t instanceof zn?t:tc(t instanceof tt?xn(t):t,ln()),r=ws(a,"UTC");return`${Mi(r)}T${Ti(r)}Z`}const FA={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm",time:"HH:mm"},BA=/\[([^\]]*)\]|YYYY|YY|MMMM|MMM|MM|M|dddd|ddd|DD|D|HH|H|hh|h|mm|ss|A|a/g;function NA(e){return"year"in e?new tt(e.year,e.month,e.day):null}function Ri(e,t,n,a){return new Yt(e,{...n,timeZone:"UTC"}).formatToParts(t.toDate("UTC")).find(l=>l.type===a)?.value??""}function VA(e,t,n,a){if(!e)return"";const r=n||FA[t],l=NA(e),o="hour"in e?e:null,s=/D/.test(r.replace(/\[[^\]]*\]/g,""));return r.replace(BA,(i,c)=>{if(c!==void 0)return c;switch(i){case"YYYY":return l?Ot(l.year,4):"";case"YY":return l?Ot(l.year%100):"";case"MMMM":case"MMM":{if(!l)return"";const d=i==="MMMM"?"long":"short";return s?Ri(a,l,{day:"numeric",month:d},"month"):Ri(a,l,{month:d},"month")}case"MM":return l?Ot(l.month):"";case"M":return l?String(l.month):"";case"dddd":case"ddd":return l?Ri(a,l,{weekday:i==="dddd"?"long":"short"},"weekday"):"";case"DD":return l?Ot(l.day):"";case"D":return l?String(l.day):"";case"HH":return o?Ot(o.hour):"";case"H":return o?String(o.hour):"";case"hh":return o?Ot(o.hour%12||12):"";case"h":return o?String(o.hour%12||12):"";case"mm":return o?Ot(o.minute):"";case"ss":return o?Ot(o.second):"";case"A":return o?o.hour<12?"AM":"PM":"";case"a":return o?o.hour<12?"am":"pm":"";default:return i}})}const LA=new tt(2026,10,4);function jA(e,t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=6)return t;try{return(7-xs(LA,e))%7}catch{return 1}}function ep(e){if(e)try{return Mh(e.slice(0,10))}catch{return}}function UA(e,t=Rl(ln())){const n=ep(e.minDate),a=ep(e.maxDate);if(n||a)return{min:n,max:a};const r=e.yearRange??[];return r.length===1&&typeof r[0]=="number"?{min:new tt(t.year-r[0],1,1),max:new tt(t.year+r[0],12,31)}:r.length===2&&typeof r[0]=="number"&&typeof r[1]=="number"?{min:new tt(r[0],1,1),max:new tt(r[1],12,31)}:{}}function $u(e,t,n,a){if(!e||t==="time")return;if(t==="date")return e;const r=new va(e.year,e.month,e.day,a?23:0,a?59:0,a?59:0);return n?r:ws(tc(r,"UTC"),ln())}function zA(e,t){const n=Rl(ln());return $u(n,e==="time"?"datetime":e,t,!1)??n}const HA=["id","aria-describedby"],KA={key:0},WA={key:1,class:"text-muted","data-empty":""},GA=["aria-label"],YA={class:"flex size-8 shrink-0 items-center justify-center text-muted","aria-hidden":"true"},JA=["data-mode"],ZA=["aria-label"],QA={key:0,"data-datepicker-time":"",class:"mt-3 flex items-center gap-2 border-t border-border pt-3"},zr="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",XA=ee({__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=w(()=>RA(n.field.mode)),l=w(()=>r.value==="datetime"&&!!n.field.ignoreTimezone),o=w(()=>ml.value||"pl"),s=w(()=>{const re=n.field.attributes?.readonly;return!!n.field.readOnly||re!=null&&re!==!1}),i=w(()=>IA(r.value,n.modelValue,l.value)),c=w(()=>r.value==="time"?null:i.value),d=w(()=>r.value==="time"?i.value:null),f=w(()=>UA(n.field)),p=w(()=>$u(f.value.min,r.value,l.value,!1)),v=w(()=>$u(f.value.max,r.value,l.value,!0)),m=zA(r.value,l.value),g=w(()=>jA(o.value,n.field.firstDay)),_=w(()=>n.field.twelveHour?12:24),y=w(()=>r.value==="date"?"day":"minute"),x=w(()=>VA(i.value,r.value,n.field.displayFormat,o.value)),S=w(()=>!n.field.required&&i.value!==null&&!s.value),A=w(()=>{const re=c.value;return re?!!p.value&&re.compare(p.value)<0||!!v.value&&re.compare(v.value)>0:!1}),V=new Set(["day","month","year","hour","minute","second"]),J=T(null),U=T(!1);function H(){const re=J.value;if(!re){U.value=!1;return}const we=Array.from(re.querySelectorAll("[data-reka-date-field-segment], [data-reka-time-field-segment]")).filter(Ce=>V.has(Ce.dataset.rekaDateFieldSegment??Ce.dataset.rekaTimeFieldSegment??"")),ue=we.filter(Ce=>!Ce.hasAttribute("data-placeholder")).length;U.value=ue>0&&ue!!n.invalid||A.value||U.value),G=w(()=>Xf(r.value,i.value,l.value));function D(re){const we=Xf(r.value,re??null,l.value);k(),!(we===G.value&&(we!==null||n.modelValue===null))&&a("update:modelValue",we)}function N(re){if(!re||r.value!=="datetime"){D(re);return}const we=c.value,ue=Q.value,Ce=!we||we.year!==re.year||we.month!==re.month||we.day!==re.day,pe=!("hour"in re)||re.hour!==ue.hour||re.minute!==ue.minute;Ce&&pe&&(re=ne(re,ue)),B.value=re,D(re)}function W(){a("update:modelValue",null),k()}const B=T(null);Fe(c,re=>{B.value=re},{immediate:!0});const Q=w(()=>{const re=B.value??c.value;return re&&"hour"in re?new mn(re.hour,re.minute):new mn(0,0)});function ne(re,we){return"hour"in re?re.set({hour:we.hour,minute:we.minute,second:0,millisecond:0}):new va(re.year,re.month,re.day,we.hour,we.minute)}function ce(re){if(!re)return;const we=re instanceof mn?re:new mn(re.hour,re.minute),ue=B.value??c.value??m,Ce=ne(ue,we);B.value=Ce,D(Ce)}function te(re){return re.charAt(0).toLocaleUpperCase(o.value)+re.slice(1)}const ie=w(()=>[ga(I.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 le(re){return re==="literal"?"text-muted":re==="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(re,we)=>s.value?(h(),$("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"},[x.value!==""?(h(),$("span",KA,R(x.value),1)):(h(),$("span",WA,"—"))],8,HA)):r.value==="time"?(h(),$("div",{key:1,ref_key:"container",ref:J,"data-datepicker":"","data-mode":"time",class:xe(ie.value),onKeyup:k,onFocusout:k},[z(u(Yf),{id:e.controlId,"model-value":d.value,locale:o.value,"hour-cycle":_.value,granularity:"minute",name:e.field.name,required:e.field.required||void 0,"aria-invalid":I.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center","onUpdate:modelValue":D},{default:F(({segments:ue})=>[(h(!0),$(_e,null,Ne(ue,Ce=>(h(),j(u(Jf),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:F(()=>[$e(R(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["id","model-value","locale","hour-cycle","name","required","aria-invalid","aria-describedby"]),S.value?(h(),$("button",{key:0,type:"button","data-action":"clear","aria-label":u(P)("backend::lang.datepicker.clear"),class:xe(zr),onClick:W},[z(u(Wt),{size:16,"aria-hidden":"true"})],8,GA)):ae("",!0),O("span",YA,[z(u(Ld),{size:16})])],34)):(h(),j(u(DC),{key:2,id:e.controlId,"model-value":c.value,"default-placeholder":u(m),locale:o.value,granularity:y.value,"hour-cycle":_.value,"hide-time-zone":r.value!=="datetime"||l.value,"min-value":p.value,"max-value":v.value,"week-starts-on":g.value,name:e.field.name,required:e.field.required||void 0,"close-on-select":r.value==="date","prevent-deselect":"","onUpdate:modelValue":N},{default:F(()=>[O("div",{ref_key:"container",ref:J,"data-datepicker":"","data-mode":r.value,class:xe(ie.value),onKeyup:k,onFocusout:k},[z(u(GC),{"aria-invalid":I.value?"true":void 0,"aria-describedby":e.describedBy||void 0,class:"flex min-w-0 flex-1 items-center overflow-hidden"},{default:F(({segments:ue})=>[(h(!0),$(_e,null,Ne(ue,Ce=>(h(),j(u(uS),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:F(()=>[$e(R(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["aria-invalid","aria-describedby"]),S.value?(h(),$("button",{key:0,type:"button","data-action":"clear","aria-label":u(P)("backend::lang.datepicker.clear"),class:xe(zr),onClick:W},[z(u(Wt),{size:16,"aria-hidden":"true"})],8,ZA)):ae("",!0),z(u(yS),{"data-action":"open-calendar","aria-label":u(P)("backend::lang.datepicker.open_calendar"),class:xe(zr)},{default:F(()=>[z(u(a0),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])],42,JA),z(u(KC),{"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:F(()=>[z(u(OC),null,{default:F(({weekDays:ue,grid:Ce})=>[z(u(lS),{class:"flex h-9 items-center justify-between"},{default:F(()=>[z(u(pS),{"aria-label":u(P)("backend::lang.datepicker.prev_month"),class:xe(zr)},{default:F(()=>[z(u(cs),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"]),z(u(sS),{class:"font-semibold"},{default:F(({headingValue:pe})=>[$e(R(te(pe)),1)]),_:1}),z(u(dS),{"aria-label":u(P)("backend::lang.datepicker.next_month"),class:xe(zr)},{default:F(()=>[z(u(Ol),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])]),_:1}),(h(!0),$(_e,null,Ne(Ce,pe=>(h(),j(u(JC),{key:pe.value.toString(),class:"mt-2 w-full border-collapse select-none"},{default:F(()=>[z(u(eS),null,{default:F(()=>[z(u(Gf),{class:"flex"},{default:F(()=>[(h(!0),$(_e,null,Ne(ue,Z=>(h(),j(u(aS),{key:Z,class:"flex h-9 w-9 items-center justify-center text-[13px] font-normal text-muted"},{default:F(()=>[$e(R(Z),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024),z(u(QC),null,{default:F(()=>[(h(!0),$(_e,null,Ne(pe.rows,(Z,ve)=>(h(),j(u(Gf),{key:`week-${ve}`,class:"flex"},{default:F(()=>[(h(!0),$(_e,null,Ne(Z,X=>(h(),j(u(TC),{key:X.toString(),date:X,class:"p-0"},{default:F(()=>[z(u(qC),{day:X,month:pe.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"?(h(),$("div",QA,[z(u(Ld),{size:16,class:"shrink-0 text-muted","aria-hidden":"true"}),z(u(Yf),{"model-value":Q.value,locale:o.value,"hour-cycle":_.value,granularity:"minute","hide-time-zone":"",class:"flex min-w-0 items-center","onUpdate:modelValue":ce},{default:F(({segments:ue})=>[(h(!0),$(_e,null,Ne(ue,Ce=>(h(),j(u(Jf),{key:Ce.part,part:Ce.part,class:xe(le(Ce.part))},{default:F(()=>[$e(R(Ce.value),1)]),_:2},1032,["part","class"]))),128))]),_:1},8,["model-value","locale","hour-cycle"])])):ae("",!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"]))}}),eD={class:"relative"},tD=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],nD=["value"],ro="empty",lo="placeholder",aD=ee({__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=w(()=>n.field.options??[]);function l(c,d){return c==null||d===null||d===void 0?c===d||c==null&&d==null:String(c)===String(d)}const o=w(()=>{const c=r.value.findIndex(d=>l(d.value,n.modelValue));return c>=0?String(c):n.field.emptyOption!==void 0&&(n.modelValue===null||n.modelValue===void 0||n.modelValue==="")?ro:lo}),s=w(()=>o.value===ro||o.value===lo);function i(c){const d=c.target.value;if(d===ro){a("update:modelValue",null);return}const f=r.value[Number(d)];f&&a("update:modelValue",f.value)}return(c,d)=>(h(),$("div",eD,[O("select",{id:e.controlId,name:e.field.name,value:o.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:xe([[u(ga)(e.invalid),s.value?"text-muted":""],"h-input appearance-none pr-10"]),onChange:i},[e.field.emptyOption!==void 0?(h(),$("option",{key:0,value:ro,class:"text-muted"},R(e.field.emptyOption),1)):ae("",!0),o.value===lo?(h(),$("option",{key:1,value:lo,disabled:""},R(u(P)("backend::lang.form.select_placeholder")),1)):ae("",!0),(h(!0),$(_e,null,Ne(r.value,(f,p)=>(h(),$("option",{key:p,value:String(p),class:"text-text"},R(f.label),9,nD))),128))],42,tD),z(u(Pl),{size:16,class:"pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"})]))}}),Pc=Symbol("summer.form.values"),Oc=Symbol("summer.form.patch"),Zm=Symbol("summer.form.locale"),Qm=Symbol("summer.form.assets");function Mc(){const e=T(0);return{activeUploads:e,beginUpload(){e.value++;let t=!1;return()=>{t||(t=!0,e.value>0&&e.value--)}}}}const Rr=Symbol("summer.form.session"),tp="summer-action",rD=5e3,lD={class:"flex items-start gap-3"},oD={class:"flex min-w-0 flex-1 flex-col gap-1"},sD={key:0,class:"flex items-center gap-4"},iD=["src"],uD={key:1,class:"flex size-16 shrink-0 items-center justify-center rounded-inner bg-subtle","aria-hidden":"true"},cD=["title"],dD={class:"flex flex-col gap-1.5"},fD=["for"],pD=["id","disabled","aria-invalid","aria-describedby"],vD=["id"],hD={class:"flex flex-col gap-1.5"},mD=["for"],yD=["id","disabled","aria-invalid","aria-describedby"],gD=["id"],bD={class:"flex gap-2.5"},_D=["disabled"],xD=["disabled"],wD=ee({__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=T(""),l=T(""),o=T({}),s=T(!1),i=ja();function c(_){const y={};for(const[x,S]of Object.entries(_??{})){const A=(Array.isArray(S)?S:[S]).filter(V=>typeof V=="string"&&V!=="");A.length>0&&(y[x]=A)}return y}const d=w(()=>`${n.idPrefix}-caption-title`),f=w(()=>`${n.idPrefix}-caption-description`),p=w(()=>!!n.file&&(r.value!==n.file.title||l.value!==n.file.description));Fe(()=>n.open,_=>{_&&n.file&&(r.value=n.file.title??"",l.value=n.file.description??"",o.value={},s.value=!1)},{immediate:!0});async function v(_){if(_){a("update:open",!0);return}s.value||p.value&&!await i.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function m(){if(!(s.value||!n.file||!n.routes)){s.value=!0;try{const _=await n.routes.update(n.file.id,{title:r.value,description:l.value});if(_.data){o.value={},a("saved",_.data),a("update:open",!1),Oe(P("backend::lang.fileupload.details_saved"));return}if(_.status===422){o.value=c(_.error?.details),Object.keys(o.value).length===0&&(o.value={title:[Wm(_.error)||P("backend::lang.form.error_generic")]});return}Oe(_.error?.message||P("backend::lang.form.error_generic"),"danger")}finally{s.value=!1}}}function g(_){_.preventDefault(),a("closed")}return(_,y)=>(h(),$(_e,null,[z(u(ql),{open:e.open,"onUpdate:open":v},{default:F(()=>[z(u(Es),null,{default:F(()=>[z(u(Fl),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),z(u(Il),{"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:g},{default:F(()=>[O("div",lD,[O("div",oD,[z(u(Bl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.attachment")),1)]),_:1}),z(u(_l),{class:"text-muted"},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.help")),1)]),_:1})]),z(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),disabled:s.value,class:"flex size-[34px] shrink-0 items-center justify-center rounded-tab bg-subtle text-muted hover:bg-hover hover:text-text"},{default:F(()=>[z(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),e.file?(h(),$("div",sD,[e.preview?(h(),$("img",{key:0,src:e.preview,alt:"",class:"size-16 shrink-0 rounded-inner object-cover"},null,8,iD)):(h(),$("span",uD,[z(u(Yr),{size:16,class:"text-muted"})])),O("span",{class:"min-w-0 truncate text-[13px] text-muted",title:e.file.file_name},R(e.file.file_name),9,cD)])):ae("",!0),O("form",{class:"flex flex-col gap-4",novalidate:"",onSubmit:pt(m,["prevent"])},[O("div",dD,[O("label",{for:d.value,class:"font-semibold"},R(u(P)("backend::lang.fileupload.title_label")),9,fD),qa(O("input",{id:d.value,"onUpdate:modelValue":y[0]||(y[0]=x=>r.value=x),type:"text","data-caption-title":"",disabled:s.value,"aria-invalid":o.value.title?"true":void 0,"aria-describedby":o.value.title?`${d.value}-error`:void 0,class:xe([u(ga)(!!o.value.title),"h-input"])},null,10,pD),[[Eo,r.value]]),o.value.title?(h(),$("p",{key:0,id:`${d.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[z(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,R(o.value.title.join(" ")),1)],8,vD)):ae("",!0)]),O("div",hD,[O("label",{for:f.value,class:"font-semibold"},R(u(P)("backend::lang.fileupload.description_label")),9,mD),qa(O("textarea",{id:f.value,"onUpdate:modelValue":y[1]||(y[1]=x=>l.value=x),rows:"3","data-caption-description":"",disabled:s.value,"aria-invalid":o.value.description?"true":void 0,"aria-describedby":o.value.description?`${f.value}-error`:void 0,class:xe([u(ga)(!!o.value.description),"min-h-input resize-y py-2.5"])},null,10,yD),[[Eo,l.value]]),o.value.description?(h(),$("p",{key:0,id:`${f.value}-error`,class:"flex items-center gap-1.5 text-[13px] text-danger"},[z(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,R(o.value.description.join(" ")),1)],8,gD)):ae("",!0)]),O("div",bD,[O("button",{type:"button","data-action":"cancel",disabled:s.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:y[2]||(y[2]=x=>v(!1))},R(u(P)("backend::lang.form.cancel")),9,_D),O("button",{type:"submit","data-action":"save-caption",disabled:s.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"},R(s.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.fileupload.details_submit")),9,xD)])],32)]),_:1})]),_:1})]),_:1},8,["open"]),z(La,{open:u(i).request.value!==null,message:u(i).request.value?.message??"","confirm-label":u(i).request.value?.confirmLabel,danger:u(i).request.value?.danger,onConfirm:u(i).confirm,onCancel:u(i).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),kD=["id","data-field-name","aria-labelledby","aria-describedby","aria-busy"],$D={key:0,"data-fileupload-loading":"",class:"h-[112px] rounded-control bg-skel","aria-hidden":"true"},CD={key:1,role:"alert","data-fileupload-failed":"",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},SD={key:0,"data-fileupload-empty":"",class:"flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 text-muted"},ED={key:1,"data-fileupload-grid":"",class:"grid grid-cols-[repeat(auto-fill,minmax(160px,1fr))] gap-4"},AD=["data-file-item","data-state","onDragover","onDrop"],DD={class:"relative flex aspect-square items-center justify-center bg-subtle"},PD=["href","aria-label"],OD=["src","alt","onError"],MD=["aria-label","onClick"],TD=["src","alt"],RD={key:2,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},qD=["data-handle","aria-label","onKeydown","onDragstart"],ID={key:5,class:"absolute top-2 right-2 flex gap-1"},FD=["data-caption","aria-label","onClick"],BD=["aria-label","onClick"],ND=["aria-label","onClick"],VD={class:"flex flex-col gap-1 p-2"},LD=["title"],jD={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},UD={key:0},zD={key:1},HD={key:2},KD={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},WD={key:1,"data-file-error":"",class:"text-[13px] text-danger"},GD={class:"sr-only"},YD={key:2,"data-fileupload-single":"",class:"flex flex-col gap-2"},JD=["data-file-item","data-state"],ZD=["src","alt","onError"],QD={key:3,"data-preview-unavailable":"",class:"flex flex-col items-center gap-2 text-[13px] text-muted"},XD={class:"flex min-w-0 flex-1 flex-col gap-1"},eP=["title"],tP={class:"flex items-center gap-2 text-[13px] text-muted tabular-nums"},nP={key:0},aP={key:1},rP={key:2},lP={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},oP={key:1,"data-file-error":"",class:"text-[13px] text-danger"},sP={class:"sr-only"},iP={key:2,class:"mt-1 flex flex-wrap gap-2"},uP={key:3,"data-fileupload-rows":"",class:"flex flex-col gap-2"},cP=["data-file-item","data-state","onDragover","onDrop"],dP={class:"flex items-center gap-3"},fP=["data-handle","aria-label","onKeydown","onDragstart"],pP={class:"flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-pager bg-subtle"},vP=["src","onError"],hP={class:"flex min-w-0 flex-1 flex-col leading-tight"},mP=["title"],yP=["title"],gP=["title"],bP={class:"flex shrink-0 items-center gap-2 text-[13px] text-muted tabular-nums"},_P={key:0},xP={key:1},wP={key:2},kP={key:3,"data-unsaved-chip":"",class:"inline-flex h-6 items-center rounded-pill bg-sel px-2 text-[13px] font-semibold text-text"},$P={class:"flex shrink-0 items-center gap-1"},CP=["href","aria-label"],SP=["aria-label","onClick"],EP=["data-caption","aria-label","onClick"],AP=["aria-label","onClick"],DP=["aria-label","onClick"],PP={key:1,"data-file-error":"",class:"text-[13px] text-danger"},OP={class:"sr-only"},MP=["aria-describedby"],TP={class:"flex size-10 items-center justify-center rounded-full bg-surface","aria-hidden":"true"},RP={class:"text-text"},qP={key:0,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},IP={key:5,"data-fileupload-limits":"",class:"text-[13px] text-muted tabular-nums"},FP={key:6,role:"alert","data-fileupload-too-many":"",class:"flex items-center gap-1.5 text-[13px] text-danger"},BP=["accept","multiple"],NP={class:"sr-only","aria-live":"polite","data-fileupload-live":""},VP=1<<20,LP=400,qi="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:text-text",jP="inline-flex size-8 items-center justify-center rounded-pager border border-border bg-surface text-muted hover:bg-danger-soft hover:text-danger",Qa="inline-flex size-8 shrink-0 items-center justify-center rounded-pager text-muted hover:bg-hover hover:text-text",UP=ee({__name:"FileuploadField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Rr,null),a=["jpg","jpeg","png","gif","webp"],r=["image/jpeg","image/png","image/gif","image/webp"];let l=1;const o=T([]),s=T("loading"),i=T(!1),c=T(0),d=T(""),f=T(null),p=T(null),v=T(null),m=T(null),g=T(null),_=T(!1),y=T({}),x=T(new Set),S=new Set,A=[],V=n?n.routes(t.field.name):null;let J=null,U=null,H=!1,k=null,I=0,G=!1;const D=w(()=>{const q=t.field.attributes?.readonly;return!!t.field.readOnly||q!=null&&q!==!1}),N=w(()=>t.field.multiple===!0),W=w(()=>t.field.mode==="image"),B=w(()=>N.value?t.field.maxFiles:1),Q=w(()=>(n?.recordId??0)!==0),ne=w(()=>o.value.filter(q=>q.state!=="failed")),ce=w(()=>{if(N.value)return o.value;const q=ne.value,ye=q[q.length-1];return o.value.filter(L=>L.state==="failed"||L===ye)}),te=w(()=>ce.value.filter(q=>q.state!=="failed").length),ie=w(()=>D.value||s.value!=="ready"?!1:N.value?B.value===void 0||B.value===null||ne.value.lengthN.value&&!D.value&&typeof B.value=="number"&&ne.value.length>=B.value),re=w(()=>t.field.fileTypes?.length?t.field.fileTypes.map(q=>q.toLowerCase()):W.value&&!t.field.mimeTypes?.length?a:null),we=w(()=>(t.field.fileTypes?.length?t.field.fileTypes:t.field.mimeTypes??[]).join(", ")),ue=w(()=>{const q=[];for(const ye of t.field.fileTypes??[])q.push(`.${ye.toLowerCase()}`);for(const ye of t.field.mimeTypes??[])q.push(ye.includes("/")?ye:`.${ye.toLowerCase()}`);return q.length===0&&W.value&&q.push(...r),q.length>0?q.join(","):void 0}),Ce=w(()=>t.field.prompt||P(N.value?"backend::lang.fileupload.default_prompt_many":"backend::lang.fileupload.default_prompt"));function pe(q,ye){return new Intl.NumberFormat(ml.value,{minimumFractionDigits:ye,maximumFractionDigits:ye}).format(q)}function Z(q){const ye=["B","kB","MB","GB"];let L=q,ke=0;for(;L>=1e3&&ke{const q=t.field.maxFilesize;return typeof q=="number"?`${new Intl.NumberFormat(ml.value).format(q)} MB`:""}),X=w(()=>{const q=[];return we.value!==""&&q.push(P("backend::lang.fileupload.limits_types",{types:we.value})),ve.value!==""&&q.push(P("backend::lang.fileupload.limits_size",{size:ve.value})),N.value&&typeof B.value=="number"&&q.push(P("backend::lang.fileupload.limits_count",{current:ne.value.length,max:B.value})),q.join(" · ")});function de(q){const ye=q.lastIndexOf(".");return ye<0?"":q.slice(ye+1).toLowerCase()}function ge(q){const ye=t.field.mimeTypes??[];if(ye.length===0||q.type==="")return!0;const L=q.type.toLowerCase(),ke=de(q.name);return ye.some(Le=>{const $t=Le.toLowerCase();return $t.includes("/")?$t.endsWith("/*")?L.startsWith($t.slice(0,-1)):L===$t:$t===ke})}function b(q){const ye=re.value;if(ye&&!ye.includes(de(q.name)))return P("backend::lang.fileupload.wrong_type",{name:q.name,types:ye.join(", ")});if(!ge(q))return P("backend::lang.fileupload.wrong_type",{name:q.name,types:we.value});const L=t.field.maxFilesize;return typeof L=="number"&&q.size>Math.ceil(L*VP)?P("backend::lang.fileupload.too_large",{name:q.name,size:ve.value}):""}function C(q){return Zt({uid:l++,name:q.file_name,size:q.file_size,state:"done",progress:100,error:"",retryable:!1,file:q,source:null,handle:null,uploadId:""})}function E(){return globalThis.crypto?.randomUUID?.()??`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function Y(q,ye){return Zt({uid:l++,name:q.name,size:q.size,state:ye===""?"queued":"failed",progress:0,error:ye,retryable:!1,file:null,source:yo(q),handle:null,uploadId:E()})}function M(q){return o.value.find(ye=>ye.uid===q)}async function K(q){if(!V){s.value="failed";return}q&&(s.value="loading");const ye=await V.list();if(G)return;if(!ye.data){q&&(s.value="failed");return}const L=o.value.filter(ke=>ke.state!=="done");for(const ke of o.value)ke.state==="done"&&Bs(ke.uid);o.value=[...ye.data.map(C),...L],s.value="ready"}function oe(){D.value||f.value?.click()}function se(q){if(q.length===0||D.value)return;if(c.value=0,!N.value)for(const Le of[...o.value])Le.state!=="failed"&&(Le.state!=="done"||Le.file?.pending)&&Ue(Le);let ye=N.value?typeof B.value=="number"?Math.max(B.value-ne.value.length,0):Number.POSITIVE_INFINITY:1,L=0;const ke=[];for(const Le of q.slice(0,N.value?q.length:1)){const $t=b(Le);if($t===""&&ye<=0){L++;continue}$t===""&&ye--,ke.push(Y(Le,$t))}o.value=[...o.value,...ke],c.value=L,Se()}function me(q){const ye=q.target;se(Array.from(ye.files??[])),ye.value=""}function fe(q){return v.value===null&&Array.from(q.dataTransfer?.types??[]).includes("Files")}function Ee(q){fe(q)&&(q.preventDefault(),i.value=!0)}function be(q){fe(q)&&(q.preventDefault(),i.value=!1,se(Array.from(q.dataTransfer?.files??[])))}function Se(){if(!V||o.value.some(ye=>ye.state==="uploading"))return;const q=o.value.find(ye=>ye.state==="queued");q&&Re(q)}async function Re(q){if(!V||!q.source)return;q.state="uploading",q.progress=0,q.error="",q.retryable=!1;const ye=new Set(o.value.filter(ke=>ke.file).map(ke=>ke.file.id)),L=n?.beginUpload();try{const ke=V.upload(q.source,(Zn,za)=>{q.progress=za>0?Math.min(100,Math.round(Zn/za*100)):0},q.uploadId||void 0);q.handle=yo(ke);const Le=await ke.promise;q.handle=null;const $t=!!M(q.uid);if(Le.ok)!$t||G?V.remove(Le.item.id):(q.state="done",q.progress=100,q.file=Le.item,q.name=Le.item.file_name,q.size=Le.item.file_size,n?.markDirty());else if(Le.reason==="aborted"||Le.reason==="network"){const Zn=await je(ye);if(Le.reason==="aborted"){for(const za of Zn)V.remove(za.id);o.value=o.value.filter(za=>za.uid!==q.uid),Bs(q.uid)}else $t&&Zn[0]&&Zn.length===1?(q.state="done",q.progress=100,q.file=Zn[0],q.name=Zn[0].file_name,q.size=Zn[0].file_size,n?.markDirty()):(q.state="failed",q.error=P("backend::lang.fileupload.upload_failed"),q.retryable=!0)}else if($t)switch(q.state="failed",Le.reason){case"too_large":q.error=ve.value?P("backend::lang.fileupload.too_large",{name:q.name,size:ve.value}):Le.message||P("backend::lang.fileupload.upload_failed");break;case"invalid":q.error=Le.message||P("backend::lang.fileupload.upload_failed");break;default:q.error=Le.message||P("backend::lang.fileupload.upload_failed"),q.retryable=Le.status>=500}}finally{L?.(),G||Se()}}async function je(q){if(!V)return[];const ye=await V.list();return ye.data?ye.data.filter(L=>L.pending&&!q.has(L.id)):[]}function We(q){q.state!=="failed"||!q.source||(q.state="queued",q.error="",q.retryable=!1,Se())}async function Ue(q){const ye=o.value.findIndex(ke=>ke.uid===q.uid);if(ye<0)return;switch(o.value=o.value.filter(ke=>ke.uid!==q.uid),Bs(q.uid),q.state){case"uploading":q.handle?.abort(),n?.markDirty(),Se();return;case"queued":case"failed":return}if(!V||!q.file)return;n?.markDirty();const L=await V.remove(q.file.id);if(!L.data&&!G){const ke=[...o.value];ke.splice(Math.min(ye,ke.length),0,q),o.value=ke,Oe(L.error?.message||P("backend::lang.form.error_generic"),"danger")}}function lt(){return o.value.map(q=>q.uid)}function it(q){const ye=new Map(o.value.map(Le=>[Le.uid,Le])),L=q.map(Le=>ye.get(Le)).filter(Le=>!!Le),ke=o.value.filter(Le=>!q.includes(Le.uid));o.value=[...L,...ke]}function wt(){J!==null&&clearTimeout(J),J=setTimeout(()=>{J=null,on()},LP)}function Pt(){return o.value.filter(q=>q.state==="done"&&q.file).map(q=>q.file.id)}async function on(){if(!V)return;const q=Pt();if(H){k=q;return}const ye=U;U=null;const L=++I;H=!0;try{const ke=await V.reorder(q);if(k)return;!ke.data&&!G&&L===I&&(ye&&it(ye),Oe(P("backend::lang.fileupload.reorder_failed"),"danger"))}finally{H=!1,k&&(k=null,on())}}function De(q,ye){const L=o.value.findIndex($t=>$t.uid===q);if(L<0||ye<0||ye>=o.value.length||ye===L)return!1;U===null&&(U=lt());const ke=[...o.value],[Le]=ke.splice(L,1);return ke.splice(ye,0,Le),o.value=ke,d.value=P("backend::lang.fileupload.moved",{name:Le.name,position:ye+1,total:ke.length}),wt(),!0}async function Ae(q,ye){const L=o.value.findIndex(Le=>Le.uid===ye.uid);let ke;switch(q.key){case"ArrowUp":case"ArrowLeft":ke=L-1;break;case"ArrowDown":case"ArrowRight":ke=L+1;break;default:return}q.preventDefault(),De(ye.uid,ke)&&(await ze(),p.value?.querySelector(`[data-handle="${ye.uid}"]`)?.focus())}function qe(q,ye){v.value=ye.uid,q.dataTransfer&&(q.dataTransfer.effectAllowed="move",q.dataTransfer.setData("text/plain",ye.name))}function kt(q,ye){v.value!==null&&(q.preventDefault(),m.value=ye.uid)}function qr(q,ye){v.value!==null&&(q.preventDefault(),De(v.value,o.value.findIndex(L=>L.uid===ye.uid)),Fs())}function Fs(){v.value=null,m.value=null}function qc(q){const ye=q.file?.content_type??q.source?.type??"";return r.includes(ye.toLowerCase())}function Cn(q){return!q.file||!qc(q)||x.value.has(q.uid)?null:t.field.protected?y.value[q.uid]??null:q.file.thumb_url||q.file.url||null}function Ic(){return typeof URL.revokeObjectURL=="function"}function Bs(q){const ye=y.value[q];if(ye!==void 0){Ic()&&URL.revokeObjectURL(ye);const L={...y.value};delete L[q],y.value=L}S.delete(q)}async function ay(q){if(!V||!q.file||S.has(q.uid)||typeof URL.createObjectURL!="function")return;S.add(q.uid);const ye=await V.thumb(q.file.id);if(!(G||!M(q.uid)||!S.has(q.uid))){if(!ye){x.value=new Set([...x.value,q.uid]);return}y.value={...y.value,[q.uid]:URL.createObjectURL(ye)}}}Fe(()=>o.value.map(q=>`${q.uid}:${q.state}`).join(","),()=>{if(t.field.protected)for(const q of o.value)q.state==="done"&&qc(q)&&ay(q)});function Ns(q){x.value=new Set([...x.value,q.uid])}async function Fc(q,ye){if(!V||!q.file||typeof URL.createObjectURL!="function")return;const L=await V.download(q.file.id);if(!L){Oe(P("backend::lang.form.error_generic"),"danger");return}const ke=URL.createObjectURL(L);A.push(ke);const Le=document.createElement("a");Le.href=ke,Le.rel="noopener",ye?Le.download=q.file.file_name:Le.target="_blank",Le.click()}function wa(q){return t.field.useCaption&&q.file?.title?q.file.title:q.name}function Vs(q){return Q.value&&!!q.file?.pending}const zl=w(()=>g.value===null?void 0:M(g.value));function Ls(q){g.value=q.uid,_.value=!0}function ry(q){const ye=zl.value;ye&&(ye.file=q)}function ly(){const q=g.value;g.value=null,q!==null&&p.value?.querySelector(`[data-caption="${q}"]`)?.focus()}const js=w(()=>{const q=t.field.thumbOptions?.mode;return q==="fit"||q==="auto"?"object-contain":"object-cover"});return _t(()=>{K(!0)}),n&&Fe(n.revision,()=>{K(!1)}),qt(()=>{G=!0,J!==null&&(clearTimeout(J),J=null);for(const q of o.value)q.handle?.abort();if(Ic()){for(const q of Object.values(y.value))URL.revokeObjectURL(q);for(const q of A)URL.revokeObjectURL(q)}}),(q,ye)=>(h(),$("div",{id:e.controlId,ref_key:"root",ref:p,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":s.value==="loading"?"true":void 0,class:"flex min-w-0 flex-col gap-4"},[s.value==="loading"?(h(),$("span",$D)):s.value==="failed"?(h(),$("p",CD,R(u(P)("backend::lang.fileupload.load_failed")),1)):(h(),$(_e,{key:2},[D.value&&ce.value.length===0?(h(),$("p",SD,R(u(P)("backend::lang.fileupload.empty")),1)):W.value&&N.value&&ce.value.length>0?(h(),$("ul",ED,[(h(!0),$(_e,null,Ne(ce.value,L=>(h(),$("li",{key:L.uid,"data-file-item":L.uid,"data-state":L.state,class:xe([[L.state==="failed"?"border-danger":"border-border",v.value===L.uid?"opacity-50":"",m.value===L.uid&&v.value!==L.uid?"border-2 border-dashed border-primary bg-sel":""],"relative overflow-hidden rounded-inner border bg-surface"]),onDragover:ke=>kt(ke,L),onDrop:ke=>qr(ke,L)},[O("div",DD,[L.state==="uploading"?(h(),j(u(co),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):L.state==="failed"?(h(),j(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):L.state==="done"?(h(),$(_e,{key:2},[Cn(L)&&!e.field.protected&&L.file?.url?(h(),$("a",{key:0,href:L.file.url,target:"_blank",rel:"noopener",class:"block size-full","aria-label":u(P)("backend::lang.fileupload.open_preview",{name:L.name})},[O("img",{src:Cn(L)??void 0,alt:wa(L),class:xe([js.value,"size-full"]),onError:ke=>Ns(L)},null,42,OD)],8,PD)):Cn(L)?(h(),$("button",{key:1,type:"button",class:"block size-full","aria-label":u(P)("backend::lang.fileupload.open_preview",{name:L.name}),onClick:ke=>Fc(L,!1)},[O("img",{src:Cn(L)??void 0,alt:wa(L),class:xe([js.value,"size-full"])},null,10,TD)],8,MD)):x.value.has(L.uid)?(h(),$("span",RD,[z(u(zd),{size:20,"aria-hidden":"true"}),$e(" "+R(u(P)("backend::lang.fileupload.preview_unavailable")),1)])):(h(),j(u(Yr),{key:3,size:20,class:"text-muted","aria-hidden":"true"}))],64)):(h(),j(u(Yr),{key:3,size:20,class:"text-muted","aria-hidden":"true"})),!D.value&&L.state==="done"?(h(),$("button",{key:4,type:"button",draggable:"true","data-handle":L.uid,"aria-label":u(P)("backend::lang.fileupload.move",{name:L.name}),class:xe([qi,"absolute top-2 left-2 cursor-grab"]),onKeydown:ke=>Ae(ke,L),onDragstart:ke=>qe(ke,L),onDragend:Fs},[z(u(Ud),{size:16,"aria-hidden":"true"})],40,qD)):ae("",!0),D.value?ae("",!0):(h(),$("div",ID,[e.field.useCaption&&L.state==="done"?(h(),$("button",{key:0,type:"button","data-caption":L.uid,"aria-label":u(P)("backend::lang.fileupload.edit_details",{name:L.name}),class:xe(qi),onClick:ke=>Ls(L)},[z(u(fo),{size:16,"aria-hidden":"true"})],8,FD)):ae("",!0),L.state==="failed"&&L.retryable?(h(),$("button",{key:1,type:"button","data-action":"retry","aria-label":u(P)("backend::lang.fileupload.retry"),class:xe(qi),onClick:ke=>We(L)},[z(u(ai),{size:16,"aria-hidden":"true"})],8,BD)):ae("",!0),O("button",{type:"button","data-action":"remove-file","aria-label":L.state==="uploading"||L.state==="queued"?u(P)("backend::lang.fileupload.cancel_upload",{name:L.name}):u(P)("backend::lang.form.remove_item",{name:L.name}),class:xe(jP),onClick:ke=>Ue(L)},[z(u(Wt),{size:16,"aria-hidden":"true"})],8,ND)]))]),O("div",VD,[O("span",{class:"truncate text-[13px]",title:wa(L)},R(wa(L)),9,LD),O("span",jD,[L.state==="queued"?(h(),$("span",UD,R(u(P)("backend::lang.fileupload.queued")),1)):L.state==="uploading"?(h(),$("span",zD,R(u(P)("backend::lang.fileupload.uploading",{percent:L.progress})),1)):(h(),$("span",HD,R(Z(L.size)),1)),Vs(L)?(h(),$("span",KD,R(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),L.state==="uploading"?(h(),j(u(Ai),{key:0,"model-value":L.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:L.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:F(()=>[z(u(Di),{class:"h-full bg-primary",style:Fn({width:`${L.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),L.state==="failed"?(h(),$("p",WD,[O("span",GD,R(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(R(L.error),1)])):ae("",!0)])],42,AD))),128))])):W.value&&!N.value&&ce.value.length>0?(h(),$("div",YD,[(h(!0),$(_e,null,Ne(ce.value,L=>(h(),$("div",{key:L.uid,"data-file-item":L.uid,"data-state":L.state,class:"flex items-start gap-4"},[O("div",{class:xe([L.state==="failed"?"border-danger":"border-border","flex size-40 shrink-0 items-center justify-center overflow-hidden rounded-inner border bg-subtle"])},[L.state==="uploading"?(h(),j(u(co),{key:0,size:20,class:"animate-spin text-muted","aria-hidden":"true"})):L.state==="failed"?(h(),j(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):Cn(L)?(h(),$("img",{key:2,src:Cn(L)??void 0,alt:wa(L),class:xe([js.value,"size-full"]),onError:ke=>Ns(L)},null,42,ZD)):x.value.has(L.uid)?(h(),$("span",QD,[z(u(zd),{size:20,"aria-hidden":"true"}),$e(" "+R(u(P)("backend::lang.fileupload.preview_unavailable")),1)])):(h(),j(u(Yr),{key:4,size:20,class:"text-muted","aria-hidden":"true"}))],2),O("div",XD,[O("span",{class:"truncate font-semibold",title:wa(L)},R(wa(L)),9,eP),O("span",tP,[L.state==="queued"?(h(),$("span",nP,R(u(P)("backend::lang.fileupload.queued")),1)):L.state==="uploading"?(h(),$("span",aP,R(u(P)("backend::lang.fileupload.uploading",{percent:L.progress})),1)):(h(),$("span",rP,R(Z(L.size)),1)),Vs(L)?(h(),$("span",lP,R(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),L.state==="uploading"?(h(),j(u(Ai),{key:0,"model-value":L.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:L.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:F(()=>[z(u(Di),{class:"h-full bg-primary",style:Fn({width:`${L.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),L.state==="failed"?(h(),$("p",oP,[O("span",sP,R(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(R(L.error),1)])):ae("",!0),D.value?ae("",!0):(h(),$("div",iP,[L.state!=="failed"?(h(),j(et,{key:0,size:"sm",variant:"outline","data-action":"replace-file",icon:u(ri),onClick:oe},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):ae("",!0),L.state==="failed"&&L.retryable?(h(),j(et,{key:1,size:"sm",variant:"outline","data-action":"retry",icon:u(ai),onClick:ke=>We(L)},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.retry")),1)]),_:1},8,["icon","onClick"])):ae("",!0),e.field.useCaption&&L.state==="done"?(h(),j(et,{key:2,size:"sm",variant:"outline","data-caption":L.uid,icon:u(fo),onClick:ke=>Ls(L)},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.details_submit")),1)]),_:1},8,["data-caption","icon","onClick"])):ae("",!0),z(et,{size:"sm",variant:"danger","data-action":"remove-file",icon:u(Wt),onClick:ke=>Ue(L)},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.remove_file")),1)]),_:1},8,["icon","onClick"])]))])],8,JD))),128))])):ce.value.length>0?(h(),$("ul",uP,[(h(!0),$(_e,null,Ne(ce.value,L=>(h(),$("li",{key:L.uid,"data-file-item":L.uid,"data-state":L.state,class:xe([[L.state==="failed"?"border-danger":"border-border",v.value===L.uid?"opacity-50":"",m.value===L.uid&&v.value!==L.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:ke=>kt(ke,L),onDrop:ke=>qr(ke,L)},[O("div",dP,[N.value&&!D.value&&L.state==="done"?(h(),$("button",{key:0,type:"button",draggable:"true","data-handle":L.uid,"aria-label":u(P)("backend::lang.fileupload.move",{name:L.name}),class:xe([Qa,"cursor-grab"]),onKeydown:ke=>Ae(ke,L),onDragstart:ke=>qe(ke,L),onDragend:Fs},[z(u(Ud),{size:16,"aria-hidden":"true"})],40,fP)):ae("",!0),O("span",pP,[L.state==="uploading"?(h(),j(u(co),{key:0,size:16,class:"animate-spin text-muted","aria-hidden":"true"})):L.state==="failed"?(h(),j(u(Bt),{key:1,size:16,class:"text-danger","aria-hidden":"true"})):Cn(L)?(h(),$("img",{key:2,src:Cn(L)??void 0,alt:"",class:"size-8 object-cover",onError:ke=>Ns(L)},null,40,vP)):(h(),j(u(Yr),{key:3,size:16,class:"text-muted","aria-hidden":"true"}))]),O("span",hP,[e.field.useCaption&&L.file?.title?(h(),$(_e,{key:0},[O("span",{class:"truncate font-semibold",title:L.file.title},R(L.file.title),9,mP),O("span",{class:"truncate text-[13px] text-muted",title:L.name},R(L.name),9,yP)],64)):(h(),$("span",{key:1,class:"truncate",title:L.name},R(L.name),9,gP))]),O("span",bP,[L.state==="queued"?(h(),$("span",_P,R(u(P)("backend::lang.fileupload.queued")),1)):L.state==="uploading"?(h(),$("span",xP,R(u(P)("backend::lang.fileupload.uploading",{percent:L.progress})),1)):(h(),$("span",wP,R(Z(L.size)),1)),Vs(L)?(h(),$("span",kP,R(u(P)("backend::lang.fileupload.unsaved")),1)):ae("",!0)]),!N.value&&!D.value&&L.state!=="failed"?(h(),j(et,{key:1,size:"sm",variant:"outline","data-action":"replace-file",icon:u(ri),onClick:oe},{default:F(()=>[$e(R(u(P)("backend::lang.fileupload.replace_file")),1)]),_:1},8,["icon"])):ae("",!0),O("span",$P,[L.state==="done"&&L.file?(h(),$(_e,{key:0},[!e.field.protected&&L.file.url?(h(),$("a",{key:0,href:L.file.url,download:"",target:"_blank",rel:"noopener","aria-label":u(P)("backend::lang.fileupload.download",{name:L.name}),class:xe(Qa)},[z(u(jd),{size:16,"aria-hidden":"true"})],8,CP)):e.field.protected?(h(),$("button",{key:1,type:"button","data-action":"download","aria-label":u(P)("backend::lang.fileupload.download",{name:L.name}),class:xe(Qa),onClick:ke=>Fc(L,!0)},[z(u(jd),{size:16,"aria-hidden":"true"})],8,SP)):ae("",!0),e.field.useCaption&&!D.value?(h(),$("button",{key:2,type:"button","data-caption":L.uid,"aria-label":u(P)("backend::lang.fileupload.edit_details",{name:L.name}),class:xe(Qa),onClick:ke=>Ls(L)},[z(u(fo),{size:16,"aria-hidden":"true"})],8,EP)):ae("",!0)],64)):ae("",!0),L.state==="failed"&&L.retryable?(h(),$("button",{key:1,type:"button","data-action":"retry","aria-label":u(P)("backend::lang.fileupload.retry"),class:xe(Qa),onClick:ke=>We(L)},[z(u(ai),{size:16,"aria-hidden":"true"})],8,AP)):ae("",!0),D.value?ae("",!0):(h(),$("button",{key:2,type:"button","data-action":"remove-file","aria-label":L.state==="uploading"||L.state==="queued"?u(P)("backend::lang.fileupload.cancel_upload",{name:L.name}):u(P)("backend::lang.form.remove_item",{name:L.name}),class:xe([Qa,"hover:bg-danger-soft hover:text-danger"]),onClick:ke=>Ue(L)},[z(u(Wt),{size:16,"aria-hidden":"true"})],8,DP))])]),L.state==="uploading"?(h(),j(u(Ai),{key:0,"model-value":L.progress,max:100,"aria-label":u(P)("backend::lang.fileupload.uploading",{percent:L.progress}),class:"h-1 w-full overflow-hidden rounded-pill bg-subtle"},{default:F(()=>[z(u(Di),{class:"h-full bg-primary",style:Fn({width:`${L.progress}%`})},null,8,["style"])]),_:2},1032,["model-value","aria-label"])):ae("",!0),L.state==="failed"?(h(),$("p",PP,[O("span",OP,R(u(P)("backend::lang.fileupload.upload_error"))+": ",1),$e(R(L.error),1)])):ae("",!0)],42,cP))),128))])):ae("",!0),ie.value?(h(),$("button",{key:4,type:"button","data-fileupload-dropzone":"","aria-describedby":e.describedBy||void 0,class:xe([[i.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:oe,onDragover:Ee,onDragleave:ye[0]||(ye[0]=L=>i.value=!1),onDrop:be},[O("span",TP,[z(u(ri),{size:20,class:"text-muted"})]),O("span",RP,R(Ce.value),1),X.value!==""?(h(),$("span",qP,R(X.value),1)):ae("",!0)],42,MP)):le.value&&X.value!==""?(h(),$("p",IP,R(X.value),1)):ae("",!0),c.value>0?(h(),$("p",FP,[z(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,R(u(xr)("backend::lang.fileupload.too_many",c.value,{max:B.value??0})),1)])):ae("",!0)],64)),O("input",{ref_key:"input",ref:f,type:"file",hidden:"",tabindex:"-1","data-fileupload-input":"",accept:ue.value,multiple:N.value||void 0,onChange:me},null,40,BP),O("p",NP,R(d.value),1),e.field.useCaption?(h(),j(wD,{key:3,open:_.value,"onUpdate:open":ye[1]||(ye[1]=L=>_.value=L),file:zl.value?.file??null,routes:u(V),preview:zl.value?Cn(zl.value):null,"id-prefix":e.controlId,onSaved:ry,onClosed:ly},null,8,["open","file","routes","preview","id-prefix"])):ae("",!0)],8,kD))}}),zP=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],HP=ee({__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=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),l=w(()=>Rs(n.field));function o(s){const i=s.target.value.trim();if(i===""){a("update:modelValue",null);return}const c=Number(i);a("update:modelValue",Number.isFinite(c)?c:null)}return(s,i)=>(h(),$("input",Ve({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(ga)(e.invalid),"h-input tabular-nums"],onInput:o}),null,16,zP))}}),KP=["id","aria-labelledby","aria-describedby"],WP=ee({__name:"PartialField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e;return(n,a)=>(h(),$("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?(h(),j(Ac,{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"])):(h(),j(Ec,{key:1,"data-partial-failed":"",text:u(P)("backend::lang.extension.partial_failed")},null,8,["text"]))],8,KP))}}),GP={class:"relative"},YP=["id","name","type","value","required","aria-required","aria-invalid","aria-describedby"],JP=["aria-pressed","aria-label"],ZP=ee({__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=T(!1),l=w(()=>typeof n.modelValue=="string"?n.modelValue:""),o=w(()=>Rs(n.field)),s=st(Rr,null);return s&&Fe(s.revision,()=>{r.value=!1}),(i,c)=>(h(),$("div",GP,[O("input",Ve({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(ga)(e.invalid),"h-input pr-12"],onInput:c[0]||(c[0]=d=>a("update:modelValue",d.target.value))}),null,16,YP),O("button",{type:"button","data-password-toggle":"","aria-pressed":r.value?"true":"false","aria-label":u(P)(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)},[(h(),j(en(r.value?u(_0):u(w0)),{size:16,"aria-hidden":"true"}))],8,JP)]))}}),At="default";function gn(e){return e.tab?`tab:${e.tab}`:At}function Sl(e,t){return`${e}-tab-${t}`}function qs(e,t){return`${e}-panel-${t}`}function Is(e,t){const n=e.context;if(n==null)return!0;const a=Array.isArray(n)?n:[n];return a.length===0||a.includes(t)}function Ht(e,t,n="create"){const a={};for(const r of e){if(r.readOnly||!GM(r.type))continue;const l=t[r.name];r.type==="password"&&n==="update"&&(l===""||l===null)||l!==void 0&&(a[r.name]=l)}return a}function QP(e,t){const n=typeof t=="string"||typeof t=="number"?String(t):"";return e!=="slug"?n:n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Tc(e){const t={};for(const n of e)n.default!==void 0?t[n.name]=n.default:n.type==="switch"||n.type==="checkbox"?t[n.name]=!1:n.type==="relation"&&n.multiple&&(t[n.name]=[]);return t}function Ll(e){const t={};for(const[n,a]of Object.entries(e??{})){const r=Array.isArray(a)?a.filter(l=>typeof l=="string"&&l!==""):typeof a=="string"&&a!==""?[a]:[];r.length>0&&(t[n]=r)}return t}function ca(e){return JSON.stringify(Object.keys(e).sort().map(t=>[t,e[t]]))}function jl(e,t){const n=document.getElementById(`${e}-${t}`);return n?(n.matches("input, select, textarea, button, [tabindex]")||n.setAttribute("tabindex","-1"),n.focus(),!0):!1}const XP={role:"tablist",class:"inline-flex gap-1 rounded-inner border border-border bg-subtle p-1"},eO=["id","data-tab","aria-selected","aria-controls","tabindex","onClick","onKeydown"],tO=["aria-label"],Rc=ee({__name:"FormTabs",props:{tabs:{},modelValue:{},idPrefix:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t;function r(l,o){const s=l.key==="ArrowRight"?1:l.key==="ArrowLeft"?-1:0;if(s===0)return;l.preventDefault();const i=(o+s+n.tabs.length)%n.tabs.length,c=n.tabs[i];c&&(a("update:modelValue",c.key),document.getElementById(Sl(n.idPrefix,i))?.focus())}return(l,o)=>(h(),$("div",XP,[(h(!0),$(_e,null,Ne(e.tabs,(s,i)=>(h(),$("button",{id:u(Sl)(e.idPrefix,i),key:s.key,type:"button",role:"tab","data-tab":s.key,"aria-selected":s.key===e.modelValue?"true":"false","aria-controls":u(qs)(e.idPrefix,i),tabindex:s.key===e.modelValue?0:-1,class:xe([s.key===e.modelValue?"bg-surface text-text shadow-tab":"text-muted hover:text-text","inline-flex h-[34px] items-center gap-2 rounded-tab px-4 font-semibold transition-colors duration-150 ease-out"]),onClick:c=>a("update:modelValue",s.key),onKeydown:c=>r(c,i)},[$e(R(s.label)+" ",1),s.errors>0?(h(),$("span",{key:0,"data-tab-errors":"","aria-label":u(xr)("backend::lang.form.tab_errors",s.errors),class:"inline-flex h-5 min-w-5 items-center justify-center rounded-pill bg-danger px-1.5 text-[11px] font-bold text-white"},R(s.errors),9,tO)):ae("",!0)],42,eO))),128))]))}}),nO={class:"flex items-start gap-3 p-6 pb-4"},aO={key:0,"data-child-loading":"","aria-hidden":"true",class:"grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},rO={key:1,role:"alert","data-child-load-failed":"",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},lO=["id","role","aria-labelledby"],oO=["disabled"],sO={class:"flex items-center gap-2.5 border-t border-border px-6 py-4"},iO={class:"ml-auto flex gap-2.5"},uO=ee({__name:"RelationChildModal",props:{open:{type:Boolean},source:{},ownerId:{},relation:{},schema:{},mode:{},childId:{},sessionKey:{},canDelete:{type:Boolean}},emits:["update:open","changed","gone","closed"],setup(e,{emit:t}){const n=e,a=t,r=T({}),l=T({}),o=T({}),s=T(!1),i=T(!1),c=T(!1),d=T(""),f=T(At),p=T(Cl()),v=T(0),m=T(0),{activeUploads:g,beginUpload:_}=Mc(),y=T(null),x=ja();let S=0;const A=w(()=>`child-${n.relation}`),V=w(()=>n.mode==="preview"),J=w(()=>n.mode==="create"?"create":"update"),U=w(()=>{const de=((V.value?n.schema.viewForm:n.schema.manageForm)??[]).filter(ge=>Is(ge,J.value));return V.value?de.map(ge=>({...ge,readOnly:!0,attributes:{...ge.attributes??{},readonly:!0}})):de}),H=w(()=>U.value.map(X=>X.name)),k=w(()=>{if(!U.value.some(de=>de.tab))return[];const X=[];for(const de of U.value){const ge=gn(de);let b=X.find(C=>C.key===ge);b||(b={key:ge,label:de.tab||P("backend::lang.form.tab_default"),errors:0},ge===At?X.unshift(b):X.push(b)),o.value[de.name]&&(b.errors+=1)}return X}),I=w(()=>Math.max(k.value.findIndex(X=>X.key===f.value),0)),G=w(()=>{if(k.value.length===0)return U.value;const X=k.value[I.value]?.key??At;return U.value.filter(de=>gn(de)===X)}),D=w(()=>{const X=n.schema.messages;return n.mode==="create"?Ie(X.createTitle):Ie(V.value?X.previewTitle:X.updateTitle)}),N=w(()=>Ie(n.mode==="create"?n.schema.messages.createSubmit:n.schema.messages.updateSubmit)),W=w(()=>!V.value&&!s.value&&!i.value&&(v.value>0||g.value>0||ca(Ht(U.value,r.value))!==d.value));function B(){return{[ya]:n.sessionKey,[Hm]:p.value}}function Q(){return{...n.source,id:n.ownerId,name:n.relation}}Dt(Rr,{get key(){return n.sessionKey},get childKey(){return p.value},get recordId(){return n.childId??0},routes:X=>xA(n.source,n.ownerId,n.relation,n.childId??0,X,n.sessionKey,p.value),markDirty:()=>{v.value++},pendingChanges:dt(v),revision:dt(m),beginUpload:_,activeUploads:dt(g)}),Dt(Pc,w(()=>r.value)),Dt(Oc,ce);function ce(X,de){if(r.value={...r.value,[X]:de},o.value[X]){const ge={...o.value};delete ge[X],o.value=ge}}function te(X,de){r.value={...X},l.value=de?.labels??{},d.value=ca(Ht(U.value,r.value))}async function ie(){await ze(),y.value?.querySelector('input:not([type="hidden"]):not([tabindex="-1"]), select, textarea, button, [contenteditable="true"], [tabindex="0"]')?.focus()}function le(){a("update:open",!1),Oe(P("backend::lang.relation.child_gone"),"danger"),a("gone")}async function re(){const X=++S;if(o.value={},i.value=!1,c.value=!1,v.value=0,p.value=Cl(),f.value=At,n.mode==="create"||n.childId===null){s.value=!1,te(Tc(U.value)),f.value=k.value[0]?.key??At,await ie();return}s.value=!0;try{const de=await Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}",{params:{path:{...Q(),child:n.childId},header:B()}});if(X!==S)return;if(de.data)te(de.data.data,de.data.meta),f.value=k.value[0]?.key??At;else if(de.response.status===404){le();return}else i.value=!0}catch{X===S&&(i.value=!0)}finally{X===S&&(s.value=!1)}X===S&&await ie()}Fe(()=>n.open,X=>{X?re():S++},{immediate:!0});async function we(X){if(X){a("update:open",!0);return}c.value||W.value&&!await x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function ue(X){o.value=Ll(X);const de=U.value.filter(b=>o.value[b.name]),ge=de.find(b=>gn(b)===f.value)??de[0];ge&&(k.value.length>0&&(f.value=gn(ge)),await ze(),jl(A.value,ge.name))}async function Ce(){if(!(c.value||V.value||s.value||i.value||g.value>0)){c.value=!0;try{const X=Ht(U.value,r.value),de=n.mode==="create"||n.childId===null?await Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records",{params:{path:Q(),header:B()},body:X}):await Me.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}",{params:{path:{...Q(),child:n.childId},header:B()},body:X});if(de.data){const b=n.mode==="create"?"created":"updated";o.value={},v.value=0,a("update:open",!1),Oe(Ie(b==="created"?n.schema.messages.created:n.schema.messages.updated)),a("changed",b);return}const ge=de.response.status;ge===422?await ue(de.error?.error.details):ge===404?le():Oe(de.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}}async function pe(){if(c.value||n.childId===null)return;const X=n.childId;if(await x.ask({message:Ie(n.schema.messages.deleteOneConfirm),confirmLabel:P("backend::lang.form.delete"),danger:!0})){c.value=!0;try{const ge=await Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/delete",{params:{path:Q(),header:{[ya]:n.sessionKey}},body:{ids:[X]}});if(ge.data){v.value=0,a("update:open",!1),Oe(Ie(n.schema.messages.deleted,ge.data.data.deleted||1)),a("changed","deleted");return}if(ge.response.status===404){le();return}Oe(ge.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}}function Z(X){X.preventDefault()}function ve(X){X.preventDefault(),a("closed")}return(X,de)=>(h(),$(_e,null,[z(u(ql),{open:e.open,"onUpdate:open":we},{default:F(()=>[z(u(Es),null,{default:F(()=>[z(u(Fl),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),z(u(Il),{"data-relation-child-modal":"","data-dialog-content":"","data-mode":e.mode,"aria-modal":"true","aria-describedby":void 0,class:"fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100vh-32px)] w-[calc(100%-32px)] max-w-[720px] -translate-x-1/2 -translate-y-1/2 flex-col rounded-modal bg-surface text-text shadow-pop",onOpenAutoFocus:Z,onCloseAutoFocus:ve},{default:F(()=>[O("div",nO,[z(u(Bl),{class:"min-w-0 flex-1 text-[20px] font-bold tracking-[-0.01em]"},{default:F(()=>[$e(R(D.value),1)]),_:1}),z(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),disabled:c.value,class:"flex size-[34px] shrink-0 items-center justify-center rounded-tab bg-subtle text-muted hover:bg-hover hover:text-text"},{default:F(()=>[z(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),O("div",{ref_key:"body",ref:y,"data-child-body":"",class:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 pb-6"},[s.value?(h(),$("div",aO,[(h(),$(_e,null,Ne(6,ge=>O("div",{key:ge,class:"flex flex-col gap-1.5"},[...de[3]||(de[3]=[O("span",{class:"block h-3 w-24 rounded-[6px] bg-skel"},null,-1),O("span",{class:"block h-input rounded-control bg-skel"},null,-1)])])),64))])):i.value?(h(),$("p",rO,R(u(P)("backend::lang.relation.child_load_failed")),1)):(h(),$(_e,{key:2},[z(Vl,{errors:o.value,"field-names":H.value},null,8,["errors","field-names"]),k.value.length>0?(h(),j(Rc,{key:0,modelValue:f.value,"onUpdate:modelValue":de[0]||(de[0]=ge=>f.value=ge),tabs:k.value,"id-prefix":A.value,class:"self-start"},null,8,["modelValue","tabs","id-prefix"])):ae("",!0),O("form",{id:k.value.length>0?u(qs)(A.value,I.value):void 0,role:k.value.length>0?"tabpanel":void 0,"aria-labelledby":k.value.length>0?u(Sl)(A.value,I.value):void 0,novalidate:"",onSubmit:pt(Ce,["prevent"])},[O("fieldset",{disabled:c.value||V.value,class:"m-0 min-w-0 border-0 p-0"},[z(Ul,{fields:G.value,values:r.value,errors:o.value,labels:l.value,source:e.source,"record-id":e.childId,"id-prefix":A.value,onUpdate:ce},null,8,["fields","values","errors","labels","source","record-id","id-prefix"])],8,oO)],40,lO)],64))],512),O("div",sO,[e.mode==="update"&&e.canDelete&&!s.value&&!i.value?(h(),j(et,{key:0,variant:"danger","data-action":"delete-child",icon:u(Ml),disabled:c.value,onClick:pe},{default:F(()=>[$e(R(u(P)("backend::lang.form.delete")),1)]),_:1},8,["icon","disabled"])):ae("",!0),O("div",iO,[V.value?(h(),j(et,{key:0,variant:"outline","data-action":"cancel",onClick:de[1]||(de[1]=ge=>we(!1))},{default:F(()=>[$e(R(u(P)("backend::lang.form.close")),1)]),_:1})):(h(),$(_e,{key:1},[z(et,{variant:"ghost","data-action":"cancel",disabled:c.value,onClick:de[2]||(de[2]=ge=>we(!1))},{default:F(()=>[$e(R(u(P)("backend::lang.form.cancel")),1)]),_:1},8,["disabled"]),i.value?ae("",!0):(h(),j(et,{key:0,variant:"primary","data-action":"save-child",disabled:c.value||s.value||u(g)>0,onClick:Ce},{default:F(()=>[$e(R(c.value?u(P)("backend::lang.form.saving"):N.value),1)]),_:1},8,["disabled"]))],64))])])]),_:1},8,["data-mode"])]),_:1})]),_:1},8,["open"]),z(La,{open:u(x).request.value!==null,message:u(x).request.value?.message??"","confirm-label":u(x).request.value?.confirmLabel,danger:u(x).request.value?.danger,onConfirm:u(x).confirm,onCancel:u(x).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),cO={class:"flex items-start gap-3"},dO={class:"flex min-w-0 flex-1 flex-col gap-1"},fO=["title"],pO={key:0,class:"truncate text-[13px] text-muted"},vO=["disabled"],hO={class:"relative block"},mO={class:"sr-only"},yO=["value","placeholder"],gO=["aria-multiselectable","aria-label","aria-busy"],bO=["data-candidate","aria-selected","onClick","onKeydown"],_O={class:"flex size-8 shrink-0 items-center justify-center rounded-full bg-subtle text-[12px] font-bold","aria-hidden":"true"},xO={class:"flex min-w-0 flex-1 flex-col leading-tight"},wO={class:"truncate font-semibold"},kO={key:0,class:"truncate text-[13px] text-muted"},$O={key:0,class:"block size-2.5 rounded-full bg-primary"},CO={key:0,role:"presentation",class:"px-1 py-3 text-[13px] text-muted"},SO={key:1,role:"presentation","data-candidates-empty":"",class:"px-1 py-3 text-[13px] text-muted"},EO=["aria-label"],AO={"data-candidates-range":"",class:"flex-1"},DO=["aria-label","disabled"],PO=["aria-label","disabled"],OO={class:"flex gap-2.5"},MO=["disabled"],TO=["disabled"],RO=["disabled","aria-busy"],qO=5,IO=300,np="inline-flex size-[34px] items-center justify-center rounded-tab border border-border text-text hover:bg-hover disabled:cursor-not-allowed disabled:opacity-60",FO=ee({__name:"RelationPickerModal",props:{open:{type:Boolean},source:{},recordId:{},relation:{},schema:{},sessionKey:{}},emits:["update:open","linked","closed"],setup(e,{emit:t}){const n=e,a=t,r=T(""),l=T(1),o=T([]),s=T(null),i=T(!1),c=T(!1),d=T(new Set),f=T(null),p=T(1),v=T(null),m=T({}),g=T({}),_=T(null);let y=0,x=null;const S=w(()=>n.schema.manage.list.columns),A=w(()=>S.value[0]?.key??""),V=w(()=>S.value[1]?.key??""),J=w(()=>d.value.size),U=`relation-${n.relation}-candidates`,H=w(()=>n.schema.pivotForm??[]),k=w(()=>H.value.map(b=>b.name)),I=w(()=>H.value.length>0),G=w(()=>`link-${n.relation}`);function D(){return n.sessionKey?{[ya]:n.sessionKey}:void 0}const N=w(()=>{const b=s.value;if(!b||b.total===0)return"";const C=(b.page-1)*b.per_page+1,E=Math.min(b.page*b.per_page,b.total);return P("backend::lang.relation.candidates_range",{from:C,to:E,total:b.total})}),W=w(()=>Math.max(s.value?.last_page??1,1));function B(b){const C=b.id;return typeof C=="number"&&Number.isInteger(C)?C:typeof C=="string"&&/^\d+$/.test(C)?Number(C):null}function Q(b,C){const E=C===""?void 0:b[C];return typeof E=="string"||typeof E=="number"?String(E):""}function ne(b){return b.split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(C=>C.charAt(0).toUpperCase()).join("")}async function ce(){const b=++y;i.value=!0;try{const C=r.value.trim(),{data:E}=await Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/candidates",{params:{path:{...n.source,id:n.recordId,name:n.relation},query:{search:C===""?void 0:C,page:l.value,per_page:qO},header:D()}});if(b!==y)return;o.value=E?.data??[],s.value=E?.meta??null}catch{b===y&&(o.value=[],s.value=null)}finally{b===y&&(i.value=!1)}}function te(){x!==null&&(clearTimeout(x),x=null),y++,r.value="",l.value=1,o.value=[],s.value=null,i.value=!1,d.value=new Set,p.value=1,v.value=null,m.value={},g.value={}}Fe(()=>n.open,b=>{b?(te(),ce()):te()},{immediate:!0});function ie(b){r.value=b.target.value,x!==null&&clearTimeout(x),x=setTimeout(()=>{x=null,l.value=1,ce()},IO)}function le(b){b<1||b>W.value||b===l.value||(l.value=b,ce())}function re(b){const C=B(b);return C!==null&&d.value.has(C)}function we(b){const C=B(b);if(C===null)return;if(I.value){d.value=new Set([C]),v.value=b;return}const E=new Set(d.value);E.has(C)?E.delete(C):E.add(C),d.value=E}async function ue(){!I.value||d.value.size===0||!v.value||(p.value=2,m.value=Tc(H.value),g.value={},await ze(),_.value?.querySelector('input, select, textarea, button, [contenteditable="true"]')?.focus())}async function Ce(){if(c.value)return;p.value=1,g.value={},await ze(),(document.querySelector(`#${U} [aria-selected="true"]`)??f.value)?.focus()}function pe(b,C){if(m.value={...m.value,[b]:C},g.value[b]){const E={...g.value};delete E[b],g.value=E}}function Z(b,C,E){switch(b.key){case" ":b.preventDefault(),we(C);break;case"Enter":b.preventDefault(),we(C),I.value&&ue();break;case"ArrowDown":case"ArrowUp":{b.preventDefault();const Y=b.currentTarget.parentElement?.querySelectorAll('[role="option"]'),M=b.key==="ArrowDown"?1:-1;Y?.[Math.min(Math.max(E+M,0),Y.length-1)]?.focus();break}}}function ve(b){a("update:open",b)}async function X(){const b=[...d.value];if(c.value||b.length===0)return;const C=I.value;c.value=!0;try{const E=await Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/link",{params:{path:{...n.source,id:n.recordId,name:n.relation},header:D()},body:C?{ids:b.slice(0,1),pivot:Ht(H.value,m.value)}:{ids:b}});if(E.data){ve(!1),a("linked",E.data.data.linked??b.length);return}const Y=E.response.status;if(C&&Y===422){g.value=Ll(E.error?.error.details);const M=H.value.find(K=>g.value[K.name]);M&&(await ze(),jl(G.value,M.name));return}if(C&&Y===404){Oe(P("backend::lang.relation.child_gone"),"danger"),d.value=new Set,v.value=null,p.value=1,ce();return}if(C){Oe(P("backend::lang.form.error_generic"),"danger");return}Oe(E.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{c.value=!1}}function de(b){b.preventDefault(),f.value?.focus()}function ge(b){b.preventDefault(),a("closed")}return qt(()=>{x!==null&&clearTimeout(x)}),(b,C)=>(h(),j(u(ql),{open:e.open,"onUpdate:open":ve},{default:F(()=>[z(u(Es),null,{default:F(()=>[z(u(Fl),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),z(u(Il),{"data-relation-picker":"","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 rounded-modal bg-surface p-6 text-text shadow-pop",onOpenAutoFocus:de,onCloseAutoFocus:ge},{default:F(()=>[O("div",cO,[O("div",dO,[z(u(Bl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:F(()=>[$e(R(p.value===2?u(Ie)(e.schema.messages.pivotTitle):u(Ie)(e.schema.messages.link)),1)]),_:1}),p.value===1?(h(),j(u(_l),{key:0,class:"text-muted"},{default:F(()=>[$e(R(u(Ie)(e.schema.messages.linkHint)),1)]),_:1})):(h(),j(u(_l),{key:1,class:"flex min-w-0 flex-col","data-chosen-record":""},{default:F(()=>[O("span",{class:"truncate font-semibold text-text",title:Q(v.value??{},A.value)},R(Q(v.value??{},A.value)),9,fO),V.value?(h(),$("span",pO,R(Q(v.value??{},V.value)),1)):ae("",!0)]),_:1}))]),z(u(Sr),{"data-action":"close","aria-label":u(P)("backend::lang.form.close"),class:"flex size-[34px] shrink-0 items-center justify-center rounded-tab bg-subtle text-muted hover:bg-hover hover:text-text"},{default:F(()=>[z(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label"])]),p.value===2?(h(),$("div",{key:0,ref_key:"stepTwo",ref:_,"data-pivot-step":"",class:"flex min-h-0 flex-col gap-4 overflow-y-auto"},[z(Vl,{errors:g.value,"field-names":k.value},null,8,["errors","field-names"]),O("form",{novalidate:"",onSubmit:pt(X,["prevent"])},[O("fieldset",{disabled:c.value,class:"m-0 min-w-0 border-0 p-0"},[z(Ul,{fields:H.value,values:m.value,errors:g.value,source:e.source,"record-id":null,"id-prefix":G.value,onUpdate:pe},null,8,["fields","values","errors","source","id-prefix"])],8,vO)],32)],512)):ae("",!0),qa(O("label",hO,[O("span",mO,R(u(P)("backend::lang.list.search")),1),z(u(ds),{size:18,class:"pointer-events-none absolute top-1/2 left-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("input",{ref_key:"searchInput",ref:f,type:"search","data-candidate-search":"",value:r.value,placeholder:u(Ie)(e.schema.messages.candidateSearch),"aria-controls":U,class:"h-input w-full rounded-control border border-border-strong bg-surface pr-3.5 pl-10",onInput:ie},null,40,yO)],512),[[Zi,p.value===1]]),qa(O("ul",{id:U,role:"listbox","aria-multiselectable":I.value?"false":"true","aria-label":u(Ie)(e.schema.messages.link),"aria-busy":i.value?"true":void 0,class:"flex min-h-0 flex-col gap-2 overflow-y-auto"},[(h(!0),$(_e,null,Ne(o.value,(E,Y)=>(h(),$("li",{key:B(E)??`row-${Y}`,role:"option",tabindex:"0","data-candidate":B(E)??void 0,"aria-selected":re(E)?"true":"false",class:xe([re(E)?"border-[#e0b020] bg-sel":"border-border hover:bg-hover","flex h-[54px] cursor-pointer items-center gap-3 rounded-inner border px-3 transition-colors duration-150 ease-out"]),onClick:M=>we(E),onKeydown:M=>Z(M,E,Y)},[O("span",_O,R(ne(Q(E,A.value))),1),O("span",xO,[O("span",wO,R(Q(E,A.value)),1),V.value?(h(),$("span",kO,R(Q(E,V.value)),1)):ae("",!0)]),I.value?(h(),$("span",{key:0,"data-radio":"",class:xe([re(E)?"border-primary":"border-border-strong bg-surface","flex size-[18px] shrink-0 items-center justify-center rounded-full border"]),"aria-hidden":"true"},[re(E)?(h(),$("span",$O)):ae("",!0)],2)):(h(),$("span",{key:1,class:xe([re(E)?"border-primary bg-primary text-on-primary":"border-border-strong bg-surface","flex size-[18px] shrink-0 items-center justify-center rounded-checkbox border"]),"aria-hidden":"true"},[re(E)?(h(),j(u(_r),{key:0,size:14})):ae("",!0)],2))],42,bO))),128)),i.value&&o.value.length===0?(h(),$("li",CO,R(u(P)("backend::lang.list.loading")),1)):!i.value&&o.value.length===0?(h(),$("li",SO,R(u(P)("backend::lang.relation.no_candidates")),1)):ae("",!0)],8,gO),[[Zi,p.value===1]]),p.value===1&&s.value&&s.value.total>0?(h(),$("nav",{key:1,"aria-label":u(P)("backend::lang.list.pagination"),class:"flex items-center gap-2 text-[13px] text-muted"},[O("span",AO,R(N.value),1),O("button",{type:"button","data-page":"prev","aria-label":u(P)("backend::lang.list.prev_page"),class:xe(np),disabled:i.value||l.value<=1,onClick:C[0]||(C[0]=E=>le(l.value-1))},[z(u(cs),{size:16,"aria-hidden":"true"})],8,DO),O("button",{type:"button","data-page":"next","aria-label":u(P)("backend::lang.list.next_page"),class:xe(np),disabled:i.value||l.value>=W.value,onClick:C[1]||(C[1]=E=>le(l.value+1))},[z(u(Ol),{size:16,"aria-hidden":"true"})],8,PO)],8,EO)):ae("",!0),O("div",OO,[p.value===2?(h(),$("button",{key:0,type:"button","data-action":"back",disabled:c.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:Ce},R(u(P)("backend::lang.relation.back")),9,MO)):(h(),j(u(Sr),{key:1,"data-action":"cancel",class:"inline-flex h-button flex-1 items-center justify-center rounded-control border border-border-strong bg-surface font-semibold hover:bg-hover"},{default:F(()=>[$e(R(u(P)("backend::lang.form.cancel")),1)]),_:1})),I.value&&p.value===1?(h(),$("button",{key:2,type:"button","data-action":"next",disabled:J.value===0,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",onClick:ue},R(u(P)("backend::lang.relation.next")),9,TO)):(h(),$("button",{key:3,type:"button","data-action":"confirm-link",disabled:c.value||J.value===0,"aria-busy":c.value?"true":void 0,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",onClick:X},[I.value?(h(),$(_e,{key:0},[$e(R(c.value?u(P)("backend::lang.form.saving"):u(Ie)(e.schema.messages.linkSubmit)),1)],64)):(h(),$(_e,{key:1},[$e(R(u(P)("backend::lang.relation.add_count",{count:J.value})),1)],64))],8,RO))])]),_:1})]),_:1})]),_:1},8,["open"]))}}),BO={class:"flex items-start gap-3"},NO={class:"flex min-w-0 flex-1 flex-col gap-1"},VO={key:0,"data-pivot-loading":"","aria-hidden":"true",class:"flex flex-col gap-1.5"},LO={key:1,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},jO=["disabled"],UO={class:"flex gap-2.5"},zO=["disabled"],HO=["disabled"],KO=ee({__name:"RelationPivotModal",props:{open:{type:Boolean},source:{},ownerId:{},relation:{},schema:{},childId:{},childName:{},sessionKey:{}},emits:["update:open","saved","gone","closed"],setup(e,{emit:t}){const n=e,a=t,r=T({}),l=T({}),o=T(!1),s=T(!1),i=T(!1),c=T(""),d=ja();let f=0;const p=w(()=>`pivot-${n.relation}`),v=w(()=>n.schema.pivotForm??[]),m=w(()=>v.value.map(H=>H.name)),g=w(()=>!o.value&&!s.value&&ca(Ht(v.value,r.value))!==c.value);function _(){return{[ya]:n.sessionKey}}function y(H){return{...n.source,id:n.ownerId,name:n.relation,child:H}}function x(H,k){if(r.value={...r.value,[H]:k},l.value[H]){const I={...l.value};delete I[H],l.value=I}}function S(){a("update:open",!1),Oe(P("backend::lang.relation.child_gone"),"danger"),a("gone")}async function A(){const H=++f;if(l.value={},s.value=!1,i.value=!1,r.value={},c.value=ca({}),n.childId!==null){o.value=!0;try{const k=await Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/pivot/{child}",{params:{path:y(n.childId),header:_()}});if(H!==f)return;k.data?(r.value={...k.data.data},c.value=ca(Ht(v.value,r.value))):k.response.status===404?S():s.value=!0}catch{H===f&&(s.value=!0)}finally{H===f&&(o.value=!1)}}}Fe(()=>n.open,H=>{H?A():f++},{immediate:!0});async function V(H){if(H){a("update:open",!0);return}i.value||g.value&&!await d.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||a("update:open",!1)}async function J(){if(!(i.value||o.value||s.value||n.childId===null)){i.value=!0;try{const H=await Me.PUT("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/pivot/{child}",{params:{path:y(n.childId),header:_()},body:Ht(v.value,r.value)});if(H.data){l.value={},c.value=ca(Ht(v.value,r.value)),a("update:open",!1),Oe(Ie(n.schema.messages.pivotSaved)),a("saved");return}const k=H.response.status;if(k===422){l.value=Ll(H.error?.error.details);const I=v.value.find(G=>l.value[G.name]);I&&(await ze(),jl(p.value,I.name))}else k===404?S():Oe(P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{i.value=!1}}}function U(H){H.preventDefault(),a("closed")}return(H,k)=>(h(),$(_e,null,[z(u(ql),{open:e.open,"onUpdate:open":V},{default:F(()=>[z(u(Es),null,{default:F(()=>[z(u(Fl),{"data-dialog-overlay":"",class:"fixed inset-0 z-40 bg-overlay"}),z(u(Il),{"data-relation-pivot-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:U},{default:F(()=>[O("div",BO,[O("div",NO,[z(u(Bl),{class:"text-[20px] font-bold tracking-[-0.01em]"},{default:F(()=>[$e(R(u(Ie)(e.schema.messages.pivotTitle)),1)]),_:1}),z(u(_l),{class:"truncate text-muted",title:e.childName},{default:F(()=>[$e(R(e.childName),1)]),_:1},8,["title"])]),z(u(Sr),{"data-action":"close","aria-label":u(P)("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:F(()=>[z(u(Wt),{size:16,"aria-hidden":"true"})]),_:1},8,["aria-label","disabled"])]),o.value?(h(),$("div",VO,[...k[1]||(k[1]=[O("span",{class:"block h-3 w-24 rounded-[6px] bg-skel"},null,-1),O("span",{class:"block h-input rounded-control bg-skel"},null,-1)])])):s.value?(h(),$("p",LO,R(u(P)("backend::lang.relation.child_load_failed")),1)):(h(),$("form",{key:2,class:"flex flex-col gap-4",novalidate:"",onSubmit:pt(J,["prevent"])},[z(Vl,{errors:l.value,"field-names":m.value},null,8,["errors","field-names"]),O("fieldset",{disabled:i.value,class:"m-0 min-w-0 border-0 p-0"},[z(Ul,{fields:v.value,values:r.value,errors:l.value,source:e.source,"record-id":null,"id-prefix":p.value,onUpdate:x},null,8,["fields","values","errors","source","id-prefix"])],8,jO)],32)),O("div",UO,[O("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:k[0]||(k[0]=I=>V(!1))},R(u(P)("backend::lang.form.cancel")),9,zO),O("button",{type:"button","data-action":"save-pivot",disabled:i.value||o.value||s.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",onClick:J},R(i.value?u(P)("backend::lang.form.saving"):u(Ie)(e.schema.messages.pivotSubmit)),9,HO)])]),_:1})]),_:1})]),_:1},8,["open"]),z(La,{open:u(d).request.value!==null,message:u(d).request.value?.message??"","confirm-label":u(d).request.value?.confirmLabel,danger:u(d).request.value?.danger,onConfirm:u(d).confirm,onCancel:u(d).cancel},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])],64))}}),WO=["id","data-relation-name","data-deferred","aria-labelledby","aria-describedby"],GO={class:"flex flex-col gap-2"},YO={class:"flex flex-wrap items-center gap-3"},JO={class:"flex min-w-0 flex-1 flex-col"},ZO=["id"],QO=["id"],XO={key:0,class:"relative block w-[220px] max-w-full"},eM={class:"sr-only"},tM=["value","placeholder"],nM={key:0,"data-relation-pending":"",class:"flex items-center gap-2 text-[13px] text-muted"},aM={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},rM={key:1,class:"overflow-hidden rounded-inner border border-border"},lM={"data-relation-empty":"",class:"text-muted"},oM=["aria-label","onClick"],sM=300,iM=ee({__name:"RelationManager",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Rr,null),a=w(()=>t.field.relation||t.field.name),r=w(()=>typeof t.recordId=="number"?t.recordId:n&&n.recordId===0&&t.field.deferrable?0:null),l=w(()=>r.value===0),o=w(()=>t.source!=null&&r.value!==null),s=n?.key??Cl(),i=T(null),c=T([]),d=T(null),f=T(!0),p=T(!1),v=T(""),m=T(1),g=T(null),_=T([]),y=T(!1),x=T(!1),S=T(!1),A=T("create"),V=T(null),J=T(!1),U=T(null),H=T("");let k=null,I=null,G=null;const D=ja();let N=0,W=null;const B=w(()=>i.value?.view.list.columns??[]),Q=w(()=>i.value?.view.toolbarButtons??[]),ne=w(()=>i.value?.messages),ce=w(()=>`${t.controlId}-heading`),te=w(()=>`${t.controlId}-comment`),ie=w(()=>Q.value.includes("create")&&(i.value?.manageForm?.length??0)>0),le=w(()=>Q.value.includes("update")&&(i.value?.manageForm?.length??0)>0),re=w(()=>i.value?.kind==="belongsToMany"&&(i.value?.pivotForm?.length??0)>0&&(Q.value.includes("link")||Q.value.includes("update"))),we=w(()=>(i.value?.viewForm?.length??0)>0),ue=w(()=>le.value?"update":re.value?"pivot":we.value?"preview":null),Ce=w(()=>le.value&&re.value),pe=w(()=>Q.value.includes("unlink")||Q.value.includes("delete"));function Z(){return l.value?{[ya]:s}:void 0}function ve(){return{...t.source,id:r.value,name:a.value}}function X(){l.value&&n?.markDirty()}async function de(){const{data:De}=await Me.GET("/{vendor}/{plugin}/{controller}/schema/relation/{name}",{params:{path:{...t.source,name:a.value}}});i.value=De?.data??null}async function ge(){const De=++N;f.value=!0,p.value=!1;try{const Ae=v.value.trim(),qe={page:m.value};Ae!==""&&(qe.search=Ae),g.value&&(qe.sort=g.value.column,qe.dir=g.value.dir);const{data:kt}=await Me.GET("/{vendor}/{plugin}/{controller}/{id}/relations/{name}",{params:{path:ve(),query:qe,header:Z()}});if(De!==N)return;c.value=kt?.data??[],d.value=kt?.meta??null,p.value=!kt}catch{De===N&&(c.value=[],d.value=null,p.value=!0)}finally{De===N&&(f.value=!1)}}async function b(){if(o.value){try{await de()}catch{i.value=null}if(!i.value){f.value=!1,p.value=!0;return}await ge()}}function C(De){v.value=De.target.value,W!==null&&clearTimeout(W),W=setTimeout(()=>{W=null,m.value=1,_.value=[],ge()},sM)}function E(De){m.value=De,_.value=[],ge()}function Y(De){const Ae=g.value;Ae?.column!==De?g.value={column:De,dir:"asc"}:Ae.dir==="asc"?g.value={column:De,dir:"desc"}:g.value=null,m.value=1,_.value=[],ge()}function M(){return _.value.map(Number).filter(De=>Number.isInteger(De)&&De>0)}function K(De){const Ae=De.id;return typeof Ae=="number"&&Number.isInteger(Ae)?Ae:typeof Ae=="string"&&/^\d+$/.test(Ae)?Number(Ae):null}function oe(De){const Ae=B.value[0]?.key,qe=Ae?De[Ae]:void 0;return typeof qe=="string"||typeof qe=="number"?String(qe):""}async function se(){const De=M();if(!(y.value||De.length===0||!i.value||!await D.ask({message:Ie(ne.value?.unlinkConfirm,De.length),confirmLabel:Ie(ne.value?.unlinkSelected),danger:!0}))){y.value=!0;try{const qe=await Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/unlink",{params:{path:ve(),header:Z()},body:{ids:De}});if(qe.data){_.value=[],X(),Oe(Ie(ne.value?.unlinked,qe.data.data.removed??De.length)),await ge();return}Oe(qe.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{y.value=!1}}}async function me(De){y.value=!0;try{const Ae=await Me.POST("/{vendor}/{plugin}/{controller}/{id}/relations/{name}/delete",{params:{path:ve(),header:Z()},body:{ids:De}});if(Ae.data){_.value=[],X(),Oe(Ie(ne.value?.deleted,Ae.data.data.deleted||De.length)),await ge();return}Oe(Ae.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{y.value=!1}}async function fe(){const De=M();y.value||De.length===0||!i.value||await D.ask({message:Ie(ne.value?.deleteConfirm,De.length),confirmLabel:Ie(ne.value?.deleteSelected),danger:!0},()=>me(De))}async function Ee(De){X(),Oe(Ie(ne.value?.linked,De)),_.value=[],await ge()}function be(De){k=De.currentTarget??G,A.value="create",V.value=null,S.value=!0}function Se(De,Ae){const qe=K(De);qe!==null&&(k=Ae,U.value=qe,H.value=oe(De),J.value=!0)}function Re(De,Ae){const qe=ue.value,kt=K(De);if(!(qe===null||kt===null)){if(qe==="pivot"){Se(De,Ae);return}k=Ae,A.value=qe,V.value=kt,S.value=!0}}async function je(){X(),_.value=[],await ge()}async function We(){X(),await ge()}async function Ue(){_.value=[],await ge()}function lt(){const De=k&&k.isConnected?k:null;k=null,De?.focus()}function it(){I?.focus()}function wt(De){const Ae=De?.$el;return Ae instanceof HTMLElement?Ae:null}function Pt(De){I=wt(De)}function on(De){G=wt(De)}return qt(()=>{W!==null&&clearTimeout(W)}),b(),(De,Ae)=>o.value?(h(),$("section",{key:0,id:e.controlId,"data-relation-manager":"","data-relation-name":a.value,"data-deferred":l.value?"true":void 0,"aria-labelledby":ce.value,"aria-describedby":e.field.comment?te.value:void 0,tabindex:"-1",class:"flex flex-col gap-4"},[O("div",GO,[O("header",YO,[O("div",JO,[O("h2",{id:ce.value,class:"text-[17px] font-bold tracking-[-0.01em]"},R(i.value?.label||e.field.label||a.value),9,ZO),e.field.comment?(h(),$("p",{key:0,id:te.value,class:"text-[13px] text-muted"},R(e.field.comment),9,QO)):ae("",!0)]),i.value?.view.showSearch?(h(),$("label",XO,[O("span",eM,R(u(P)("backend::lang.list.search")),1),z(u(ds),{size:16,class:"pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 text-muted","aria-hidden":"true"}),O("input",{type:"search","data-relation-search":"",value:v.value,placeholder:u(P)("backend::lang.list.search_prompt"),class:"h-[38px] w-full rounded-control border border-transparent bg-subtle pr-3 pl-9",onInput:C,onKeydown:Ae[0]||(Ae[0]=yr(pt(()=>{},["prevent"]),["enter"]))},null,40,tM)])):ae("",!0),(h(!0),$(_e,null,Ne(Q.value,qe=>(h(),$(_e,{key:qe},[qe==="create"&&ie.value?(h(),j(et,{key:0,ref_for:!0,ref:on,"data-action":"create",size:"sm",variant:"primary",icon:u(ju),disabled:y.value||!i.value,"aria-haspopup":"dialog",onClick:be},{default:F(()=>[$e(R(u(Ie)(ne.value?.create)),1)]),_:1},8,["icon","disabled"])):qe==="link"?(h(),j(et,{key:1,ref_for:!0,ref:Pt,"data-action":"link",size:"sm",variant:ie.value?"outline":"primary",icon:u(Xv),disabled:y.value||!i.value,"aria-haspopup":"dialog",onClick:Ae[1]||(Ae[1]=kt=>x.value=!0)},{default:F(()=>[$e(R(u(Ie)(ne.value?.link)),1)]),_:1},8,["variant","icon","disabled"])):qe==="delete"?(h(),j(et,{key:2,"data-action":"delete",size:"sm",variant:"danger",icon:u(Ml),disabled:y.value||_.value.length===0,onClick:fe},{default:F(()=>[$e(R(u(Ie)(ne.value?.deleteSelected)),1)]),_:1},8,["icon","disabled"])):qe==="unlink"?(h(),j(et,{key:3,"data-action":"unlink",size:"sm",variant:"danger",icon:u(Qv),disabled:y.value||_.value.length===0,onClick:se},{default:F(()=>[$e(R(u(Ie)(ne.value?.unlinkSelected)),1)]),_:1},8,["icon","disabled"])):ae("",!0)],64))),128))]),l.value?(h(),$("p",nM,[z(u(D0),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,R(u(P)("backend::lang.relation.pending_note")),1)])):ae("",!0)]),p.value&&!f.value?(h(),$("p",aM,R(u(P)("backend::lang.relation.load_failed")),1)):(h(),$("div",rM,[z(Um,{selected:_.value,"onUpdate:selected":Ae[2]||(Ae[2]=qe=>_.value=qe),variant:"relation",columns:B.value,rows:c.value,loading:f.value,selectable:pe.value,sortable:!0,sort:g.value,openable:ue.value!==null,trailing:Ce.value,onSort:Y,onOpen:Re},{empty:F(()=>[O("span",lM,R(u(Ie)(ne.value?.empty)),1)]),trailing:F(({row:qe})=>[O("button",{type:"button","data-action":"edit-pivot","aria-label":u(Ie)(ne.value?.editPivot,void 0,{name:oe(qe)}),class:"flex size-8 items-center justify-center rounded-pager text-muted transition-colors duration-150 ease-out hover:bg-hover hover:text-text",onClick:kt=>Se(qe,kt.currentTarget)},[z(u(X0),{size:16,"aria-hidden":"true"})],8,oM)]),_:1},8,["selected","columns","rows","loading","selectable","sort","openable","trailing"]),d.value&&d.value.last_page>1?(h(),j(zm,{key:0,meta:d.value,loading:f.value,"per-page-options":[],"per-page":d.value.per_page,onPage:E},null,8,["meta","loading","per-page"])):ae("",!0)])),i.value&&Q.value.includes("link")?(h(),j(FO,{key:2,open:x.value,"onUpdate:open":Ae[3]||(Ae[3]=qe=>x.value=qe),source:e.source,"record-id":r.value,relation:a.value,schema:i.value,"session-key":l.value?u(s):null,onLinked:Ee,onClosed:it},null,8,["open","source","record-id","relation","schema","session-key"])):ae("",!0),i.value&&(ie.value||ue.value==="update"||ue.value==="preview")?(h(),j(uO,{key:3,open:S.value,"onUpdate:open":Ae[4]||(Ae[4]=qe=>S.value=qe),source:e.source,"owner-id":r.value,relation:a.value,schema:i.value,mode:A.value,"child-id":V.value,"session-key":u(s),"can-delete":Q.value.includes("delete"),onChanged:je,onGone:Ue,onClosed:lt},null,8,["open","source","owner-id","relation","schema","mode","child-id","session-key","can-delete"])):ae("",!0),i.value&&re.value?(h(),j(KO,{key:4,open:J.value,"onUpdate:open":Ae[5]||(Ae[5]=qe=>J.value=qe),source:e.source,"owner-id":r.value,relation:a.value,schema:i.value,"child-id":U.value,"child-name":H.value,"session-key":u(s),onSaved:We,onGone:Ue,onClosed:lt},null,8,["open","source","owner-id","relation","schema","child-id","child-name","session-key"])):ae("",!0),z(La,{open:u(D).request.value!==null,message:u(D).request.value?.message??"","confirm-label":u(D).request.value?.confirmLabel,danger:u(D).request.value?.danger,busy:u(D).busy.value,onConfirm:u(D).confirm,onCancel:u(D).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])],8,WO)):ae("",!0)}}),uM=["id","aria-describedby"],cM=["data-relation"],dM={class:"flex size-[22px] items-center justify-center rounded-full bg-primary text-[10px] font-bold text-on-primary","aria-hidden":"true"},fM={class:"font-semibold"},pM=["aria-label","onClick"],vM=["id","aria-expanded","aria-controls","aria-activedescendant","aria-required","aria-invalid","aria-describedby","value","placeholder"],hM={key:1,class:"relative"},mM=["id","aria-expanded","aria-controls","aria-activedescendant","aria-required","aria-invalid","aria-describedby","value","placeholder"],yM=["id"],gM=["id","data-value","aria-selected","onMousedown"],bM={key:0,role:"presentation",class:"px-3 py-2 text-[13px] text-muted"},_M={key:1,role:"presentation",class:"px-3 py-2 text-[13px] text-muted"},xM={key:2,role:"presentation",class:"p-1"},wM=20,kM=300,$M=ee({__name:"RelationField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.field.readOnly?"readonly":n.field.multiple?"multiple":"single"),l=w(()=>`${n.controlId}-listbox`),o=T({});Fe(()=>n.labels,te=>{const ie={...o.value};for(const le of te??[])ie[le.value]=le.label;o.value=ie},{immediate:!0});function s(te){return typeof te=="number"&&Number.isInteger(te)?te:typeof te=="string"&&/^\d+$/.test(te)?Number(te):null}const i=w(()=>s(n.modelValue)),c=w(()=>Array.isArray(n.modelValue)?n.modelValue.map(s).filter(te=>te!==null):[]);function d(te){return o.value[te]??String(te)}function f(te){return te.split(/[\s@._-]+/).filter(Boolean).slice(0,2).map(ie=>ie.charAt(0).toUpperCase()).join("")}const p=w(()=>{const te=n.labels?.[0]?.label;return te||(n.field.emptyOption??"—")}),v=T(!1),m=T(""),g=T([]),_=T(0),y=T(0),x=T(!1),S=T(-1);let A=0,V=null;const J=w(()=>_.value{const te=[];r.value==="single"&&n.field.emptyOption!==void 0&&te.push({key:"empty",label:n.field.emptyOption,value:null,muted:!0});const ie=new Set(c.value);for(const le of g.value)r.value==="multiple"&&ie.has(le.value)||te.push({key:`option-${le.value}`,label:le.label,value:le.value,muted:!1});return te});function k(te){return`${l.value}-${te}`}function I(){v.value||(v.value=!0,S.value=-1,U(1,!1))}function G(){v.value=!1,m.value="",S.value=-1,V!==null&&(clearTimeout(V),V=null)}function D(te){m.value=te.target.value,v.value=!0,S.value=-1,V!==null&&clearTimeout(V),V=setTimeout(()=>{V=null,U(1,!1)},kM)}function N(){J.value&&!x.value&&U(_.value+1,!0)}function W(te){const ie=te.target;ie.scrollTop+ie.clientHeight>=ie.scrollHeight-24&&N()}function B(te){r.value==="multiple"?te.value!==null&&!c.value.includes(te.value)&&a("update:modelValue",[...c.value,te.value]):a("update:modelValue",te.value),G()}function Q(te){a("update:modelValue",c.value.filter(ie=>ie!==te))}function ne(te){switch(te.key){case"ArrowDown":te.preventDefault(),v.value?S.value=Math.min(S.value+1,H.value.length-1):I();break;case"ArrowUp":te.preventDefault(),S.value=Math.max(S.value-1,0);break;case"Enter":if(v.value){te.preventDefault();const ie=H.value[S.value];ie&&B(ie)}break;case"Escape":v.value&&(te.preventDefault(),G());break;case"Backspace":r.value==="multiple"&&m.value===""&&c.value.length>0&&Q(c.value[c.value.length-1]);break}}const ce=w(()=>i.value!==null?d(i.value):n.field.emptyOption??"");return qt(()=>{V!==null&&clearTimeout(V)}),(te,ie)=>r.value==="readonly"?(h(),$("div",{key:0,id:e.controlId,"data-relation-readonly":"","aria-describedby":e.describedBy||void 0,class:xe([e.labels?.[0]?.label?"text-text":"text-muted","flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5"])},R(p.value),11,uM)):(h(),$("div",{key:1,class:"relative","data-relation":r.value},[r.value==="multiple"?(h(),$("div",{key:0,class:xe([e.invalid?"border-danger":"border-border-strong","flex min-h-input flex-wrap items-center gap-1.5 rounded-control border bg-surface p-1.5"])},[(h(!0),$(_e,null,Ne(c.value,le=>(h(),$("span",{key:le,"data-chip":"",class:"inline-flex h-[30px] items-center gap-1.5 rounded-pill bg-subtle pr-1 pl-1"},[O("span",dM,R(f(d(le))),1),O("span",fM,R(d(le)),1),O("button",{type:"button","aria-label":u(P)("backend::lang.form.remove_item",{name:d(le)}),class:"flex size-6 items-center justify-center rounded-full text-muted hover:bg-hover hover:text-text",onClick:re=>Q(le)},[z(u(Wt),{size:14,"aria-hidden":"true"})],8,pM)]))),128)),O("input",{id:e.controlId,type:"text",role:"combobox",autocomplete:"off","aria-expanded":v.value?"true":"false","aria-controls":l.value,"aria-autocomplete":"list","aria-activedescendant":v.value&&S.value>=0?k(S.value):void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,value:m.value,placeholder:u(P)("backend::lang.form.add_item"),class:"h-[30px] min-w-[120px] flex-1 border-0 bg-transparent px-2 focus-visible:shadow-none",onClick:I,onInput:D,onKeydown:ne,onBlur:G},null,40,vM)],2)):(h(),$("div",hM,[O("input",{id:e.controlId,type:"text",role:"combobox",autocomplete:"off","aria-expanded":v.value?"true":"false","aria-controls":l.value,"aria-autocomplete":"list","aria-activedescendant":v.value&&S.value>=0?k(S.value):void 0,"aria-required":e.field.required?"true":void 0,"aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,value:v.value?m.value:ce.value,placeholder:v.value&&ce.value||u(P)("backend::lang.form.select_placeholder"),class:xe([[e.invalid?"border-danger":"border-border-strong",!v.value&&i.value===null?"text-muted":"text-text"],"h-input w-full rounded-control border bg-surface pr-10 pl-3.5"]),onClick:I,onInput:D,onKeydown:ne,onBlur:G},null,42,mM),z(u(Pl),{size:16,class:"pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2 text-muted","aria-hidden":"true"})])),qa(O("ul",{id:l.value,role:"listbox",class:"absolute inset-x-0 top-full z-20 mt-1 max-h-64 overflow-y-auto rounded-inner border border-border bg-surface p-1 shadow-menu",onScroll:W},[(h(!0),$(_e,null,Ne(H.value,(le,re)=>(h(),$("li",{id:k(re),key:le.key,role:"option","data-value":le.value??"empty","aria-selected":r.value==="single"&&le.value===i.value?"true":"false",class:xe([[le.muted?"text-muted":"text-text",re===S.value?"bg-hover":""],"flex h-10 cursor-pointer items-center rounded-control px-3 hover:bg-hover"]),onMousedown:pt(we=>B(le),["prevent"])},R(le.label),43,gM))),128)),x.value?(h(),$("li",bM,R(u(P)("backend::lang.form.loading_options")),1)):H.value.filter(le=>le.value!==null).length===0?(h(),$("li",_M,R(u(P)("backend::lang.form.no_options")),1)):ae("",!0),J.value&&!x.value?(h(),$("li",xM,[O("button",{type:"button","data-action":"more-options",class:"h-8 w-full rounded-control text-[13px] font-semibold text-muted hover:bg-hover hover:text-text",onMousedown:pt(N,["prevent"])},R(u(P)("backend::lang.form.more_options")),33)])):ae("",!0)],40,yM),[[Zi,v.value]])],8,cM))}}),CM={class:"flex min-w-0 flex-col"},SM=["for"],EM={key:0,class:"text-danger","aria-hidden":"true"},AM=["id"],DM=["id","aria-checked","aria-invalid","aria-describedby"],PM=ee({__name:"SwitchField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>Dc(n.modelValue));function l(){a("update:modelValue",Jm(n.modelValue,!r.value))}return(o,s)=>(h(),$("div",{class:xe([e.invalid?"border-danger":"border-border","flex items-center justify-between gap-4 rounded-inner border px-4 py-3.5"]),"data-toggle-card":""},[O("div",CM,[O("label",{for:e.controlId,class:"font-semibold"},[$e(R(e.field.label||e.field.name),1),e.field.required?(h(),$("span",EM," *")):ae("",!0)],8,SM),e.field.comment?(h(),$("p",{key:0,id:`${e.controlId}-comment`,class:"text-[13px] text-muted"},R(e.field.comment),9,AM)):ae("",!0)]),O("button",{id:e.controlId,type:"button",role:"switch","aria-checked":r.value?"true":"false","aria-invalid":e.invalid?"true":void 0,"aria-describedby":e.describedBy||void 0,class:xe([r.value?"bg-primary":"bg-border-strong","relative h-[26px] w-11 shrink-0 rounded-pill transition-colors duration-150 ease-out"]),onClick:l},[O("span",{class:xe([r.value?"translate-x-[18px] bg-on-primary":"translate-x-0 bg-white","absolute top-[3px] left-[3px] size-5 rounded-full shadow-tab transition-transform duration-150 ease-out"]),"aria-hidden":"true"},null,2)],10,DM)],2))}}),OM=["id","name","value","required","aria-required","aria-invalid","aria-describedby"],MM=ee({__name:"TextField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),l=w(()=>Rs(n.field));return(o,s)=>(h(),$("input",Ve({id:e.controlId},l.value,{name:e.field.name,type:"text",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(ga)(e.invalid),"h-input"],onInput:s[0]||(s[0]=i=>a("update:modelValue",i.target.value))}),null,16,OM))}}),TM=["id","name","rows","value","required","aria-required","aria-invalid","aria-describedby"],RM=ee({__name:"TextareaField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r={tiny:2,small:4,large:8,huge:12,giant:18},l=w(()=>r[n.field.size??""]??5),o=w(()=>n.modelValue===null||n.modelValue===void 0?"":String(n.modelValue)),s=w(()=>Rs(n.field));return(i,c)=>(h(),$("textarea",Ve({id:e.controlId},s.value,{name:e.field.name,rows:l.value,value:o.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(ga)(e.invalid),"min-h-input resize-y py-2.5"],onInput:c[0]||(c[0]=d=>a("update:modelValue",d.target.value))}),null,16,TM))}}),qM=["id","aria-describedby"],IM={key:0},FM={class:"font-mono text-text"},BM={key:1},NM={class:"font-mono text-text"},oo="\0",VM=ee({__name:"UnsupportedField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=w(()=>{const[r="",l=""]=P("backend::lang.form.unsupported_field",{type:oo}).split(oo);return{before:r,after:l}}),a=w(()=>P("backend::lang.form.unsupported_field",{type:oo}).includes(oo));return(r,l)=>(h(),$("div",{id:e.controlId,"data-unsupported-field":"","aria-describedby":e.describedBy||void 0,class:"flex min-h-input items-center gap-2.5 rounded-control border-[1.5px] border-dashed border-border-strong bg-subtle px-3.5 text-[13px] text-muted"},[z(u(Yv),{size:16,"aria-hidden":"true"}),a.value?(h(),$("span",IM,[$e(R(n.value.before),1),O("code",FM,R(t.field.type),1),$e(R(n.value.after),1)])):(h(),$("span",BM,[$e(R(u(P)("backend::lang.form.unsupported_field"))+" ",1),O("code",NM,R(t.field.type),1)]))],8,qM))}}),LM=["id","aria-labelledby","aria-describedby","aria-busy"],jM={key:0,"data-widget-skeleton":"",class:"h-[42px] w-[160px] rounded-control bg-skel","aria-hidden":"true"},UM=ee({__name:"WidgetField",props:{field:{},modelValue:{},controlId:{},invalid:{type:Boolean},describedBy:{},labels:{},source:{},recordId:{}},setup(e){const t=e,n=st(Pc,null),a=st(Oc,()=>{}),r=st(Zm,null),l=st(Qm,()=>Promise.resolve([])),o=T("loading"),s=T(null);let i=null,c=!1,d=!1;function f(){const S=n?.value??{},A={};for(const V of t.field.fill??[])S[V]!==void 0&&(A[V]=S[V]);return A}const p=w(()=>JSON.stringify(f())),v=w(()=>r?.value||ml.value);function m(S){let A;return{promise:new Promise((J,U)=>{A=setTimeout(()=>U(new Error("widget element was not defined in time")),S)}),cancel:()=>clearTimeout(A)}}async function g(S){const A=await l();if(customElements.get(S))return;if(A.length>0)throw new Error(`plugin script failed: ${A.join(", ")}`);const V=m(rD);try{await Promise.race([customElements.whenDefined(S),V.promise])}finally{V.cancel()}}function _(S){Oe(S||P("backend::lang.extension.action_failed"),"danger"),i?.setAttribute("state","error")}async function y(){const S=t.source;if(!(!i||c||!S)){c=!0,i.setAttribute("busy",""),i.removeAttribute("state");try{const A=await Me.POST("/{vendor}/{plugin}/{controller}/widgets/{field}",{params:{path:{...S,field:t.field.name}},body:{record_id:t.recordId??void 0,values:f()}});if(A.data){const V=A.data.data.fill??{};for(const J of t.field.fill??[])Object.hasOwn(V,J)&&a(J,V[J]);A.data.data.message&&Oe(A.data.data.message)}else _(A.error?.error.message)}catch{_()}finally{c=!1,i?.removeAttribute("busy")}}}function x(){y()}return _t(async()=>{const S=t.field.widget??"";try{if(S===""||!t.source)throw new Error("widget field without a tag or controller");if(await g(S),d||!s.value)return;const A=document.createElement(S);A.setAttribute("record-id",t.recordId==null?"":String(t.recordId)),A.setAttribute("field-name",t.field.name),A.setAttribute("locale",v.value),A.setAttribute("fill-values",p.value),A.setAttribute("label",t.field.actionLabel||t.field.label||t.field.name),A.setAttribute("busy-label",P("backend::lang.extension.busy")),A.addEventListener(tp,x),s.value.append(A),i=A,o.value="ready"}catch{d||(o.value="failed")}}),Fe(p,S=>i?.setAttribute("fill-values",S)),Fe(v,S=>i?.setAttribute("locale",S)),qt(()=>{d=!0,i?.removeEventListener(tp,x),i=null}),(S,A)=>o.value==="failed"?(h(),j(Ec,{key:0,id:e.controlId,"data-widget-failed":"","aria-describedby":e.describedBy||void 0,text:u(P)("backend::lang.extension.widget_failed")},null,8,["id","aria-describedby","text"])):(h(),$("div",{key:1,id:e.controlId,role:"group","data-widget-host":"","aria-labelledby":e.field.label?`${e.controlId}-label`:void 0,"aria-describedby":e.describedBy||void 0,"aria-busy":o.value==="loading"?"true":void 0,class:"flex min-h-input items-center"},[o.value==="loading"?(h(),$("span",jM)):ae("",!0),O("div",{ref_key:"mountPoint",ref:s,class:"contents"},null,512)],8,LM))}}),Ua="relation-manager",Xm=new Map([[Ua,()=>iM]]),ey=new Map([["text",MM],["textarea",RM],["number",HP],["dropdown",aD],["switch",PM],["checkbox",TA],["relation",$M],["widget",UM],["partial",WP],["fileupload",UP],["datepicker",XA],["password",ZP]]),zM=new Set(["switch","checkbox",Ua]),HM=new Set([Ua]),KM=new Set([Ua,"widget","partial","fileupload"]),WM=new Set(["widget","partial","fileupload"]);function ty(e){return ey.get(e)??Xm.get(e)?.()??VM}function GM(e){return(ey.has(e)||Xm.has(e))&&!KM.has(e)}function YM(e){return HM.has(e)}function JM(e){return zM.has(e)}function ZM(e){return WM.has(e)}const QM=ee({__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=w(()=>ty(n.field.type));return(l,o)=>(h(),j(en(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]=s=>a("update:modelValue",s))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]))}}),XM=["data-field"],e4=["id"],t4={key:0,class:"text-danger","aria-hidden":"true"},n4=["for"],a4={key:0,class:"text-danger","aria-hidden":"true"},r4=["id"],l4=["id"],o4=ee({__name:"FormField",props:{field:{},modelValue:{},errors:{},labels:{},source:{},recordId:{},idPrefix:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=w(()=>`${n.idPrefix??"field"}-${n.field.name}`),l=w(()=>r.value),o=w(()=>`${r.value}-comment`),s=w(()=>`${r.value}-error`),i=w(()=>(n.errors?.length??0)>0),c=w(()=>JM(n.field.type)),d=w(()=>ZM(n.field.type)),f=w(()=>!c.value&&!!n.field.comment),p=w(()=>[f.value||c.value&&n.field.comment?o.value:"",i.value?s.value:""].filter(Boolean).join(" "));return(v,m)=>(h(),$("div",{class:"flex min-w-0 flex-col gap-1.5","data-field":e.field.name},[d.value&&e.field.label?(h(),$("span",{key:0,id:`${l.value}-label`,class:"font-semibold"},[$e(R(e.field.label),1),e.field.required?(h(),$("span",t4," *")):ae("",!0)],8,e4)):!c.value&&!d.value?(h(),$("label",{key:1,for:l.value,class:"font-semibold"},[$e(R(e.field.label||e.field.name),1),e.field.required?(h(),$("span",a4," *")):ae("",!0)],8,n4)):ae("",!0),z(QM,{field:e.field,"model-value":e.modelValue,"control-id":l.value,invalid:i.value,"described-by":p.value,labels:e.labels,source:e.source,"record-id":e.recordId,"onUpdate:modelValue":m[0]||(m[0]=g=>a("update:modelValue",g))},null,8,["field","model-value","control-id","invalid","described-by","labels","source","record-id"]),f.value?(h(),$("p",{key:2,id:o.value,class:"text-[13px] text-muted"},R(e.field.comment),9,r4)):ae("",!0),i.value?(h(),$("div",{key:3,id:s.value,class:"flex flex-col gap-0.5 text-[13px] text-danger"},[(h(!0),$(_e,null,Ne(e.errors,(g,_)=>(h(),$("p",{key:_,class:"flex items-center gap-1.5"},[z(u(Bt),{size:14,class:"shrink-0","aria-hidden":"true"}),O("span",null,R(g),1)]))),128))],8,l4)):ae("",!0)],8,XM))}}),s4={class:"grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},Ul=ee({__name:"FormGrid",props:{fields:{},values:{},errors:{},labels:{},source:{},recordId:{},idPrefix:{}},emits:["update"],setup(e,{emit:t}){const n=t;function a(r){if(r.type===Ua)return"col-span-full";switch(r.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(r,l)=>(h(),$("div",s4,[(h(!0),$(_e,null,Ne(e.fields,o=>(h(),j(o4,{key:o.name,class:xe(a(o)),field:o,"model-value":e.values[o.name],errors:e.errors[o.name],labels:e.labels?.[o.name],source:e.source,"record-id":e.recordId,"id-prefix":e.idPrefix,"onUpdate:modelValue":s=>n("update",o.name,s)},null,8,["class","field","model-value","errors","labels","source","record-id","id-prefix","onUpdate:modelValue"]))),128))]))}}),i4={class:"flex w-full flex-col gap-5 pb-24"},u4={class:"flex flex-wrap items-center gap-4"},c4={class:"flex min-w-0 flex-1 flex-col"},d4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},f4={key:0,class:"text-muted"},p4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},v4=["id","role","aria-labelledby"],h4={class:"fixed inset-x-0 bottom-0 z-30 flex items-center gap-2.5 border-t border-border bg-surface px-8 py-3.5"},m4={class:"ml-auto flex items-center gap-2.5"},Hr="field",ap=ee({__name:"FormView",setup(e){const t=rn(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=t.name==="create"?"create":"update",s=o==="update"?Number(t.params.id):null,i=T(null),c=T({}),d=T({}),f=T({}),p=T(null),v=T(!0),m=T(!1),g=T(!1),_=T(""),y=T(At),x=ja();let S=!1,A=Promise.resolve([]);const V=Cl(),J={[ya]:V},U=T(0),H=T(0),{activeUploads:k,beginUpload:I}=Mc(),G=w(()=>(i.value?.fields??[]).filter(M=>Is(M,o)&&(o==="update"||!YM(M.type)||M.type===Ua&&!!M.deferrable))),D=w(()=>G.value.map(M=>M.name)),N=w(()=>{if(!G.value.some(K=>K.tab))return[];const M=[];for(const K of G.value){const oe=gn(K);let se=M.find(me=>me.key===oe);se||(se={key:oe,label:K.tab||P("backend::lang.form.tab_default"),errors:0},oe===At?M.unshift(se):M.push(se)),f.value[K.name]&&(se.errors+=1)}return M}),W=w(()=>Math.max(N.value.findIndex(M=>M.key===y.value),0)),B=w(()=>{if(N.value.length===0)return G.value;const M=N.value[W.value]?.key??At;return G.value.filter(K=>gn(K)===M)}),Q=w(()=>{const M=i.value?.fields.find(oe=>oe.type==="text"),K=M?c.value[M.name]:void 0;return typeof K=="string"||typeof K=="number"?String(K).trim():""}),ne=w(()=>{if(o==="update"&&Q.value!=="")return Q.value;const M=o==="create"?i.value?.messages.create:i.value?.messages.update;return Ie(M,void 0,{name:Q.value})}),ce=w(()=>o==="update"?Ie(i.value?.messages.update,void 0,{name:Q.value}):""),te=w(()=>o==="update"&&!!i.value?.preview),ie=w(()=>te.value?`${l}/${s}/preview`:l),le=w(()=>!v.value&&(U.value>0||k.value>0||ca(Ht(G.value,c.value,o))!==_.value));function re(M){M&&(c.value={...M.data},d.value=M.meta.labels??{}),_.value=ca(Ht(G.value,c.value,o))}async function we(){v.value=!0,m.value=!1;const M={path:a},[K,oe]=await Promise.all([Me.GET("/{vendor}/{plugin}/{controller}/schema/form",{params:M}),s!==null?Me.GET("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s}}}):Promise.resolve(null)]);i.value=K.data?.data??null,m.value=!K.data||oe!==null&&!oe.data,i.value&&(A=Sc(r,i.value.assets)),i.value&&o==="create"&&(c.value=Tc(G.value)),re(oe?.data),y.value=N.value[0]?.key??At,v.value=!1}const ue=new Set;function Ce(M,K){const oe={...c.value,[M]:K};if(ue.add(M),o==="create")for(const se of G.value)se.preset?.field===M&&se.type==="text"&&!ue.has(se.name)&&(oe[se.name]=QP(se.preset.type,K));if(c.value=oe,f.value[M]){const se={...f.value};delete se[M],f.value=se}}Dt(Pc,w(()=>c.value)),Dt(Oc,Ce),Dt(Zm,w(()=>i.value?.meta.locale||ml.value)),Dt(Qm,()=>A),Dt(Rr,{key:V,recordId:s??0,routes:M=>Ym(a,s??0,M,V),markDirty:()=>{U.value++},pendingChanges:dt(U),revision:dt(H),beginUpload:I,activeUploads:dt(k)});async function pe(M){f.value=Ll(M?.details);const K=G.value.filter(se=>f.value[se.name]),oe=K.find(se=>gn(se)===y.value)??K[0];oe&&(N.value.length>0&&(y.value=gn(oe)),await ze(),jl(Hr,oe.name))}function Z(M,K){const oe=i.value?.redirects,se=(oe?.[o]?.[M]||oe?.default)??"";return jm(se,r,typeof K=="number"||typeof K=="string"?K:null)}async function ve(){if(g.value||!i.value||k.value>0)return null;g.value=!0,p.value=null;try{const M=Ht(G.value,c.value,o),K=s===null?await Me.POST("/{vendor}/{plugin}/{controller}",{params:{path:a,header:J},body:M}):await Me.PUT("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s},header:J},body:M});return K.data?(f.value={},re(K.data),U.value=0,H.value++,Oe(Ie(i.value.messages.saved,void 0,{name:Q.value})),K.data):(K.response.status===422?await pe(K.error?.error):K.response.status===403?(p.value=K.error?.error.message||P("backend::lang.form.forbidden"),await pe(K.error?.error)):Oe(K.error?.error.message||P("backend::lang.form.error_generic"),"danger"),null)}catch{return Oe(P("backend::lang.form.error_generic"),"danger"),null}finally{g.value=!1}}async function X(M){S=!0;try{await n.push(M)}finally{S=!1}}async function de(){const M=await ve();M&&o==="create"&&await X(Z("redirect",M.data.id))}async function ge(){const M=await ve();M&&await X(Z("redirectClose",M.data.id))}async function b(){if(!(s===null||g.value||!i.value||!await x.ask({message:Ie(i.value.messages.deleteConfirm,void 0,{name:Q.value}),confirmLabel:P("backend::lang.form.delete"),danger:!0}))){g.value=!0;try{const K=await Me.DELETE("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:s}}});if(K.data){Oe(Ie(i.value.messages.deleted,void 0,{name:Q.value})),await X(l);return}const oe=K.response.status===403?"backend::lang.list.action_forbidden":"backend::lang.form.error_generic";Oe(K.error?.error.message||P(oe),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{g.value=!1}}}async function C(){return S||!le.value?!0:x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})}async function E(){le.value&&!await x.ask({message:P("backend::lang.form.unsaved_confirm"),confirmLabel:P("backend::lang.form.discard"),danger:!0})||await X(ie.value)}m1(C),y1(C);function Y(M){le.value&&(M.preventDefault(),M.returnValue="")}return _t(()=>window.addEventListener("beforeunload",Y)),qt(()=>window.removeEventListener("beforeunload",Y)),Xt(()=>ch(v.value?"":ne.value)),qt(dh),we(),(M,K)=>(h(),$("section",i4,[O("header",u4,[z(et,{variant:"outline","data-action":"back","aria-label":u(P)(te.value?"backend::lang.form.return_to_preview":"backend::lang.form.return_to_list"),class:"size-10! px-0!",onClick:E},{default:F(()=>[z(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["aria-label"]),O("div",c4,[O("h1",d4,R(v.value?"":ne.value),1),ce.value?(h(),$("p",f4,R(ce.value),1)):ae("",!0)]),N.value.length>0?(h(),j(Rc,{key:0,modelValue:y.value,"onUpdate:modelValue":K[0]||(K[0]=oe=>y.value=oe),tabs:N.value,"id-prefix":Hr},null,8,["modelValue","tabs"])):ae("",!0)]),m.value&&!v.value?(h(),$("p",p4,R(u(P)("backend::lang.form.load_failed")),1)):i.value?(h(),$(_e,{key:1},[z(Vl,{errors:f.value,"field-names":D.value,forbidden:p.value},null,8,["errors","field-names","forbidden"]),O("form",{id:N.value.length>0?u(qs)(Hr,W.value):void 0,role:N.value.length>0?"tabpanel":void 0,"aria-labelledby":N.value.length>0?u(Sl)(Hr,W.value):void 0,class:"rounded-card border border-border bg-surface p-7 shadow-card",novalidate:"",onSubmit:pt(de,["prevent"])},[z(Ul,{fields:B.value,values:c.value,errors:f.value,labels:d.value,source:a,"record-id":u(s),"id-prefix":Hr,onUpdate:Ce},null,8,["fields","values","errors","labels","record-id"])],40,v4)],64)):ae("",!0),O("footer",h4,[u(o)==="update"?(h(),j(et,{key:0,variant:"danger","data-action":"delete",icon:u(Ml),disabled:g.value||v.value||!i.value,onClick:b},{default:F(()=>[$e(R(u(P)("backend::lang.form.delete")),1)]),_:1},8,["icon","disabled"])):ae("",!0),O("div",m4,[z(et,{variant:"ghost","data-action":"cancel",onClick:E},{default:F(()=>[$e(R(u(P)("backend::lang.form.cancel")),1)]),_:1}),z(et,{variant:"outline","data-action":"save-close",disabled:g.value||v.value||!i.value||u(k)>0,onClick:ge},{default:F(()=>[$e(R(u(P)("backend::lang.form.save_and_close")),1)]),_:1},8,["disabled"]),z(et,{variant:"primary","data-action":"save",disabled:g.value||v.value||!i.value||u(k)>0,onClick:de},{default:F(()=>[$e(R(g.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.form.save")),1)]),_:1},8,["disabled"])])]),z(La,{open:u(x).request.value!==null,message:u(x).request.value?.message??"","confirm-label":u(x).request.value?.confirmLabel,danger:u(x).request.value?.danger,onConfirm:u(x).confirm,onCancel:u(x).cancel,"onUpdate:open":K[1]||(K[1]=oe=>{oe||u(x).cancel()})},null,8,["open","message","confirm-label","danger","onConfirm","onCancel"])]))}}),y4=["data-preview-field"],g4=["id"],b4={class:"m-0 min-w-0"},_4={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"},x4={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"},w4={class:"flex size-[22px] shrink-0 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-on-primary","aria-hidden":"true"},k4={class:"font-semibold"},$4={key:0,class:"px-2 text-muted","data-empty":""},C4={key:0},S4={key:1,class:"text-muted","data-empty":""},E4={key:0},A4={key:1,class:"text-muted","data-empty":""},Ii="flex min-h-input items-center rounded-control border border-border bg-subtle px-3.5 [overflow-wrap:anywhere]",D4=ee({__name:"PreviewField",props:{field:{},value:{},labels:{},source:{},recordId:{},idPrefix:{}},setup(e){const t=e,n=new Set(["datepicker","fileupload","partial","permissioneditor"]),a=w(()=>`${t.idPrefix??"preview"}-${t.field.name}`),r=w(()=>`${a.value}-label`),l=w(()=>{const v=t.field.type;return n.has(v)?"control":v==="checkbox"||v==="switch"?"toggle":v==="relation"?t.field.multiple?"chips":"relation":v==="textarea"?"textarea":"text"}),o=w(()=>({...t.field,readOnly:!0})),s=w(()=>ty(t.field.type));function i(v){return v==null||v===""}const c=w(()=>{const v=t.value;if(i(v)||typeof v=="object")return"";if(t.field.type==="dropdown"){const m=(t.field.options??[]).find(g=>String(g.value)===String(v));return m?m.label:String(v)}return String(v)}),d=w(()=>t.labels?.[0]?.label??""),f=w(()=>Array.isArray(t.value)?t.labels??[]:[]);function p(v){return v.trim().split(/\s+/).filter(Boolean).slice(0,2).map(g=>g.charAt(0).toUpperCase()).join("")}return(v,m)=>(h(),$("div",{class:"flex min-w-0 flex-col gap-1.5","data-preview-field":e.field.name},[O("dt",{id:r.value,class:"font-semibold"},R(e.field.label||e.field.name),9,g4),O("dd",b4,[l.value==="control"?(h(),j(en(s.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"?(h(),$(_e,{key:1},[u(Dc)(e.value)?(h(),$("span",_4,R(u(P)("backend::lang.list.column_switch_true")),1)):(h(),$("span",x4,R(u(P)("backend::lang.list.column_switch_false")),1))],64)):l.value==="chips"?(h(),$("div",{key:2,"data-preview-value":"",class:xe([Ii,"flex-wrap gap-1.5 p-1.5"])},[(h(!0),$(_e,null,Ne(f.value,g=>(h(),$("span",{key:String(g.value),"data-chip":"",class:"inline-flex min-h-[30px] items-center gap-1.5 rounded-pill bg-surface pr-3 pl-1"},[O("span",w4,R(p(g.label)),1),O("span",k4,R(g.label),1)]))),128)),f.value.length===0?(h(),$("span",$4,R(u(P)("backend::lang.list.empty_value")),1)):ae("",!0)])):l.value==="relation"?(h(),$("div",{key:3,"data-preview-value":"",class:xe(Ii)},[d.value!==""?(h(),$("span",C4,R(d.value),1)):(h(),$("span",S4,R(e.field.emptyOption||u(P)("backend::lang.list.empty_value")),1))])):(h(),$("div",{key:4,"data-preview-value":"",class:xe([Ii,l.value==="textarea"?"items-start! py-3 whitespace-pre-wrap":""])},[c.value!==""?(h(),$("span",E4,R(c.value),1)):(h(),$("span",A4,R(u(P)("backend::lang.list.empty_value")),1))],2))])],8,y4))}}),P4=ee({__name:"RecordActions",props:{source:{},recordId:{},actions:{},disabled:{type:Boolean,default:!1}},emits:["busy","done","stale","gone"],setup(e,{emit:t}){const n=e,a=t,r=ja(),l=T(!1);async function o(s){if(l.value||n.disabled)return;let i=0,c=!1,d="";if(await r.ask({message:s.confirm||P("backend::lang.form.action_confirm",{action:s.label}),confirmLabel:s.label,danger:!1},async()=>{l.value=!0,a("busy",!0);try{const p=await Me.POST("/{vendor}/{plugin}/{controller}/{id}/actions/{action}",{params:{path:{...n.source,id:n.recordId,action:s.name}},body:{}});i=p.response.status,c=!!p.data,d=p.data?.data.message??p.error?.error.message??""}catch{i=0}finally{l.value=!1,a("busy",!1)}})){if(c){a("done",d||P("backend::lang.form.action_done"));return}if(i===409){Oe(P("backend::lang.form.action_stale"),"danger"),a("stale");return}if(i===404){a("gone");return}if(i===403){Oe(d||P("backend::lang.list.action_forbidden"),"danger");return}Oe(d||P("backend::lang.extension.action_failed"),"danger")}}return(s,i)=>e.actions.length>0?(h(),$(_e,{key:0},[(h(!0),$(_e,null,Ne(e.actions,c=>(h(),j(et,{key:c.name,variant:"outline",size:"md","data-record-action":c.name,disabled:e.disabled||l.value,onClick:d=>o(c)},{default:F(()=>[$e(R(c.label),1)]),_:2},1032,["data-record-action","disabled","onClick"]))),128)),z(La,{open:u(r).request.value!==null,message:u(r).request.value?.message??"","confirm-label":u(r).request.value?.confirmLabel,danger:u(r).request.value?.danger,busy:u(r).busy.value,onConfirm:u(r).confirm,onCancel:u(r).cancel},null,8,["open","message","confirm-label","danger","busy","onConfirm","onCancel"])],64)):ae("",!0)}}),O4={class:"flex w-full flex-col gap-5 pb-24","data-preview":""},M4={class:"flex flex-wrap items-center gap-4"},T4={class:"flex min-w-0 flex-1 flex-col"},R4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},q4={key:0,class:"text-muted"},I4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},F4=["id","role","aria-labelledby"],B4={class:"m-0 grid grid-cols-1 gap-x-6 gap-y-[22px] min-[600px]:grid-cols-2"},N4={class:"fixed inset-x-0 bottom-0 z-30 flex flex-wrap items-center gap-2.5 border-t border-border bg-surface px-8 py-3.5"},V4={class:"ml-auto flex flex-wrap items-center gap-2.5"},so="preview",L4=ee({__name:"PreviewView",setup(e){const t=rn(),n=Ar(),a={vendor:String(t.params.vendor??""),plugin:String(t.params.plugin??""),controller:String(t.params.controller??"")},r=ms(a),l=Un(r)??"/",o=Number(t.params.id),s=`${l}/${o}`,i=T(null),c=T({}),d=T({}),f=T([]),p=T(!0),v=T(!1),m=T(!1),g=T(At),_=T(0),y=new Set(["password","widget",Ua]),x=w(()=>(i.value?.fields??[]).filter(te=>Is(te,"preview")&&!y.has(te.type))),S=w(()=>{if(!x.value.some(ie=>ie.tab))return[];const te=[];for(const ie of x.value){const le=gn(ie);if(te.some(we=>we.key===le))continue;const re={key:le,label:ie.tab||P("backend::lang.form.tab_default"),errors:0};le===At?te.unshift(re):te.push(re)}return te}),A=w(()=>Math.max(S.value.findIndex(te=>te.key===g.value),0)),V=w(()=>{if(S.value.length===0)return x.value;const te=S.value[A.value]?.key??At;return x.value.filter(ie=>gn(ie)===te)}),J=w(()=>{const te=i.value?.fields.find(le=>le.type==="text"),ie=te?c.value[te.name]:void 0;return typeof ie=="string"||typeof ie=="number"?String(ie).trim():""}),U=w(()=>Ie(i.value?.messages.preview,void 0,{name:J.value})),H=w(()=>i.value?.preview?.headerPartial??""),k=w(()=>!p.value&&!v.value&&i.value!==null);function I(te){switch(te.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"}}async function G(){try{const te=await Me.GET("/{vendor}/{plugin}/{controller}/{id}",{params:{path:{...a,id:o}}});return te.data?(c.value={...te.data.data},d.value=te.data.meta.labels??{},f.value=te.data.meta.actions??[],!0):!1}catch{return!1}}async function D(){p.value=!0,v.value=!1;const[te,ie]=await Promise.all([Me.GET("/{vendor}/{plugin}/{controller}/schema/form",{params:{path:a}}).catch(()=>null),G()]),le=te?.data?.data??null;if(le&&!le.preview){await n.replace(s);return}i.value=le,v.value=!le||!ie,le&&Sc(r,le.assets),g.value=S.value[0]?.key??At,p.value=!1}async function N(){_.value++,await G()||(v.value=!0)}async function W(te){Oe(te),await N()}function B(){v.value=!0}const{activeUploads:Q,beginUpload:ne}=Mc(),ce=Cl();return Dt(Rr,{key:ce,recordId:o,routes:te=>Ym(a,o,te,ce),markDirty:()=>{},pendingChanges:dt(T(0)),revision:dt(T(0)),beginUpload:ne,activeUploads:dt(Q)}),Xt(()=>ch(p.value?"":J.value)),qt(dh),D(),(te,ie)=>(h(),$("section",O4,[O("header",M4,[z(et,{variant:"outline","data-action":"back",to:u(l),"aria-label":u(P)("backend::lang.form.return_to_list"),class:"size-10! px-0!"},{default:F(()=>[z(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["to","aria-label"]),O("div",T4,[O("h1",R4,R(p.value?"":J.value),1),k.value&&U.value?(h(),$("p",q4,R(U.value),1)):ae("",!0)]),k.value&&S.value.length>0?(h(),j(Rc,{key:0,modelValue:g.value,"onUpdate:modelValue":ie[0]||(ie[0]=le=>g.value=le),tabs:S.value,"id-prefix":so},null,8,["modelValue","tabs"])):ae("",!0)]),v.value&&!p.value?(h(),$("p",I4,R(u(P)("backend::lang.form.load_failed")),1)):k.value?(h(),$(_e,{key:1},[H.value!==""?(h(),j(Ac,{key:0,variant:"header",hint:"",source:a,name:H.value,"record-id":u(o),"reload-key":_.value},null,8,["name","record-id","reload-key"])):ae("",!0),O("div",{id:S.value.length>0?u(qs)(so,A.value):void 0,role:S.value.length>0?"tabpanel":void 0,"aria-labelledby":S.value.length>0?u(Sl)(so,A.value):void 0,class:"rounded-card border border-border bg-surface p-7 shadow-card"},[O("dl",B4,[(h(!0),$(_e,null,Ne(V.value,le=>(h(),j(D4,{key:le.name,class:xe(I(le)),field:le,value:c.value[le.name],labels:d.value?.[le.name],source:a,"record-id":u(o),"id-prefix":so},null,8,["class","field","value","labels","record-id"]))),128))])],8,F4)],64)):ae("",!0),O("footer",N4,[O("div",V4,[k.value?(h(),j(P4,{key:0,source:a,"record-id":u(o),actions:f.value,disabled:m.value,onBusy:ie[1]||(ie[1]=le=>m.value=le),onDone:W,onStale:N,onGone:B},null,8,["record-id","actions","disabled"])):ae("",!0),v.value?ae("",!0):(h(),j(et,{key:1,variant:"primary","data-action":"edit",icon:u(fo),disabled:p.value||m.value,onClick:ie[2]||(ie[2]=le=>u(n).push(s))},{default:F(()=>[$e(R(u(Ie)(i.value?.messages.edit)),1)]),_:1},8,["icon","disabled"]))])])]))}}),j4={class:"flex w-full flex-col gap-5 pb-24"},U4={class:"flex items-center gap-4"},z4={class:"flex min-w-0 flex-col"},H4={class:"truncate text-[24px] font-bold tracking-[-0.02em]"},K4={key:0,class:"text-muted"},W4={key:0,role:"alert",class:"rounded-inner bg-danger-soft px-[18px] py-3.5 text-danger"},G4={class:"fixed inset-x-0 bottom-0 z-30 flex items-center justify-end gap-2.5 border-t border-border bg-surface px-8 py-3.5"},rp="setting",Y4=ee({__name:"SettingsFormView",setup(e){const t=rn(),n=String(t.params.code??""),a=T(null),r=T({}),l=T({}),o=T(!0),s=T(!1),i=T(!1),c=w(()=>(a.value?.fields??[]).filter(_=>Is(_,"update"))),d=w(()=>c.value.map(_=>_.name)),f=w(()=>au(n)?.label||a.value?.name||n),p=w(()=>au(n)?.description??"");async function v(){const _={path:{code:n}},[y,x]=await Promise.all([Me.GET("/settings/{code}/schema",{params:_}),Me.GET("/settings/{code}",{params:_})]);a.value=y.data?.data??null,r.value={...x.data?.data.data??{}},s.value=!y.data||!x.data,o.value=!1}function m(_,y){if(r.value={...r.value,[_]:y},l.value[_]){const x={...l.value};delete x[_],l.value=x}}async function g(){if(!(i.value||!a.value)){i.value=!0;try{const _=await Me.PUT("/settings/{code}",{params:{path:{code:n}},body:Ht(c.value,r.value)});if(_.data){l.value={},r.value={..._.data.data.data},Oe(P("backend::lang.settings.saved"));return}if(_.response.status===422){l.value=Ll(_.error?.error.details);const y=c.value.find(x=>l.value[x.name]);await ze(),y&&jl(rp,y.name);return}Oe(_.error?.error.message||P("backend::lang.form.error_generic"),"danger")}catch{Oe(P("backend::lang.form.error_generic"),"danger")}finally{i.value=!1}}}return v(),(_,y)=>(h(),$("section",j4,[O("header",U4,[z(et,{variant:"outline","data-action":"back",to:"/settings","aria-label":u(P)("backend::lang.settings.back"),class:"size-10! px-0!"},{default:F(()=>[z(u(us),{size:18,"aria-hidden":"true"})]),_:1},8,["aria-label"]),O("div",z4,[O("h1",H4,R(f.value),1),p.value?(h(),$("p",K4,R(p.value),1)):ae("",!0)])]),s.value&&!o.value?(h(),$("p",W4,R(u(P)("backend::lang.form.load_failed")),1)):a.value?(h(),$(_e,{key:1},[z(Vl,{errors:l.value,"field-names":d.value},null,8,["errors","field-names"]),O("form",{class:"rounded-card border border-border bg-surface p-7 shadow-card",novalidate:"",onSubmit:pt(g,["prevent"])},[z(Ul,{fields:c.value,values:r.value,errors:l.value,source:null,"id-prefix":rp,onUpdate:m},null,8,["fields","values","errors"])],32)],64)):ae("",!0),O("footer",G4,[z(et,{variant:"ghost",to:"/settings"},{default:F(()=>[$e(R(u(P)("backend::lang.form.cancel")),1)]),_:1}),z(et,{variant:"primary","data-action":"save",disabled:i.value||o.value||!a.value,onClick:g},{default:F(()=>[$e(R(i.value?u(P)("backend::lang.form.saving"):u(P)("backend::lang.form.save")),1)]),_:1},8,["disabled"])])]))}}),J4={class:"flex flex-col gap-5"},Z4={class:"text-[26px] font-bold tracking-[-0.02em]"},Q4={key:0,class:"text-muted"},X4={key:0,class:"text-[13px] font-semibold tracking-[0.02em] text-muted uppercase"},eT={class:"grid grid-cols-1 gap-3 min-[900px]:grid-cols-2"},tT={class:"flex size-10 shrink-0 items-center justify-center rounded-inner bg-subtle text-muted"},nT={class:"flex min-w-0 flex-col"},aT={class:"font-semibold"},rT={key:0,class:"text-[13px] text-muted"},lT=ee({__name:"SettingsIndexView",setup(e){return(t,n)=>(h(),$("section",J4,[O("header",null,[O("h1",Z4,R(u(P)("backend::lang.settings.title")),1)]),u(nf).length===0?(h(),$("p",Q4,R(u(P)("backend::lang.settings.empty")),1)):ae("",!0),(h(!0),$(_e,null,Ne(u(nf),a=>(h(),$("section",{key:a.category,"data-settings-group":"",class:"flex flex-col gap-3"},[a.category?(h(),$("h2",X4,R(a.category),1)):ae("",!0),O("div",eT,[(h(!0),$(_e,null,Ne(a.entries,r=>(h(),j(u(_n),{key:r.code,to:`/settings/${encodeURIComponent(r.code)}`,"data-settings":r.code,class:"flex items-start gap-3.5 rounded-card border border-border bg-surface p-5 text-text no-underline shadow-card hover:bg-hover"},{default:F(()=>[O("span",tT,[(h(),j(en(u(vs)(r.icon)),{size:20,"aria-hidden":"true"}))]),O("span",nT,[O("span",aT,R(r.label),1),r.description?(h(),$("span",rT,R(r.description),1)):ae("",!0)])]),_:2},1032,["to","data-settings"]))),128))])]))),128))]))}}),oT={class:"flex flex-col items-center gap-2 py-20 text-center"},sT={class:"text-[17px] font-bold"},lp=ee({__name:"NotFoundView",props:{home:{type:Boolean}},setup(e){return(t,n)=>(h(),$("section",oT,[O("h1",sT,R(e.home?u(P)("backend::lang.nav.empty"):u(P)("backend::lang.page.not_found")),1)]))}});function ny(e){return typeof e!="string"||e.length===0||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")?null:e}const iT=new Set(["list","create","record","preview"]);function uT(e){if(typeof e.name!="string"||!iT.has(e.name))return"";const{vendor:t,plugin:n,controller:a}=e.params;return typeof t!="string"||typeof n!="string"||typeof a!="string"?"":ms({vendor:t,plugin:n,controller:a})}function cT(e=w1(ps.base)){const t=L1({history:e,routes:[{path:"/login",name:"login",component:k3,meta:{public:!0}},{path:"/",name:"home",component:lp,props:{home:!0},meta:{shell:!0},beforeEnter:()=>I_()??!0},{path:"/settings",name:"settings",component:lT,meta:{shell:!0}},{path:"/settings/:code",name:"settings-form",component:Y4,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller",name:"list",component:mA,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/create",name:"create",component:ap,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/:id(\\d+)",name:"record",component:ap,meta:{shell:!0}},{path:"/:vendor/:plugin/:controller/:id(\\d+)/preview",name:"preview",component:L4,meta:{shell:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:lp,meta:{shell:!0}}]});return t.beforeEach(n=>{const a=rr.value!==null;return n.meta.public?a&&n.name==="login"?ny(n.query.redirect)??"/":!0:a?!0:{name:"login",query:{redirect:n.fullPath}}}),t.afterEach((n,a,r)=>{r||c3(uT(n))}),t}const dT="(prefers-color-scheme: dark)";function fT(e=window){const t=e.document.documentElement;if(typeof e.matchMedia!="function")return t.classList.remove("dark"),()=>{};const n=e.matchMedia(dT),a=l=>{t.classList.toggle("dark",l)};a(n.matches);const r=l=>a(l.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}async function pT(){fT(),await O_().catch(()=>{}),await Im().catch(()=>null)&&await Promise.all([rh().catch(()=>[]),lh().catch(()=>[])]);const t=cT();C_(()=>{Fm();const a=t.currentRoute.value;a.name!=="login"&&t.push({name:"login",query:{redirect:a.fullPath}})});const n=Fb(o3);n.use(t),await t.isReady(),n.mount("#app")}pT(); diff --git a/modules/boardwalk/dist/index.html b/modules/boardwalk/dist/index.html index f9d5e9e..5b3fc95 100644 --- a/modules/boardwalk/dist/index.html +++ b/modules/boardwalk/dist/index.html @@ -6,8 +6,8 @@ SummerCMS - - + +
diff --git a/modules/cabana/README.md b/modules/cabana/README.md index c5afc49..5e67922 100644 --- a/modules/cabana/README.md +++ b/modules/cabana/README.md @@ -21,6 +21,8 @@ Schema-driven admin backend that compiles WinterCMS-style YAML list, form, filte - Row state: a controller implementing `pact.ListRowStates` is called once per list page with the page's records and the list's database handle. The list response carries `meta.row_states`, keyed by row id, with values from the fixed set `deleted`, `negative`, `disabled` in that order; a value outside the set is dropped and logged, rows without a state are left out, and a controller without the hook sends no `row_states` key. The badge texts are the list messages `rowStateDeleted`, `rowStateNegative` and `rowStateDisabled`, defaulting to `backend::lang.messages.list.row_state_*`. A soft-deleted record that the controller's `pact.ListExtendQuery` and `pact.FormExtendQuery` include can be shown, updated (it stays soft-deleted), targeted by bulk and record actions and removed for good by the controller's `pact.FormAfterDelete`. - Record actions: `recordActions` in `config_form.yaml` lists names the controller registers through `pact.HasAdminRecordActions`, a third action namespace with the same reserved names. It needs the form's `preview` block: record actions are offered on the preview screen, and a form that declares them without one fails boot. The show response's `meta.actions` (`cabana.RecordAction` entries with localized `label` and `confirm`) carries only the declared actions the requesting administrator may run and whose `Applies` reports true for the record; the key is absent when none is offered, and create and update responses never carry it. The action route loads the record through `pact.FormExtendQuery` with a row lock in one transaction (one 404 for a missing and an out-of-scope id), checks `Applies` again (409 when it reports false) and then runs the action. An unknown or duplicate name, or an action without a label, fails boot. Each run is logged with the controller, action, administrator and record id. - Preview screen: a `preview` mapping in `config_form.yaml` (`preview: {}`, or with `headerPartial: ` for a status hint) gives the form a read-only record screen in the admin SPA. The form schema reports it as `preview` (`cabana.FormPreview`), fields with `context: preview` are shown only there and are never written by a save, `messages.preview` and `messages.edit` name the screen's subtitle and edit button, and `recordUrl` and the form redirects may point at it as `.../preview/:id`. An empty `preview:` key or an unknown key inside it fails boot. +- Form-only fields: a controller implementing `pact.FormVirtualFields` lists fields of its `fields.yaml` that are not columns of the form. They are exempt from the column binding, never filled into the model and never part of a record response; the values an administrator submits reach the Form hooks through `cabana.VirtualFieldsFromContext`, only for fields whose `context` allows the operation, and a nested value is a 422 on the field. `type: password` is a masked field that must be listed this way, so a password is sent in a save body and never comes back. A controller implementing `pact.FormRules` supplies the validation rules per operation (`create` or `update`), which replace the model's `Rules()` for admin saves; a rule on a virtual field is checked against the submitted value, never against a model column of the same name. Neither is available on settings forms or relation forms. +- Preset fields: `preset` on a `type: text` field (a source field name, or a mapping with `field` and `type`, `slug` or `exact`) makes the field follow another text field of the same form on the create screen until the administrator edits it. 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. - 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. @@ -206,6 +208,8 @@ func (p *Plugin) AdminFS() fs.FS { return adminFS } | `cabana.BackendUser` / `cabana.BackendUserRole` / `cabana.BackendUsers` | GORM models of the backend user tables and the principal loader used by the guard. | | `cabana.Allows` | Checks a principal against required permission codes. | | `cabana.TxFromContext` | The transaction a write route is running in, from the context of a lifecycle hook or scope. | +| `cabana.VirtualFieldsFromContext` | The submitted values of the form's virtual fields (`pact.FormVirtualFields`), from the context of a Form hook during a create or update; a copy, keyed by field name. | +| `cabana.FieldPreset` | A text field's `preset` in the form schema: the source field and the type, `slug` or `exact`. | | `cabana.WriteData` / `cabana.WriteError` / `cabana.WriteErrorDetails` | Write the admin success and error envelopes. | | `cabana.ValidationError` / `cabana.ListValidationError` | Field-level `validation_failed` errors. A `pact.AdminAction` may return a `cabana.ValidationError` to answer 422. | | `cabana.ForbiddenError` | A write controller code refuses: a hook or an action returns it and the route answers 403 `forbidden` with its localized `Message` and `Details`; the transaction is rolled back. | diff --git a/modules/cabana/admin_openapi.go b/modules/cabana/admin_openapi.go index 01999c8..1c153da 100644 --- a/modules/cabana/admin_openapi.go +++ b/modules/cabana/admin_openapi.go @@ -262,7 +262,7 @@ func AdminListSchema() {} // AdminFormSchema documents the form schema route. // // @Summary Admin form schema -// @Description The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. +// @Description The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. A `type: password` field and every other field the controller lists as virtual is sent in a save body and never has a value in a record response. `preset` on a text field names the field it follows on the create form (type slug or exact) until the administrator edits it. // @Tags admin // @Produce json // @Security BackendBearer diff --git a/modules/cabana/contracts.go b/modules/cabana/contracts.go index b15cbd1..5b734bf 100644 --- a/modules/cabana/contracts.go +++ b/modules/cabana/contracts.go @@ -102,6 +102,9 @@ type CompiledController struct { // dates are the form's `type: datepicker` fields after the Go type // check, keyed by field name. dates map[string]*compiledDate + // virtual is the set of form field names the controller lists through + // pact.FormVirtualFields: never bound, filled or projected. + virtual map[string]bool } // Registry is the immutable controller map keyed by controller ID. diff --git a/modules/cabana/crud.go b/modules/cabana/crud.go index 5bf189b..134f041 100644 --- a/modules/cabana/crud.go +++ b/modules/cabana/crud.go @@ -176,7 +176,9 @@ func ProjectWritableFields(cc *CompiledController, body map[string]any) map[stri } // BindWritableFields records schema field names onto model column fill keys. -// Protected columns are omitted. A scalar field with no column fails activation. +// Protected columns and the fields the controller lists through +// pact.FormVirtualFields are omitted. Any other scalar field with no column +// fails activation. func BindWritableFields(cc *CompiledController) error { if cc == nil || cc.Form == nil { return nil @@ -190,9 +192,13 @@ func BindWritableFields(cc *CompiledController) error { return nil } cols := modelColumns(src.NewRecord()) + // A virtual field (pact.FormVirtualFields) is not a column of the form: + // it gets no column check and no binding, so Fill never receives it and + // no response returns it. + cc.virtual = virtualFieldSet(cc.Controller) bindings := make([]WritableField, 0, len(cc.Form.Fields)) for _, field := range cc.Form.Fields { - if !scalarFormField(field.Type) || protectedFillKey(field.Name) { + if !scalarFormField(field.Type) || protectedFillKey(field.Name) || cc.virtual[field.Name] { continue } if _, known := cols[field.Name]; !known { @@ -568,9 +574,15 @@ func (s CRUDService) save(ctx context.Context, cc *CompiledController, id any, i if err != nil { return RecordResult{}, err } + // Virtual field values never reach Fill: they are handed to the Form + // hooks on the context and to the rules. + virtual, err := liftVirtualValues(cc, in.Body, op) + if err != nil { + return RecordResult{}, err + } var result RecordResult err = s.transaction(ctx, func(ctx context.Context, tx *gorm.DB) error { - ctx = withTx(ctx, tx) + ctx = withVirtualFields(withTx(ctx, tx), virtual) target, err := newWritableModel(cc) if err != nil { return err @@ -599,8 +611,8 @@ func (s CRUDService) save(ctx context.Context, cc *CompiledController, id any, i return &CapabilityError{ControllerID: controllerID(cc)} } } - rules := mergedRules(cc, target, op) - msgs, err := lagoon.Validate(ctx, tx, target, rules, valuesForRules(target, rules), nil) + rules := mergedRules(ctx, cc, target, op) + msgs, err := lagoon.Validate(ctx, tx, target, rules, virtualValuesForRules(cc, target, rules, virtual), nil) if err != nil { return &CapabilityError{ControllerID: controllerID(cc)} } @@ -991,12 +1003,23 @@ func fillAllowed(cc *CompiledController, model any, op string) []string { return out } -// mergedRules combines the model's rules with the form's `required` flags. A -// field whose `context` hides it on op cannot be supplied there, so its form -// level `required` does not apply to that operation. -func mergedRules(cc *CompiledController, model any, op string) map[string]string { +// mergedRules combines the base rules with the form's `required` flags. The +// base is the model's Rules(), or the set a controller implementing +// pact.FormRules returns for op (create or update), which replaces the model's +// rules for admin saves. A field whose `context` hides it on op cannot be +// supplied there, so its form level `required` does not apply to that +// operation. +func mergedRules(ctx context.Context, cc *CompiledController, model any, op string) map[string]string { out := map[string]string{} - if rules, ok := model.(hasRules); ok && rules != nil { + var own pact.FormRules + if cc != nil && cc.Controller != nil && (op == "create" || op == "update") { + own, _ = cc.Controller.(pact.FormRules) + } + if own != nil { + for key, rule := range own.FormRules(ctx, op) { + out[key] = rule + } + } else if rules, ok := model.(hasRules); ok && rules != nil { for key, rule := range rules.Rules() { out[key] = rule } @@ -1006,14 +1029,77 @@ func mergedRules(cc *CompiledController, model any, op string) map[string]string } for _, field := range cc.Form.Fields { // Relation fields are not writable columns. required stays on the - // schema for the client, but it cannot be checked by Fill. - if field.Required && scalarFormField(field.Type) && contextAllows(cc, field.Name, op) { + // schema for the client, but it cannot be checked by Fill. A virtual + // field is checked against its submitted value. + if field.Required && (scalarFormField(field.Type) || cc.virtual[field.Name]) && contextAllows(cc, field.Name, op) { out[field.Name] = mergeRequired(out[field.Name]) } } return out } +// virtualFieldSet is the set of names a controller lists through +// pact.FormVirtualFields; nil when it lists none. +func virtualFieldSet(ctl pact.AdminController) map[string]bool { + src, ok := ctl.(pact.FormVirtualFields) + if !ok || src == nil { + return nil + } + names := src.FormVirtualFields() + if len(names) == 0 { + return nil + } + out := make(map[string]bool, len(names)) + for _, name := range names { + out[name] = true + } + return out +} + +// liftVirtualValues collects the submitted values of the form's virtual +// fields (pact.FormVirtualFields) for op: only fields present in the body +// whose context allows the operation. A nested value is validation_failed on +// the field. The result is never nil. +func liftVirtualValues(cc *CompiledController, body map[string]any, op string) (map[string]any, error) { + out := map[string]any{} + if cc == nil || cc.Form == nil || len(cc.virtual) == 0 { + return out, nil + } + for _, field := range cc.Form.Fields { + if !cc.virtual[field.Name] || !contextAllows(cc, field.Name, op) { + continue + } + value, present := body[field.Name] + if !present { + continue + } + if nestedValue(value) { + return nil, &ValidationError{Details: fillTypeDetails(field.Name)} + } + out[field.Name] = value + } + return out, nil +} + +// virtualValuesForRules is valuesForRules for a controller save: a rule on a +// virtual field sees the submitted value, or nothing when the field was not +// submitted, and never the model column of the same name (a stored password +// hash, for example). Every submitted virtual value is present, so `confirmed` +// and `different` can read a field no rule names. +func virtualValuesForRules(cc *CompiledController, model any, rules map[string]string, virtual map[string]any) map[string]any { + out := valuesForRules(model, rules) + if cc == nil || len(cc.virtual) == 0 { + return out + } + for name := range cc.virtual { + delete(out, name) + } + for name, value := range virtual { + out[name] = value + } + return out +} + func mergeRequired(rule string) string { if strings.TrimSpace(rule) == "" { return "required" diff --git a/modules/cabana/example_form_seams_test.go b/modules/cabana/example_form_seams_test.go new file mode 100644 index 0000000..0515e97 --- /dev/null +++ b/modules/cabana/example_form_seams_test.go @@ -0,0 +1,115 @@ +package cabana_test + +import ( + "context" + "crypto/sha256" + "encoding/hex" + "fmt" + + "git.golem15.com/golem15/summercms/modules/cabana" + "git.golem15.com/golem15/summercms/modules/pact" +) + +// Member is the model behind the acme.roster members controller. Password +// holds a hash; the form never reads or writes the column itself. +type Member struct { + ID uint `gorm:"column:id;primaryKey"` + Name string `gorm:"column:name"` + Slug string `gorm:"column:slug"` + Password string `gorm:"column:password" json:"-"` +} + +func (Member) TableName() string { return "acme_roster_members" } + +// Fillable lists the columns the admin form may write. +func (Member) Fillable() []string { return []string{"name", "slug"} } + +// Rules are the model's own rules, used wherever the controller sets none. +func (Member) Rules() map[string]string { + return map[string]string{"name": "required", "password": "required|between:8,255|confirmed"} +} + +// MembersController is an admin controller whose form has fields that are +// not columns and rules of its own. +type MembersController struct{} + +var ( + _ pact.AdminController = MembersController{} + _ pact.AdminRecordSource = MembersController{} + _ pact.FormVirtualFields = MembersController{} + _ pact.FormRules = MembersController{} + _ pact.FormBeforeCreate = MembersController{} + _ pact.FormBeforeUpdate = MembersController{} +) + +func (MembersController) ID() string { return "acme.roster.members" } +func (MembersController) ModelName() string { return "Member" } +func (MembersController) ConfigDir() string { return "controllers/members" } +func (MembersController) NewRecord() any { return &Member{} } + +// FormVirtualFields names the fields of fields.yaml that are not columns of +// the form. cabana never fills or returns them. +func (MembersController) FormVirtualFields() []string { + return []string{"password", "password_confirmation", "notify"} +} + +// FormRules replaces the model's rules for admin saves: a create needs a +// password, an update takes one only when the administrator types it. +func (MembersController) FormRules(_ context.Context, op string) map[string]string { + rules := map[string]string{"name": "required"} + if op == "create" { + rules["password"] = "required|between:8,255|confirmed" + } else { + rules["password"] = "nullable|between:8,255|confirmed" + } + return rules +} + +// FormBeforeCreate reads the submitted virtual values, which have passed the +// rules by now, and stores what the model needs. +func (MembersController) FormBeforeCreate(ctx context.Context, model any) error { + values, _ := cabana.VirtualFieldsFromContext(ctx) + member := model.(*Member) + if plain, ok := values["password"].(string); ok && plain != "" { + member.Password = hashPassword(plain) + } + if notify, _ := values["notify"].(bool); notify { + // Queue the welcome message here. + } + return nil +} + +// FormBeforeUpdate changes the password only when one was submitted. +func (MembersController) FormBeforeUpdate(ctx context.Context, model any) error { + values, _ := cabana.VirtualFieldsFromContext(ctx) + if plain, ok := values["password"].(string); ok && plain != "" { + model.(*Member).Password = hashPassword(plain) + } + return nil +} + +// hashPassword stands in for the application's password hasher. +func hashPassword(plain string) string { + sum := sha256.Sum256([]byte(plain)) + return hex.EncodeToString(sum[:]) +} + +// Example_formSeams shows what the controller declares. Outside a save there +// are no submitted values, so the hook stores nothing. +func Example_formSeams() { + ctl := MembersController{} + ctx := context.Background() + fmt.Println(ctl.FormVirtualFields()) + fmt.Println("create:", ctl.FormRules(ctx, "create")["password"]) + fmt.Println("update:", ctl.FormRules(ctx, "update")["password"]) + + member := &Member{Name: "Ada"} + _, inSave := cabana.VirtualFieldsFromContext(ctx) + err := ctl.FormBeforeCreate(ctx, member) + fmt.Println(inSave, err, member.Password == "") + // Output: + // [password password_confirmation notify] + // create: required|between:8,255|confirmed + // update: nullable|between:8,255|confirmed + // false true +} diff --git a/modules/cabana/extension.go b/modules/cabana/extension.go index 26aeac7..e2f73df 100644 --- a/modules/cabana/extension.go +++ b/modules/cabana/extension.go @@ -113,6 +113,12 @@ func compileExtension(pluginID string, cc *CompiledController, fsys fs.FS) error for _, field := range cc.Form.Fields { fields[field.Name] = field } + if err := checkVirtualFields(cc, fields); err != nil { + return bootErr(pluginID, id, file, err) + } + if err := checkPresets(cc.Form.Fields); err != nil { + return bootErr(pluginID, id, file, err) + } writable := map[string]bool{} for _, field := range cc.Writable { writable[field.Name] = true @@ -147,6 +153,44 @@ func compileExtension(pluginID string, cc *CompiledController, fsys fs.FS) error return nil } +// virtualFieldTypes are the field types a controller may list through +// pact.FormVirtualFields: the value is one scalar. +var virtualFieldTypes = map[string]bool{ + "password": true, "text": true, "textarea": true, "number": true, + "checkbox": true, "switch": true, "dropdown": true, +} + +// checkVirtualFields checks the controller's pact.FormVirtualFields list +// against the form: every `type: password` field must be listed (its value is +// never a model column), and every listed name must be a field of the form +// with a scalar type. +func checkVirtualFields(cc *CompiledController, fields map[string]FormField) error { + for _, field := range cc.Form.Fields { + if field.Type == "password" && !cc.virtual[field.Name] { + return fmt.Errorf("field %s: type password needs the controller to list it in FormVirtualFields", field.Name) + } + } + src, ok := cc.Controller.(pact.FormVirtualFields) + if !ok || src == nil { + return nil + } + seen := map[string]bool{} + for _, name := range src.FormVirtualFields() { + if seen[name] { + return fmt.Errorf("FormVirtualFields lists field %s twice", name) + } + seen[name] = true + field, exists := fields[name] + if !exists { + return fmt.Errorf("FormVirtualFields: field %s is not a field of this form", name) + } + if !virtualFieldTypes[field.Type] { + return fmt.Errorf("FormVirtualFields: field %s has type %s (want password, text, textarea, number, checkbox, switch or dropdown)", name, field.Type) + } + } + return nil +} + // compilePartials reads and parses every partial the controller declares: // config_list.yaml headerPartial, config_form.yaml preview.headerPartial and // each `type: partial` field's path, all resolving to {ConfigDir}/_{name}.htm. diff --git a/modules/cabana/form_schema.go b/modules/cabana/form_schema.go index aa3b594..9c41e80 100644 --- a/modules/cabana/form_schema.go +++ b/modules/cabana/form_schema.go @@ -25,6 +25,7 @@ var ( "text": {}, "textarea": {}, "number": {}, "checkbox": {}, "switch": {}, "dropdown": {}, "relation": {}, "relation-manager": {}, "widget": {}, "partial": {}, "fileupload": {}, "datepicker": {}, + "password": {}, } formSpans = map[string]struct{}{ "left": {}, "right": {}, "full": {}, "auto": {}, "row": {}, @@ -42,6 +43,7 @@ var ( "thumbOptions": {}, "useCaption": {}, "prompt": {}, "format": {}, "minDate": {}, "maxDate": {}, "yearRange": {}, "firstDay": {}, "twelveHour": {}, "ignoreTimezone": {}, + "preset": {}, } // widgetKeys are valid only on `type: widget` (D-06). widgetKeys = []string{"widget", "action", "fill"} @@ -244,6 +246,10 @@ func (s *FormSchema) Localize(ctx context.Context, tr *phrasebook.Translator, pr field.ActionLabel = translateKey(ctx, tr, src.ActionLabel) field.Prompt = translateKey(ctx, tr, src.Prompt) field.Fill = append([]string(nil), src.Fill...) + if src.Preset != nil { + preset := *src.Preset + field.Preset = &preset + } field.FileTypes = append([]string(nil), src.FileTypes...) field.MimeTypes = append([]string(nil), src.MimeTypes...) field.YearRange = append([]int(nil), src.YearRange...) @@ -548,6 +554,9 @@ func compileFieldNode(name string, node ast.Node) (FormField, error) { if err := compileDatepickerKeys(typ, values, &field); err != nil { return FormField{}, err } + if err := compilePresetKey(typ, values, &field); err != nil { + return FormField{}, err + } if node, ok := values["required"]; ok { field.Required, err = nodeBool(node) if err != nil { @@ -624,6 +633,81 @@ func compileWidgetKeys(typ string, values map[string]ast.Node, field *FormField) return nil } +// compilePresetKey decodes `preset` (D-27): the name of the field this text +// field follows while the administrator has not edited it, on create only. It +// is a string (the source field; type slug) or a mapping with the keys field +// and type, where type is slug or exact. The source is checked against the +// form in checkPresets. +func compilePresetKey(typ string, values map[string]ast.Node, field *FormField) error { + node, ok := values["preset"] + if !ok { + return nil + } + if typ != "text" { + return fmt.Errorf("preset is only valid on type: text") + } + preset := FieldPreset{Type: "slug"} + switch n := node.(type) { + case *ast.StringNode: + preset.Field = n.Value + case *ast.MappingNode: + for _, entry := range n.Values { + key, err := nodeString(unwrapNode(entry.Key)) + if err != nil { + return fmt.Errorf("preset: %w", err) + } + value, err := nodeString(unwrapNode(entry.Value)) + if err != nil { + return fmt.Errorf("preset: %s: %w", key, err) + } + switch key { + case "field": + preset.Field = value + case "type": + preset.Type = value + default: + return fmt.Errorf("preset: unknown field %s", key) + } + } + default: + return fmt.Errorf("preset must be a field name or a mapping with field and type") + } + if !identifier(preset.Field) { + return fmt.Errorf("preset field %q is not an identifier", preset.Field) + } + if preset.Type != "slug" && preset.Type != "exact" { + return fmt.Errorf("preset type %s is not supported (want slug or exact)", preset.Type) + } + field.Preset = &preset + return nil +} + +// checkPresets checks every preset of a form against its fields: the source +// must be another text field of the same form. +func checkPresets(fields []FormField) error { + types := make(map[string]string, len(fields)) + for _, field := range fields { + types[field.Name] = field.Type + } + for _, field := range fields { + if field.Preset == nil { + continue + } + source := field.Preset.Field + if source == field.Name { + return fmt.Errorf("field %s: preset names the field itself", field.Name) + } + typ, ok := types[source] + if !ok { + return fmt.Errorf("field %s: preset field %s is not a field of this form", field.Name, source) + } + if typ != "text" { + return fmt.Errorf("field %s: preset field %s must be a text field", field.Name, source) + } + } + return nil +} + // partialPathHint is the D-11 path rule shared by every partial path error. const partialPathHint = "path must be a partial name such as summary (resolves to CONFIG_DIR/_summary.htm); Winter $/ and ~/ paths are not supported" diff --git a/modules/cabana/phase121_actions_test.go b/modules/cabana/phase121_actions_test.go index 39db497..2beb4b2 100644 --- a/modules/cabana/phase121_actions_test.go +++ b/modules/cabana/phase121_actions_test.go @@ -304,7 +304,7 @@ func TestRecordActionSmoke(t *testing.T) { }) t.Run("create and update responses carry no actions", func(t *testing.T) { - rec := env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, `{"name":"Fresh"}`, "bearer") + rec := env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, `{"name":"Fresh","password":"long-enough-1","password_confirmation":"long-enough-1"}`, "bearer") if strings.Contains(rec.Body.String(), `"actions"`) { t.Fatalf("create response: %s", rec.Body.String()) } diff --git a/modules/cabana/phase121_fixture_test.go b/modules/cabana/phase121_fixture_test.go index e79ad23..a5c7c5d 100644 --- a/modules/cabana/phase121_fixture_test.go +++ b/modules/cabana/phase121_fixture_test.go @@ -2,6 +2,8 @@ package cabana_test import ( "context" + "crypto/sha256" + "encoding/hex" "fmt" "io/fs" "net/http" @@ -38,13 +40,35 @@ type rosterPerson struct { Active bool `gorm:"column:active"` Banned bool `gorm:"column:banned"` // JoinedIP is shown on the preview screen only (context: preview). - JoinedIP *string `gorm:"column:joined_ip"` + JoinedIP *string `gorm:"column:joined_ip"` + // Password is a stored hash. The form's password field is virtual: the + // controller's hooks derive this column from the submitted value. + Password string `gorm:"column:password" json:"-"` + Slug string `gorm:"column:slug"` DeletedAt gorm.DeletedAt `gorm:"column:deleted_at"` } -func (rosterPerson) TableName() string { return "roster_people" } -func (rosterPerson) Fillable() []string { return []string{"name", "email"} } -func (rosterPerson) Rules() map[string]string { return map[string]string{"name": "required"} } +func (rosterPerson) TableName() string { return "roster_people" } +func (rosterPerson) Fillable() []string { return []string{"name", "email", "slug"} } + +// Rules are the model's own (sign-up) rules: every save needs a confirmed +// password. The admin form replaces them through the controller's FormRules. +func (rosterPerson) Rules() map[string]string { + return map[string]string{"name": "required", "password": "required|between:8,255|confirmed"} +} + +// rosterHash is the fixture's stand-in for a password hash. +func rosterHash(plain string) string { + sum := sha256.Sum256([]byte(plain)) + return "sha256:" + hex.EncodeToString(sum[:]) +} + +// rosterVirtual is what one Form hook read from VirtualFieldsFromContext. +type rosterVirtual struct { + Hook string + Values map[string]any + Found bool +} // rosterSpy records what each registered action's Run receives. type rosterSpy struct { @@ -53,6 +77,31 @@ type rosterSpy struct { record []pact.AdminRecordActionInput // states counts ListRowStates calls and keeps the size of each page. states []int + // virtual keeps what each Form hook read from the context. + virtual []rosterVirtual +} + +func (s *rosterSpy) recordVirtual(hook string, ctx context.Context) map[string]any { + values, found := cabana.VirtualFieldsFromContext(ctx) + if s == nil { + return values + } + s.mu.Lock() + defer s.mu.Unlock() + kept := make(map[string]any, len(values)) + for name, value := range values { + kept[name] = value + } + s.virtual = append(s.virtual, rosterVirtual{Hook: hook, Values: kept, Found: found}) + return values +} + +func (s *rosterSpy) takeVirtual() []rosterVirtual { + s.mu.Lock() + defer s.mu.Unlock() + out := s.virtual + s.virtual = nil + return out } func (s *rosterSpy) recordStates(n int) { @@ -216,9 +265,49 @@ const rosterLocked = "Locked" // copy and never write into it. var rosterRefused = &cabana.ForbiddenError{Message: "acme.roster::lang.people.locked"} -// FormBeforeUpdate refuses the reserved name with a ForbiddenError naming -// the field, and fails with a plain error for the name Boom. -func (rosterController) FormBeforeUpdate(_ context.Context, model any) error { +// FormVirtualFields lists the form fields that are not columns of the form: +// the password pair and the create-only notify checkbox. +func (rosterController) FormVirtualFields() []string { + return []string{"password", "password_confirmation", "notify"} +} + +// FormRules are the admin form's rules: a create needs a confirmed password, +// an update takes one only when it is submitted. +func (rosterController) FormRules(_ context.Context, op string) map[string]string { + if op == "create" { + return map[string]string{"name": "required", "password": "required|between:8,255|confirmed"} + } + return map[string]string{"name": "required", "password": "nullable|between:8,255|confirmed"} +} + +// storePassword derives the stored hash from a submitted password. +func storePassword(person *rosterPerson, values map[string]any) { + if plain, ok := values["password"].(string); ok && plain != "" { + person.Password = rosterHash(plain) + } +} + +// FormBeforeCreate stamps the tenant and stores the hash of the submitted +// password. It also drops notify from its own copy of the virtual values: the +// after hook must still see it. +func (c rosterController) FormBeforeCreate(ctx context.Context, model any) error { + values := c.spy.recordVirtual("before-create", ctx) + model.(*rosterPerson).Tenant = "acme" + storePassword(model.(*rosterPerson), values) + delete(values, "notify") + return nil +} + +func (c rosterController) FormAfterCreate(ctx context.Context, _ any) error { + c.spy.recordVirtual("after-create", ctx) + return nil +} + +// FormBeforeUpdate stores a submitted password, refuses the reserved name +// with a ForbiddenError naming the field, and fails with a plain error for +// the name Boom. +func (c rosterController) FormBeforeUpdate(ctx context.Context, model any) error { + storePassword(model.(*rosterPerson), c.spy.recordVirtual("before-update", ctx)) switch model.(*rosterPerson).Name { case "Reserved": return &cabana.ForbiddenError{ diff --git a/modules/cabana/phase121_form_test.go b/modules/cabana/phase121_form_test.go index 9043203..4113b86 100644 --- a/modules/cabana/phase121_form_test.go +++ b/modules/cabana/phase121_form_test.go @@ -1,9 +1,12 @@ package cabana_test import ( + "context" "encoding/json" "fmt" "net/http" + "os" + "path/filepath" "strings" "testing" @@ -93,7 +96,7 @@ func TestPreviewSmoke(t *testing.T) { if stored.Name != "Ada L" || stored.JoinedIP == nil || *stored.JoinedIP != ip { t.Fatalf("stored = %+v ip=%v", stored, stored.JoinedIP) } - rec = env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, `{"name":"New","joined_ip":"198.51.100.2"}`, "bearer") + rec = env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, `{"name":"New","joined_ip":"198.51.100.2","password":"long-enough-1","password_confirmation":"long-enough-1"}`, "bearer") created := rosterRecord(t, rec.Body.Bytes()) id, _ := created.Data["id"].(float64) if got := rosterLoad(t, gdb, uint(id)); got.JoinedIP != nil { @@ -136,3 +139,250 @@ func TestPreviewSmoke(t *testing.T) { } }) } + +// rosterFields is the fixture's fields.yaml with old replaced by new (boot +// tests); an empty old appends new. +func rosterFields(t *testing.T, old, new string) string { + t.Helper() + raw, err := os.ReadFile(filepath.Join(rosterDir, rosterFieldsFile)) + if err != nil { + t.Fatal(err) + } + text := string(raw) + if old == "" { + return text + new + } + if !strings.Contains(text, old) { + t.Fatalf("fields.yaml does not contain %q", old) + } + return strings.Replace(text, old, new, 1) +} + +const rosterFieldsFile = "models/person/fields.yaml" + +// rosterErrorDetail asserts a 4xx body's code and one field message. +func rosterErrorDetail(t *testing.T, raw []byte, code, field, message string) { + t.Helper() + var body cabana.ErrorEnvelope + if err := json.Unmarshal(raw, &body); err != nil { + t.Fatalf("error body %s: %v", raw, err) + } + if body.Error.Code != code { + t.Fatalf("code = %q, want %s; body %s", body.Error.Code, code, raw) + } + list, _ := body.Error.Details[field].([]any) + for _, item := range list { + if item == message { + return + } + } + t.Fatalf("details[%s] = %v, want %q; body %s", field, body.Error.Details[field], message, raw) +} + +// TestPasswordFieldSmoke drives `type: password` through the assembled router +// on PostgreSQL (D-27 G1; T-12.1-10): the value reaches the controller's hook, +// which stores a hash, and no record response on any route carries the key or +// the plain text. +func TestPasswordFieldSmoke(t *testing.T) { + env, gdb := newRosterEnv(t) + const plain, next = "s3cret-plain-text", "another-plain-9" + leaks := func(t *testing.T, route, body string) { + t.Helper() + for _, part := range []string{"password", plain, next, "sha256:"} { + if strings.Contains(body, part) { + t.Fatalf("%s response carries %q: %s", route, part, body) + } + } + } + + rec := env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, + fmt.Sprintf(`{"name":"Pat","password":%q,"password_confirmation":%q}`, plain, plain), "bearer") + leaks(t, "create", rec.Body.String()) + idFloat, _ := rosterRecord(t, rec.Body.Bytes()).Data["id"].(float64) + id := uint(idFloat) + record := fmt.Sprintf("%s/%d", rosterPeople, id) + if stored := rosterLoad(t, gdb, id); stored.Password != rosterHash(plain) || stored.Password == plain { + t.Fatalf("stored password = %q", stored.Password) + } + + rec = env.expect(t, http.StatusOK, http.MethodGet, record, "", "bearer") + leaks(t, "show", rec.Body.String()) + rec = env.expect(t, http.StatusOK, http.MethodGet, rosterPeople, "", "bearer") + leaks(t, "list", rec.Body.String()) + + rec = env.expect(t, http.StatusOK, http.MethodPut, record, + fmt.Sprintf(`{"name":"Pat B","password":%q,"password_confirmation":%q}`, next, next), "bearer") + leaks(t, "update", rec.Body.String()) + if stored := rosterLoad(t, gdb, id); stored.Password != rosterHash(next) || stored.Name != "Pat B" { + t.Fatalf("after update: %+v", stored) + } + + t.Run("an update without a password keeps the stored one", func(t *testing.T) { + rec := env.expect(t, http.StatusOK, http.MethodPut, record, `{"name":"Pat C"}`, "bearer") + leaks(t, "update", rec.Body.String()) + if stored := rosterLoad(t, gdb, id); stored.Password != rosterHash(next) || stored.Name != "Pat C" { + t.Fatalf("stored = %+v", stored) + } + }) + + t.Run("a mismatch, a lone confirmation and a short password are 422 on password", func(t *testing.T) { + const mismatch = "The password confirmation does not match." + rec := env.expect(t, http.StatusUnprocessableEntity, http.MethodPut, record, `{"name":"Pat D","password":"long-enough-1","password_confirmation":"long-enough-2"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", mismatch) + rec = env.expect(t, http.StatusUnprocessableEntity, http.MethodPut, record, `{"password_confirmation":"long-enough-2"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", mismatch) + rec = env.expect(t, http.StatusUnprocessableEntity, http.MethodPut, record, `{"password":"short","password_confirmation":"short"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", "The password must be between 8 and 255 characters.") + rec = env.expect(t, http.StatusUnprocessableEntity, http.MethodPost, rosterPeople, `{"name":"Mis","password":"long-enough-1","password_confirmation":"other-enough-1"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", mismatch) + // Nothing of the refused saves was written. + if stored := rosterLoad(t, gdb, id); stored.Password != rosterHash(next) || stored.Name != "Pat C" { + t.Fatalf("a refused save wrote: %+v", stored) + } + }) + + t.Run("the schema serves the field without a value", func(t *testing.T) { + _, raw := rosterFormSchema(t, env, "bearer") + if !strings.Contains(raw, `"name":"password","type":"password","label":"Password","span":"left","context":["create","update"]`) { + t.Fatalf("password field is not in the schema: %s", raw) + } + }) +} + +// TestVirtualFieldsSmoke drives pact.FormVirtualFields (D-27 G2; T-12.1-09): +// submitted values reach the Form hooks through VirtualFieldsFromContext only +// when the field's context allows the operation, and are never filled or +// returned. +func TestVirtualFieldsSmoke(t *testing.T) { + env, gdb := newRosterEnv(t) + if _, ok := cabana.VirtualFieldsFromContext(context.Background()); ok { + t.Fatal("virtual fields reported outside a save") + } + const body = `{"name":"Vic","notify":true,"password":"long-enough-1","password_confirmation":"long-enough-1"}` + rec := env.expect(t, http.StatusCreated, http.MethodPost, rosterPeople, body, "bearer") + for _, name := range []string{"notify", "password", "password_confirmation"} { + if strings.Contains(rec.Body.String(), name) { + t.Fatalf("create response carries %s: %s", name, rec.Body.String()) + } + } + idFloat, _ := rosterRecord(t, rec.Body.Bytes()).Data["id"].(float64) + record := fmt.Sprintf("%s/%d", rosterPeople, uint(idFloat)) + + seen := env.spy.takeVirtual() + if len(seen) != 2 || seen[0].Hook != "before-create" || seen[1].Hook != "after-create" { + t.Fatalf("hooks = %+v", seen) + } + for _, hook := range seen { + // The before hook deleted notify from its copy; the after hook + // still sees it. + if !hook.Found || hook.Values["notify"] != true || hook.Values["password"] != "long-enough-1" || hook.Values["password_confirmation"] != "long-enough-1" || len(hook.Values) != 3 { + t.Fatalf("%s saw %+v found=%v", hook.Hook, hook.Values, hook.Found) + } + } + + t.Run("a field whose context hides it on update never reaches the hook", func(t *testing.T) { + rec := env.expect(t, http.StatusOK, http.MethodPut, record, `{"name":"Vic B","notify":true}`, "bearer") + if strings.Contains(rec.Body.String(), "notify") { + t.Fatalf("update response: %s", rec.Body.String()) + } + seen := env.spy.takeVirtual() + if len(seen) != 1 || seen[0].Hook != "before-update" || !seen[0].Found || len(seen[0].Values) != 0 { + t.Fatalf("update hook saw %+v", seen) + } + }) + + t.Run("a nested value is 422 on the field and nothing is written", func(t *testing.T) { + rec := env.expect(t, http.StatusUnprocessableEntity, http.MethodPost, rosterPeople, `{"name":"Nest","notify":{"on":true},"password":"long-enough-1","password_confirmation":"long-enough-1"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "notify", "The notify field has an invalid value.") + rec = env.expect(t, http.StatusUnprocessableEntity, http.MethodPut, record, `{"password":["a","b"]}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", "The password field has an invalid value.") + var count int64 + if err := gdb.Model(&rosterPerson{}).Where("name = ?", "Nest").Count(&count).Error; err != nil || count != 0 { + t.Fatalf("nested create wrote %d rows err=%v", count, err) + } + if seen := env.spy.takeVirtual(); len(seen) != 0 { + t.Fatalf("a refused save reached a hook: %+v", seen) + } + }) + + t.Run("a virtual name is never a fill key", func(t *testing.T) { + // The model has a password column; the submitted text must reach it + // only through the hook (as a hash), never through Fill. + env.expect(t, http.StatusOK, http.MethodPut, record, `{"password":"plain-through-fill","password_confirmation":"plain-through-fill"}`, "bearer") + var stored rosterPerson + if err := gdb.Unscoped().First(&stored, uint(idFloat)).Error; err != nil { + t.Fatal(err) + } + if stored.Password != rosterHash("plain-through-fill") { + t.Fatalf("stored password = %q", stored.Password) + } + }) +} + +// TestFormRulesSmoke drives pact.FormRules (D-28 G5): the controller's rule +// set per operation replaces the model's Rules() for admin saves. +func TestFormRulesSmoke(t *testing.T) { + env, gdb := newRosterEnv(t) + id := rosterInsert(t, gdb, rosterPerson{Tenant: "acme", Name: "Rae", Active: true, Password: rosterHash("stored-before")}) + record := fmt.Sprintf("%s/%d", rosterPeople, id) + + t.Run("an update of name alone passes although the model demands a confirmed password", func(t *testing.T) { + env.expect(t, http.StatusOK, http.MethodPut, record, `{"name":"Rae B"}`, "bearer") + if stored := rosterLoad(t, gdb, id); stored.Name != "Rae B" || stored.Password != rosterHash("stored-before") { + t.Fatalf("stored = %+v", stored) + } + }) + + t.Run("the create rules need a password and the update rules a name", func(t *testing.T) { + rec := env.expect(t, http.StatusUnprocessableEntity, http.MethodPost, rosterPeople, `{"name":"No password"}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "password", "The password field is required.") + rec = env.expect(t, http.StatusUnprocessableEntity, http.MethodPut, record, `{"name":""}`, "bearer") + rosterErrorDetail(t, rec.Body.Bytes(), "validation_failed", "name", "The name field is required.") + }) + + t.Run("boot rules", func(t *testing.T) { + rosterBootFails(t, map[string]string{rosterFieldsFile: rosterFields(t, "", " secret:\n type: password\n")}, + "field secret: type password needs the controller to list it in FormVirtualFields", "acme.roster.people", rosterFieldsFile) + // A form-only text field the controller does not list is still a + // column error. + rosterBootFails(t, map[string]string{rosterFieldsFile: rosterFields(t, "", " nickname:\n type: text\n")}, + "field nickname is not a model column") + rosterBootFails(t, map[string]string{rosterFieldsFile: rosterFields(t, " notify:\n label: acme.roster::lang.people.notify\n type: checkbox\n default: true\n context: create\n", "")}, + "FormVirtualFields: field notify is not a field of this form", rosterFieldsFile) + rosterBootFails(t, map[string]string{rosterFieldsFile: rosterFields(t, " type: checkbox\n default: true\n", " type: partial\n path: status\n")}, + "FormVirtualFields: field notify has type partial") + }) +} + +// TestPresetSchema checks the fields.yaml preset key (D-27 G7): the schema +// carries it and its boot rules hold. +func TestPresetSchema(t *testing.T) { + env, _ := newRosterEnv(t) + _, raw := rosterFormSchema(t, env, "bearer") + if !strings.Contains(raw, `"name":"slug","type":"text","label":"Slug","preset":{"field":"name","type":"slug"}`) { + t.Fatalf("preset is not in the schema: %s", raw) + } + for _, tc := range []struct { + name, old, new string + want string + }{ + {"mapping with exact", " preset: name\n", " preset:\n field: name\n type: exact\n", ""}, + {"unsupported type", " preset: name\n", " preset:\n field: name\n type: camel\n", "preset type camel is not supported (want slug or exact)"}, + {"unknown key", " preset: name\n", " preset:\n field: name\n prefix: x\n", "preset: unknown field prefix"}, + {"not a text target", " type: checkbox\n default: true\n", " type: checkbox\n default: true\n preset: name\n", "preset is only valid on type: text"}, + {"unknown source", " preset: name\n", " preset: title\n", "field slug: preset field title is not a field of this form"}, + {"source is not text", " preset: name\n", " preset: notify\n", "field slug: preset field notify must be a text field"}, + {"itself", " preset: name\n", " preset: slug\n", "field slug: preset names the field itself"}, + } { + t.Run(tc.name, func(t *testing.T) { + replace := map[string]string{rosterFieldsFile: rosterFields(t, tc.old, tc.new)} + if tc.want == "" { + if err := rosterBoot(t, rosterTree(t, replace)); err != nil { + t.Fatalf("did not boot: %v", err) + } + return + } + rosterBootFails(t, replace, tc.want, rosterFieldsFile) + }) + } +} diff --git a/modules/cabana/relation.go b/modules/cabana/relation.go index 9282412..a78d3f6 100644 --- a/modules/cabana/relation.go +++ b/modules/cabana/relation.go @@ -1131,7 +1131,7 @@ func (s RelationService) fillPivot(ctx context.Context, tx *gorm.DB, cr *Compile return &CapabilityError{ControllerID: controllerID(form)} } rules := map[string]string{} - for key, rule := range mergedRules(form, pivot, "") { + for key, rule := range mergedRules(ctx, form, pivot, "") { if slices.Contains(allowed, key) { rules[key] = rule } diff --git a/modules/cabana/relation_child.go b/modules/cabana/relation_child.go index 9ec853b..1a5de2c 100644 --- a/modules/cabana/relation_child.go +++ b/modules/cabana/relation_child.go @@ -113,7 +113,7 @@ func (s RelationService) fillChild(ctx context.Context, tx *gorm.DB, form *Compi return &CapabilityError{ControllerID: controllerID(form)} } } - rules := mergedRules(form, model, op) + rules := mergedRules(ctx, form, model, op) msgs, err := lagoon.Validate(ctx, tx, model, rules, valuesForRules(model, rules), nil) if err != nil { return &CapabilityError{ControllerID: controllerID(form)} diff --git a/modules/cabana/relation_form.go b/modules/cabana/relation_form.go index b20acac..37960d1 100644 --- a/modules/cabana/relation_form.go +++ b/modules/cabana/relation_form.go @@ -19,6 +19,8 @@ import ( // plugin extensions need a parent record scope a child modal does not have. var relationFormRefusedTypes = map[string]bool{ "relation": true, "relation-manager": true, "widget": true, "partial": true, + // A password is a virtual field, and only an admin controller lists those. + "password": true, } // pivotFieldPattern is WinterCMS's pivot form field name, pivot[column]. @@ -152,6 +154,9 @@ func compileRelationForm(pluginID string, ctl pact.AdminController, fsys fs.FS, if relationFormRefusedTypes[field.Type] { return nil, fail(fmt.Errorf("field %s: type %s is not supported in a relation form (%s)", field.Name, field.Type, purpose)) } + if field.Preset != nil { + return nil, fail(fmt.Errorf("field %s: preset is not supported in a relation form (%s)", field.Name, purpose)) + } if cr.hasMany() && field.Name == cr.Contract.ForeignKey { return nil, fail(fmt.Errorf("field %s is the relation's ForeignKey; the server sets it", field.Name)) } diff --git a/modules/cabana/schema_types.go b/modules/cabana/schema_types.go index deccd85..da5495c 100644 --- a/modules/cabana/schema_types.go +++ b/modules/cabana/schema_types.go @@ -301,10 +301,23 @@ type FormField struct { // managed before the record is first saved (RelationSchema.Deferrable): // the SPA shows it on the create screen. Deferrable bool `json:"deferrable,omitempty"` + // Preset makes a text field follow another field of the form while the + // administrator has not edited it, on create only (fields.yaml preset). + Preset *FieldPreset `json:"preset,omitempty"` optionsMethod string } +// FieldPreset is a text field's `preset`: Field names the text field of the +// same form whose value it follows, and Type is how the value is taken over, +// slug (lower-case ASCII with hyphens) or exact (the same text). The admin SPA +// applies it on the create form until the administrator edits the field; the +// server does not fill the field. +type FieldPreset struct { + Field string `json:"field"` + Type string `json:"type"` +} + // ThumbOptions is a fileupload field's thumbOptions mapping. Mode is one of // auto, exact, crop or fit. type ThumbOptions struct { diff --git a/modules/cabana/settings.go b/modules/cabana/settings.go index 99e76a8..4c2fcc7 100644 --- a/modules/cabana/settings.go +++ b/modules/cabana/settings.go @@ -63,9 +63,12 @@ func compileSetting(pluginID string, item pact.SettingsItem, fsys fs.FS) (*Compi } for _, field := range fields { // A settings screen has no admin controller to own actions or view models. - if field.Type == "widget" || field.Type == "partial" || field.Type == "fileupload" { + if field.Type == "widget" || field.Type == "partial" || field.Type == "fileupload" || field.Type == "password" { return nil, fmt.Errorf("cabana: setting %s field %s: type %s is not supported on a settings form", item.Code, field.Name, field.Type) } + if field.Preset != nil { + return nil, fmt.Errorf("cabana: setting %s field %s: preset is not supported on a settings form", item.Code, field.Name) + } } form := &FormSchema{Name: item.Label, ModelClass: item.Model, Fields: fields} columns := modelColumns(model) diff --git a/modules/cabana/testdata/roster/lang/en/lang.yaml b/modules/cabana/testdata/roster/lang/en/lang.yaml index 871043a..c128db8 100644 --- a/modules/cabana/testdata/roster/lang/en/lang.yaml +++ b/modules/cabana/testdata/roster/lang/en/lang.yaml @@ -24,3 +24,7 @@ people: deleted_text: An archived person is hidden from the directory. inactive_title: This person is not active inactive_text: Activate the person to let them sign in. + slug: Slug + password: Password + password_confirmation: Repeat the password + notify: Send a welcome message diff --git a/modules/cabana/testdata/roster/lang/pl/lang.yaml b/modules/cabana/testdata/roster/lang/pl/lang.yaml index e89bf64..00d45eb 100644 --- a/modules/cabana/testdata/roster/lang/pl/lang.yaml +++ b/modules/cabana/testdata/roster/lang/pl/lang.yaml @@ -24,3 +24,7 @@ people: deleted_text: Zarchiwizowana osoba jest ukryta w katalogu. inactive_title: Ta osoba jest nieaktywna inactive_text: Aktywuj osobę, aby mogła się zalogować. + slug: Slug + password: Hasło + password_confirmation: Powtórz hasło + notify: Wyślij wiadomość powitalną diff --git a/modules/cabana/testdata/roster/models/person/fields.yaml b/modules/cabana/testdata/roster/models/person/fields.yaml index 864881a..dd545bf 100644 --- a/modules/cabana/testdata/roster/models/person/fields.yaml +++ b/modules/cabana/testdata/roster/models/person/fields.yaml @@ -7,6 +7,25 @@ fields: label: acme.roster::lang.people.email type: text span: right + slug: + label: acme.roster::lang.people.slug + type: text + preset: name + password: + label: acme.roster::lang.people.password + type: password + span: left + context: [create, update] + password_confirmation: + label: acme.roster::lang.people.password_confirmation + type: password + span: right + context: [create, update] + notify: + label: acme.roster::lang.people.notify + type: checkbox + default: true + context: create joined_ip: label: acme.roster::lang.people.joined_ip type: text diff --git a/modules/cabana/tx_context.go b/modules/cabana/tx_context.go index 791edde..7026df8 100644 --- a/modules/cabana/tx_context.go +++ b/modules/cabana/tx_context.go @@ -31,3 +31,37 @@ func TxFromContext(ctx context.Context) (*gorm.DB, bool) { tx, ok := ctx.Value(txContextKey{}).(*gorm.DB) return tx, ok && tx != nil } + +type virtualFieldsKey struct{} + +// withVirtualFields returns ctx carrying the virtual field values of a save. +func withVirtualFields(ctx context.Context, values map[string]any) context.Context { + if values == nil { + values = map[string]any{} + } + return context.WithValue(ctx, virtualFieldsKey{}, values) +} + +// VirtualFieldsFromContext returns the values an administrator submitted for +// the form's virtual fields (pact.FormVirtualFields), keyed by field name, for +// the context handed to a Form hook (pact.FormBeforeCreate, +// pact.FormAfterCreate, pact.FormBeforeUpdate, pact.FormAfterUpdate). Only +// fields that were present in the request body and whose `context` allows the +// operation are in the map, so a missing key means "not submitted". Values +// are scalars as decoded from the JSON body: a string, a bool, a json.Number +// or nil. The map is a copy. The second result is false outside a create or +// update save. +func VirtualFieldsFromContext(ctx context.Context) (map[string]any, bool) { + if ctx == nil { + return nil, false + } + values, ok := ctx.Value(virtualFieldsKey{}).(map[string]any) + if !ok { + return nil, false + } + out := make(map[string]any, len(values)) + for name, value := range values { + out[name] = value + } + return out, true +} diff --git a/modules/pact/README.md b/modules/pact/README.md index d566f28..b8d8001 100644 --- a/modules/pact/README.md +++ b/modules/pact/README.md @@ -15,7 +15,7 @@ Capability interfaces that compiled plugins implement to contribute routes, conf - Backend registration data: `pact.Permission`, `pact.NavigationItem` and `pact.SettingsItem`, exposed through `pact.HasPermissions`, `pact.HasNavigation` and `pact.HasSettings`. - Admin controller contracts: `pact.AdminController`, `pact.HasAdminControllers`, `pact.AdminAssets` (embedded Winter-shaped admin YAML), `pact.AdminPermissioned` and `pact.AdminRecordSource`. - Admin extension contracts, so a plugin extends the compiled admin SPA without a Node build: `pact.AdminClientAssets` (per-controller JS and CSS from the plugin's embedded `assets/` tree, Winter's `addJs`/`addCss`), `pact.HasAdminActions` with `pact.AdminAction`, `pact.AdminActionInput` and `pact.AdminActionResult` (named toolbar and widget actions whose routes, CSRF check, permissions and record scoping the framework owns), `pact.HasAdminBulkActions` with `pact.AdminBulkAction`, `pact.AdminBulkActionInput` and `pact.AdminBulkActionResult` (named actions on the rows selected in a list, which receive records the framework loaded through the list scope, never ids), `pact.HasAdminRecordActions` with `pact.AdminRecordAction`, `pact.AdminRecordActionInput` and `pact.AdminRecordActionResult` (named actions on one record, each with an `Applies` rule for the record's state), and `pact.AdminPartialData` (the curated view model a partial template renders). -- Optional admin hooks a controller or model can implement: list and form query scoping (`pact.ListExtendQuery`, `pact.FormExtendQuery`), list row states (`pact.ListRowStates` with the fixed `pact.RowState` set `pact.RowStateDeleted`, `pact.RowStateNegative` and `pact.RowStateDisabled`), create, update and delete hooks (`pact.FormBeforeCreate`, `pact.FormAfterUpdate`, `pact.FormBeforeDelete` and their siblings), relation hooks (`pact.RelationExtendManageQuery`, `pact.RelationExtendOptionsQuery`, `pact.RelationBeforeLink`), relation child hooks around creating, updating and deleting a related record (`pact.RelationBeforeCreate`, `pact.RelationAfterCreate`, `pact.RelationBeforeUpdate`, `pact.RelationAfterUpdate`, `pact.RelationBeforeDelete`, `pact.RelationAfterDelete`), filter scopes (`pact.FilterScope`, `pact.FilterOptions`) and dropdown options (`pact.DropdownOptionsProvider`). +- Optional admin hooks a controller or model can implement: list and form query scoping (`pact.ListExtendQuery`, `pact.FormExtendQuery`), list row states (`pact.ListRowStates` with the fixed `pact.RowState` set `pact.RowStateDeleted`, `pact.RowStateNegative` and `pact.RowStateDisabled`), create, update and delete hooks (`pact.FormBeforeCreate`, `pact.FormAfterUpdate`, `pact.FormBeforeDelete` and their siblings), form-only fields that reach those hooks without being model columns (`pact.FormVirtualFields`), validation rules per operation for admin saves (`pact.FormRules`), relation hooks (`pact.RelationExtendManageQuery`, `pact.RelationExtendOptionsQuery`, `pact.RelationBeforeLink`), relation child hooks around creating, updating and deleting a related record (`pact.RelationBeforeCreate`, `pact.RelationAfterCreate`, `pact.RelationBeforeUpdate`, `pact.RelationAfterUpdate`, `pact.RelationBeforeDelete`, `pact.RelationAfterDelete`), filter scopes (`pact.FilterScope`, `pact.FilterOptions`) and dropdown options (`pact.DropdownOptionsProvider`). - A background job contract (`pact.Job`, `pact.JobArgs`) that does not depend on any queue library. - A schedule contract: `pact.HasSchedule` returns `pact.ScheduledCommand` entries (a registered command name, its arguments and a `pact.Cadence` built with `pact.Daily`, `pact.DailyAt` or `pact.Every`), the Go form of WinterCMS `registerSchedule`. It does not depend on any queue library either. - `pact.OptionalMessage`, a service an optional plugin can publish so others integrate with it without importing its package. @@ -120,6 +120,8 @@ func (p *Plugin) Schedule() []pact.ScheduledCommand { | `pact.AdminPartialData` | Supplies the view model a controller partial template renders; never the GORM model. | | `pact.ListRowStates` | Optional controller hook called once per list page; returns the states of the page's records, index-aligned. | | `pact.RowState` | One state of a list row: `pact.RowStateDeleted`, `pact.RowStateNegative` or `pact.RowStateDisabled`. | +| `pact.FormVirtualFields` | Optional controller list of form fields that are not model columns for the form (a password and its confirmation, for example): never bound, filled or returned; their submitted values reach the Form hooks through the admin framework's context accessor. | +| `pact.FormRules` | Optional controller hook returning the validation rules of an admin save for `create` or `update`; the set replaces the model's `Rules()` for those saves and may name virtual fields. | | `pact.FilterScope` | Model scopes a list filter may call, limited to an exact allow list. | | `pact.RelationBeforeLink` | Optional controller hook that checks or fills pivot columns before a relation link is written. | | `pact.RelationBeforeCreate` | Optional controller hook run in the write transaction before a relation manager creates a related record. | diff --git a/modules/pact/capabilities.go b/modules/pact/capabilities.go index 78c0cd5..18e6fce 100644 --- a/modules/pact/capabilities.go +++ b/modules/pact/capabilities.go @@ -486,6 +486,32 @@ type FormAfterDelete interface { FormAfterDelete(ctx context.Context, model any) error } +// FormVirtualFields optionally names fields of the controller's form that are +// not model columns for the purpose of the form, such as a password and its +// confirmation or a "send an invitation" checkbox. The admin framework never +// binds such a field to a column, never fills it into the model and never +// returns it in a record response. The values an administrator submits for +// them reach the Form hooks (FormBeforeCreate, FormAfterCreate, +// FormBeforeUpdate, FormAfterUpdate) through cabana.VirtualFieldsFromContext, +// and only for the fields whose `context` allows the operation. Every name +// must be a field of the form's fields.yaml of type password, text, textarea, +// number, checkbox, switch or dropdown; a `type: password` field must be +// listed here. +type FormVirtualFields interface { + FormVirtualFields() []string +} + +// FormRules optionally supplies the validation rules of an admin save. op is +// "create" or "update". When a controller implements it, the returned set +// replaces the model's Rules() for saves through the admin form; the form's +// `required` flags are still merged in. Rule strings use the tokens +// lagoon.Validate supports. A rule may name a field listed by +// FormVirtualFields: it is then checked against the submitted value, never +// against a model column of the same name. +type FormRules interface { + FormRules(ctx context.Context, op string) map[string]string +} + // RelationExtendManageQuery optionally narrows relation-manager candidates. type RelationExtendManageQuery interface { RelationExtendManageQuery(ctx context.Context, relation string, db *gorm.DB) *gorm.DB diff --git a/modules/pact/capabilities_test.go b/modules/pact/capabilities_test.go index 40ab8c6..29e417d 100644 --- a/modules/pact/capabilities_test.go +++ b/modules/pact/capabilities_test.go @@ -259,3 +259,35 @@ func TestRowStateValues(t *testing.T) { } } } + +type formSeams struct{} + +func (formSeams) FormVirtualFields() []string { return []string{"password", "password_confirmation"} } + +func (formSeams) FormRules(_ context.Context, op string) map[string]string { + if op == "create" { + return map[string]string{"password": "required|confirmed"} + } + return map[string]string{"password": "nullable|confirmed"} +} + +func TestFormSeamsDiscoveredByTypeAssertion(t *testing.T) { + var ctl any = formSeams{} + virtual, ok := ctl.(FormVirtualFields) + if !ok || len(virtual.FormVirtualFields()) != 2 { + t.Fatalf("FormVirtualFields = %v ok=%v", virtual, ok) + } + rules, ok := ctl.(FormRules) + if !ok { + t.Fatal("FormRules is not implemented") + } + if got := rules.FormRules(context.Background(), "create")["password"]; got != "required|confirmed" { + t.Fatalf("create rules = %q", got) + } + if got := rules.FormRules(context.Background(), "update")["password"]; got != "nullable|confirmed" { + t.Fatalf("update rules = %q", got) + } + if _, ok := any(neither{}).(FormVirtualFields); ok { + t.Fatal("a plugin without the method implements FormVirtualFields") + } +} diff --git a/modules/phrasebook/backend/lang/en/lang.yaml b/modules/phrasebook/backend/lang/en/lang.yaml index ff12ed3..609cfa9 100644 --- a/modules/phrasebook/backend/lang/en/lang.yaml +++ b/modules/phrasebook/backend/lang/en/lang.yaml @@ -68,6 +68,8 @@ form: create: Create return_to_list: Back to list return_to_preview: Back to preview + show_password: Show password + hide_password: Hide password close: Close confirm: Confirm saving: Saving… diff --git a/modules/phrasebook/backend/lang/pl/lang.yaml b/modules/phrasebook/backend/lang/pl/lang.yaml index f81bd93..2a7b844 100644 --- a/modules/phrasebook/backend/lang/pl/lang.yaml +++ b/modules/phrasebook/backend/lang/pl/lang.yaml @@ -74,6 +74,8 @@ form: create: Utwórz return_to_list: Wróć do listy return_to_preview: Wróć do podglądu + show_password: Pokaż hasło + hide_password: Ukryj hasło close: Zamknij confirm: Potwierdź saving: Zapisywanie…